#ifndef INCLUDE_STEPPAD_44_H #define INCLUDE_STEPPAD_44_H #define output(directions,pin) (directions |= pin) // set port direction for output #define set(port,pin) (port |= pin) // set port pin #define clear(port,pin) (port &= (~pin)) // clear port pin #define pin_test(pins,pin) (pins & pin) // test for port pin #define bit_test(byte,bit) (byte & (1 << bit)) // test for bit set #define bit_delay_time 102 // bit delay for 9600 with overhead #define bit_delay() _delay_us(bit_delay_time) // RS232 bit delay #define half_bit_delay() _delay_us(bit_delay_time/2) // RS232 half bit delay #define charge_delay_1() _delay_us(1) // charge delay 1 #define charge_delay_2() _delay_us(10) // charge delay 2 #define charge_delay_3() _delay_us(100) // charge delay 3 #define settle_delay() _delay_us(100) // settle delay #define char_delay() _delay_ms(10) // char delay #define serial_port PORTB #define serial_direction DDRB #define serial_pin_out (1 << PB1) #define charge_port PORTB #define charge_direction DDRB #define charge_pin (1 << PB2) #define ref (0 << REFS1) | (0 << REFS0) // reference voltage #define sense0 (1 << MUX2) | (1 << MUX1) | (1 << MUX0) // PA7 #define sense1 (1 << MUX2) | (1 << MUX1) | (0 << MUX0) // PA6 #define sense2 (1 << MUX2) | (0 << MUX1) | (1 << MUX0) // PA5 #define sense3 (1 << MUX2) | (0 << MUX1) | (0 << MUX0) // PA4 #define sense4 (0 << MUX2) | (1 << MUX1) | (1 << MUX0) // PA3 #define sense5 (0 << MUX2) | (1 << MUX1) | (0 << MUX0) // PA2 #define sense6 (0 << MUX2) | (0 << MUX1) | (1 << MUX0) // PA1 #define sense7 (0 << MUX2) | (0 << MUX1) | (0 << MUX0) // PA0 #define down_threshold 700 #define up_threshold 750 #define max_buffer 25 // // send character in txchar on port pin // assumes line driver (inverts bits) // void put_char(volatile unsigned char *port, unsigned char pin, char txChar); // // print a null-terminated string // void put_string(volatile unsigned char *port, unsigned char pin, char *str); void check_pin(unsigned char pin); void sense_pin(unsigned char pin, int *oldValue, char labelChar); #endif