#include #include "ps2_io.h" #include "gpio_api.h" static gpio_t clock; static gpio_t data; /* * Clock */ void clock_init(void) { gpio_init(&clock, P0_9); gpio_mode(&clock, OpenDrain|PullNone); } void clock_lo(void) { gpio_dir(&clock, PIN_OUTPUT); gpio_write(&clock, 0); } void clock_hi(void) { gpio_dir(&clock, PIN_OUTPUT); gpio_write(&clock, 1); } bool clock_in(void) { gpio_dir(&clock, PIN_INPUT); return gpio_read(&clock); } /* * Data */ void data_init(void) { gpio_init(&data, P0_8); gpio_mode(&data, OpenDrain|PullNone); } void data_lo(void) { gpio_dir(&data, PIN_OUTPUT); gpio_write(&data, 0); } void data_hi(void) { gpio_dir(&data, PIN_OUTPUT); gpio_write(&data, 1); } bool data_in(void) { gpio_dir(&data, PIN_INPUT); return gpio_read(&data); }