49 #include <iothinx/iothinxio.h> 52 int main(
int argc,
char **
const argv)
57 uint8_t counter_channel_start = 0;
58 uint8_t counter_channel_count = 2;
59 uint32_t counter_starts = 0;
60 uint8_t counter_triggers[4];
61 uint32_t counter_values[4];
65 while (-1 != (rc = getopt(argc, argv,
"c:hn:s:")))
70 counter_channel_start = atoi(optarg);
73 counter_channel_count = atoi(optarg);
76 di_slot = atoi(optarg);
80 printf(
"Counter sample program.\n\n");
81 printf(
"Usage: ./counter [OPTIONS]\n\n");
83 printf(
"\t%-8s Slot of DI module. Default slot = %d\n",
"-s", di_slot);
84 printf(
"\t%-8s Counter start channel. Default channel = %d\n",
"-c", counter_channel_start);
85 printf(
"\t%-8s Counter channel count. Default count = %d\n",
"-n", counter_channel_count);
91 printf(
"DI slot = %lu\n", di_slot);
92 printf(
"Counter start channel = %u\n", counter_channel_start);
93 printf(
"Counter channel count = %u\n", counter_channel_count);
99 printf(
"ioThinx_IO_Client_Init() = %d\n", rc);
104 for (i = 0; i < counter_channel_count; i++)
111 printf(
"ioThinx_DI_Config_SetModes() = %d\n", rc);
114 for (i = 0; i < counter_channel_count; i++)
121 printf(
"ioThinx_DI_Config_SetCntTriggers() = %d\n", rc);
124 for (i = 0; i < counter_channel_count; i++)
126 counter_values[i] = 0;
131 printf(
"ioThinx_DI_Config_SetCntValues() = %d\n", rc);
138 printf(
"ioThinx_IO_Config_Reload() = %d\n", rc);
143 for (i = 0; i < counter_channel_count; i++)
145 counter_starts |= 0x1 << (counter_channel_start + i);
150 printf(
"ioThinx_DI_SetCntStarts() = %d\n", rc);
159 printf(
"ioThinx_DI_GetCntValues() = %d\n", rc);
162 for (i = 0; i < counter_channel_count; i++)
164 printf(
"[%lu:%u] counter = %d\n", di_slot, counter_channel_start+i, counter_values[i]);
IOTHINX_ERR ioThinx_DI_SetCntStarts(uint32_t slot, uint32_t starts)
IOTHINX_ERR ioThinx_DI_Config_SetModes(uint32_t slot, uint8_t start, uint8_t count, uint8_t buf[])
IOTHINX_ERR ioThinx_DI_GetCntValues(uint32_t slot, uint8_t start, uint8_t count, uint32_t buf[])
IOTHINX_ERR ioThinx_IO_Config_Reload(void)
IOTHINX_ERR ioThinx_DI_Config_SetCntTriggers(uint32_t slot, uint8_t start, uint8_t count, uint8_t buf[])
IOTHINX_ERR ioThinx_DI_Config_SetCntValues(uint32_t slot, uint8_t start, uint8_t count, uint32_t buf[])
int main(int argc, char **const argv)
IOTHINX_ERR ioThinx_IO_Client_Init(void)