src/hello.c
author Tero Marttila <terom@paivola.fi>
Thu, 03 Apr 2014 20:25:12 +0300
changeset 53 dfe67409fbcd
parent 52 237d1f5c1c32
child 54 ec42f36d8614
permissions -rw-r--r--
hello: interruptable timer sleep, with buffered serial IO
#include <avr/io.h>

#include "stdlib.h"
#include "timer.c" // XXX
#include "serial.c" // XXX

int main (void)
{
    timer_init();
    serial_init();

    // LED
    sbi(&DDRB, DDB5);

    sei();

    // blink
    char c = 'X';
    short timeout = 8000;
    short delta = 10;

    while (true) {
        // toggle
        xbi(&PORTB, PORTB5);
        
        // sleep
        if (timer_sleep(timeout)) {
            c = '.';

        } else if ((c = serial_read())) {
            // got serial data
        } else {
            c = '?';
        }
        
        // output...
        serial_write(c);
    }
}