コード例 #1
0
// Set return state of digital output-pin,
uint8_t readDigitalOutput(uint8_t id) {
    uint8_t state;

    uint8_t binaryRead;
    binaryRead = pfio_read_output();
    if( (binaryRead & (1 << (id))) == (1 << (id)) ) 
		state = 1;
    else
		state = 0;

    return state;
}
コード例 #2
0
// Set digital output-pin and return state,
uint8_t writeDigitalOutput(uint8_t id, uint8_t onOff) {
    uint8_t state;
    state = onOff;
	pfio_digital_write(id, state);

    uint8_t binaryRead;
    binaryRead = pfio_read_output();
    if( (binaryRead & (1 << (id))) == (1 << (id)) ) 
        state = 1;
    else 
        state = 0;

    return state;
}
コード例 #3
0
ファイル: pfio.c プロジェクト: AndyA/piface
void pfio_digital_write(char pin_number, char value)
{
    char pin_bit_mask = pfio_get_pin_bit_mask(pin_number);
    char old_pin_values = pfio_read_output();

    char new_pin_values;
    if (value > 0)
        new_pin_values = old_pin_values | pin_bit_mask;
    else
        new_pin_values = old_pin_values & ~pin_bit_mask;

#ifdef VERBOSE_MODE
    printf("digital_write: pin number %d, value %d\n", pin_number, value);
    printf("pin bit mask: 0x%x\n", pin_bit_mask);
    printf("old pin values: 0x%x\n", old_pin_values);
    printf("new pin values: 0x%x\n", new_pin_values);
    printf("\n");
#endif

    pfio_write_output(new_pin_values);
}