#include "oulib.h" // Support for buffered serial #include "oulib_serial_buffered.h" void flash_led(unsigned int i) { PORTB |= 1; delay_ms(i); PORTB &= ~1; delay_ms(i); } int main (void) { int c; int val; DDRB = 0xFF; // Debug lines PORTB = 0; flash_led(250); flash_led(250); // Initialize serial port FILE* fp0 = serial_init_buffered(0, 9600, 10, 10); sei(); printf("hello world\n\r"); // Loop forever for(;;) { // Look for input on the serial port if(serial_buffered_input_waiting(fp0)) { // A character has been received c = getchar(); switch (c) { case 'r' : // Reset PORT B PORTB = 0; printf("reset\n\r"); break; case 's' : // Set PORT B to some value // read in an integer if(scanf("%d", &val) == 1) { // A valid integer has been input PORTB = val & 0xFF; } printf("B set to %x\n\r", val); break; case ' ' : case '\n': case '\r': break; default: printf("undefined input\n\r"); break; }; PORTB ^= 1; }; // Toggle LSB of PORTB on every cycle PORTB ^= 2; delay_ms(50); } };