#include #include #include #include #include "timer.h" #include "keyboard.h" #include "uart.h" void setup_registers() { MCUCR &= ~(1 << 4); // PUD MCUCR &= ~(1 << 5); MCUCR &= ~(1 << 6); MCUCR &= ~(1 << 7); DDRD &= 0x0F; PORTD |= 0xF0; DDRC = 0b111111; PORTC = 0b001111; } void setup() { USART_Init(MYUBRR); setup_timer(); setup_registers(); } int up_amoumt = 0; int down_amount = 0; int diff = 0; int diff_prev = 0; int main(void) { setup(); puts("Hello\r\n"); struct key keys[KEYS_AMOUNT]; fill_buttons_names(keys); while(1) { get_physical_keys(keys); get_logical_keys(keys); for (int i = 0; i < KEYS_AMOUNT; i++) { bool up, down; get_event(&keys[i], &up, &down); if (down) { printf("%d", keys[i].button); } } //down_amount = 0; //up_amoumt = 0; // //for (int i = 0; i < KEYS_AMOUNT; i++) { //if (keys[i].logical == false) { //down_amount++; //} else { //up_amoumt++; //} ////bool up; ////bool down; ////get_event(&keys[i], &up, &down); ////if (down) { ////down_amount++; ////} ////else { ////up_amoumt++; ////} //} //diff = up_amoumt; ////if (diff != diff_prev) { //for (int i = 0; i < KEYS_AMOUNT; i++) { //bool up, down; //get_event(&keys[i], &up, &down); ////if (keys[i].logical == true) { ////printf("%d", keys[i].button); ////} //if (down) { ////printf("%s\r\n", i); //printf("%d", keys[i].button); //} //} ////} //diff_prev = diff; } } int puts(const char * __str){ int len = strlen(__str); for(size_t i = 0; i < len; i++){ while (!(UCSR0A & (1<