/* * Copyright (c) 2007 Embedded Projects (http://www.embedded-projecs.net) * Author: Benedikt Sauter #include #ifdef __AVR_AT90CAN128__ #define OCTOPUS_CAN #endif void io_parser(char *buf); uint8_t io_init(uint8_t pin); void io_init_usb(uint8_t pin); uint8_t io_init_port(uint8_t port); void io_init_port_usb(uint8_t port); uint8_t io_set_port_direction_out(uint8_t port,uint8_t mask); uint8_t io_set_port_direction_in(uint8_t port, uint8_t mask); uint8_t io_set_port_direction_tri(uint8_t port, uint8_t mask); void io_set_port_direction_out_usb (uint8_t port, uint8_t mask); void io_set_port_direction_in_usb(uint8_t port, uint8_t mask); void io_set_port_direction_tri_usb(uint8_t port, uint8_t mask); uint8_t io_set_pin_direction_out(uint8_t pin); uint8_t io_set_pin_direction_in(uint8_t pin); uint8_t io_set_pin_direction_tri(uint8_t pin); void io_set_pin_direction_out_usb(uint8_t pin); void io_set_pin_direction_in_usb(uint8_t pin); void io_set_pin_direction_tri_usb(uint8_t pin); uint8_t io_get_port (uint8_t port, uint8_t *pvalue); void io_get_port_usb (uint8_t port); uint8_t io_set_port(uint8_t port, uint8_t value); void io_set_port_usb (uint8_t port, uint8_t value); uint8_t io_set_pin(uint8_t pin, uint8_t value); void io_set_pin_usb(uint8_t pin, uint8_t value); uint8_t io_get_pin(uint8_t pin, uint8_t *value); void io_get_pin_usb(uint8_t pin); void io_set_status_led(uint8_t on); void io_set_status_led_usb(uint8_t on); #define PORT(port,pin) (PORT##port) #define DDR(port,pin) (DDR##port) #define PIN(port,pin) (PIN##port) #define PIN_MASK(port,pin) (1<<(pin)) /* Set a pin */ #define SETPIN(pindef) PORT pindef |= PIN_MASK pindef /* Clear a pin */ #define CLRPIN(pindef) PORT pindef &= ~PIN_MASK pindef /* Get pin value */ #define GETPIN(pindef) (PIN pindef & PIN_MASK pindef) /* Toggle a pin */ #define TOGGLEPIN(pindef) PIN pindef |= PIN_MASK pindef /* Set a IO to output */ #define SET_DDR_OUT(pindef) DDR pindef |= PIN_MASK pindef /* Set a IO to input */ #define SET_DDR_IN(pindef) DDR pindef &= ~PIN_MASK pindef #endif /* IO_H */