1
0
mirror of https://github.com/preble/libpinproc synced 2026-02-24 18:25:23 +01:00

Added delay param to aux_output commands

This commit is contained in:
Gerry Stellenberg
2010-12-04 22:28:16 -06:00
parent 06e651026a
commit 3ffb3b6f53
6 changed files with 21 additions and 14 deletions

View File

@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
PRDevice::PRDevice(PRMachineType machineType) : machineType(machineType)
{
@@ -531,6 +532,7 @@ PRResult PRDevice::DriverAuxSendCommands(PRDriverAuxCommand * commands, uint8_t
for (k=0; k<numCommands; k++) {
convertedCommand = CreateDriverAuxCommand(commands[k]);
commandBuffer[k+1] = convertedCommand;
printf("\nAux command: %d is %x", k,convertedCommand);
}
return PrepareWriteData(commandBuffer, numCommands+1);

View File

@@ -150,6 +150,8 @@ uint32_t CreateDriverAuxCommand ( PRDriverAuxCommand command) {
switch (command.command) {
case (kPRDriverAuxCmdOutput) : {
return ((command.active & 1) << P_ROC_DRIVER_AUX_ENTRY_ACTIVE_SHIFT) |
((command.delayTime & P_ROC_DRIVER_AUX_OUTPUT_DELAY_MASK) <<
P_ROC_DRIVER_AUX_OUTPUT_DELAY_SHIFT) |
((command.muxEnables & 1) << P_ROC_DRIVER_AUX_MUX_ENABLES_SHIFT) |
((command.command & P_ROC_DRIVER_AUX_COMMAND_MASK) <<
P_ROC_DRIVER_AUX_COMMAND_SHIFT) |

View File

@@ -174,9 +174,11 @@ const uint32_t P_ROC_DRIVER_CONFIG_PATTER_ENABLE_SHIFT = 30;
const uint32_t P_ROC_DRIVER_CONFIG_TABLE_DRIVER_NUM_SHIFT = 1;
const uint32_t P_ROC_DRIVER_AUX_ENTRY_ACTIVE_SHIFT = 31;
const uint32_t P_ROC_DRIVER_AUX_OUTPUT_DELAY_SHIFT = 20;
const uint32_t P_ROC_DRIVER_AUX_OUTPUT_DELAY_MASK = 0x7ff;
const uint32_t P_ROC_DRIVER_AUX_MUX_ENABLES_SHIFT = 19;
const uint32_t P_ROC_DRIVER_AUX_COMMAND_SHIFT = 16;
const uint32_t P_ROC_DRIVER_AUX_COMMAND_MASK = 0x67;
const uint32_t P_ROC_DRIVER_AUX_COMMAND_MASK = 0x3;
const uint32_t P_ROC_DRIVER_AUX_ENABLES_SHIFT = 12;
const uint32_t P_ROC_DRIVER_AUX_ENABLES_MASK = 0xF;
const uint32_t P_ROC_DRIVER_AUX_EXTRA_DATA_SHIFT = 8;

View File

@@ -215,7 +215,7 @@ PR_EXPORT PRResult PRDriverAuxSendCommands(PRHandle handle, PRDriverAuxCommand *
return handleAsDevice->DriverAuxSendCommands(commands, numCommands, startingAddr);
}
PR_EXPORT void PRDriverAuxPrepareOutput(PRDriverAuxCommand *auxCommand, uint8_t data, uint8_t extraData, uint8_t enables, bool_t muxEnables)
PR_EXPORT void PRDriverAuxPrepareOutput(PRDriverAuxCommand *auxCommand, uint8_t data, uint8_t extraData, uint8_t enables, bool_t muxEnables, uint16_t delayTime)
{
auxCommand->active = true;
auxCommand->data = data;
@@ -223,6 +223,7 @@ PR_EXPORT void PRDriverAuxPrepareOutput(PRDriverAuxCommand *auxCommand, uint8_t
auxCommand->enables = enables;
auxCommand->muxEnables = muxEnables;
auxCommand->command = kPRDriverAuxCmdOutput;
auxCommand->delayTime = delayTime;
}
PR_EXPORT void PRDriverAuxPrepareDelay(PRDriverAuxCommand *auxCommand, uint16_t delayTime)