Ejemplo n.º 1
0
/**
 * @ingroup DEV
 *
 * @param dmx_device_info
 */
static void mcp23s08_init(dmx_device_info_t * dmx_device_info) {
#ifdef DEBUG
	printf("device init <mcp23s08>\n");
#endif
	mcp23s08_start(&(dmx_device_info->device_info));
	mcp23s08_reg_write(&dmx_device_info->device_info, MCP23S08_IODIR, 0x00);
	mcp23s08_reg_write(&dmx_device_info->device_info, MCP23S08_GPIO, 0x00);
}
Ejemplo n.º 2
0
bool RDMSubDeviceMCP23S08::Initialize(void) {
	const bool IsConnected = mcp23s08_start(&m_tDeviceInfo);

	if (IsConnected) {
		mcp23s08_reg_write(&m_tDeviceInfo, MCP23S08_IODIR, 0x00);
		mcp23s08_reg_write(&m_tDeviceInfo, MCP23S08_GPIO, 0x00);
	}

#ifndef NDEBUG
	printf("%s:%s IsConnected=%d\n", __FILE__, __FUNCTION__, (int) IsConnected);
#endif

	return IsConnected;
}
Ejemplo n.º 3
0
int main(int argc, char **argv) {
    device_info_t device_info;

    while ((argc > 1) && (argv[1][0] == '-')) {
        switch (argv[1][1]) {
        case 'a':
            sscanf (&argv[1][2], "%x", &slave_address);
            break;
        case 'c':
            sscanf (&argv[1][2], "%d", &chip_select);
            break;
        default:
            fprintf(stderr, "Warning: Unsupported argument \"%s\"!\n", argv[1]);
            exit(1);
        }
        ++argv;
        --argc;
    }

    device_info.slave_address = slave_address;
    device_info.chip_select = chip_select;

    if (mcp23s08_start(&device_info) != MCP23S08_OK) {
        fprintf(stderr,"Cannot start mcp23s08_start\n");
        exit(EXIT_FAILURE);
    }

    printf("slave address : 0x%x\n", device_info.slave_address);
    printf("chip select   : %.1d\n", device_info.chip_select);

    int x;
    for (x = 0 ; x < sizeof(pins) ; x++ ) {
        mcp23s08_gpio_fsel(&device_info, pins[x], MCP23S08_FSEL_OUTP);
    }

    for(;;)
        show_loop(&device_info, 1, 1);

    mcp23s08_end();

    return 0;

}