#include #include #include #include int uart_putchar(char c, FILE *unused); int uart_getchar(FILE* f); FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); FILE mystdin = FDEV_SETUP_STREAM(NULL, uart_getchar, _FDEV_SETUP_READ); int val; char paused = 0; int debounce_ctr = 0; int ADC_get(uint8_t channel) { ADMUX = (1< 0) PORTC |= 0x01; else PORTC &= ~0x01; if (val > 128) PORTC |= 0x02; else PORTC &= ~0x02; if (val > 256) PORTC |= 0x04; else PORTC &= ~0x04; if (val > 384) PORTC |= 0x08; else PORTC &= ~0x08; if (val > 512) PORTC |= 0x10; else PORTC &= ~0x10; if (val > 640) PORTC |= 0x20; else PORTC &= ~0x20; if (val > 768) PORTC |= 0x40; else PORTC &= ~0x40; if (val > 896) PORTC |= 0x80; else PORTC &= ~0x80; } if (val < 100 || val > 900) { if (debounce_ctr < 0) { paused ^= 1; printf("claps claps\n"); // need to debounce a bit because the mic is adaptive debounce_ctr = 30; } } debounce_ctr --; } int main(void) { uint8_t key; uint8_t val = 1; long i; USART_init(); stdin = &mystdin; stdout = &mystdout; cli(); ADC_init(); Timer1_init(); DDRC = 0xFF; sei(); while(1); return 0; } int uart_putchar(char c, FILE *unused) { if (c == '\n') uart_putchar('\r', 0); loop_until_bit_is_set(UCSRA, UDRE); UDR = c; return 0; } int uart_getchar(FILE* f) { char c; loop_until_bit_is_set(UCSRA, RXC); c = UDR; if(c=='\r') c='\n'; uart_putchar(c,NULL); return c; }