X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=app%2Fat91sam7s%2Fat91sam7s.c;h=371c7dc63f57fe8166885d716a9275d752485679;hb=7102dd1beadd8fbc4bfb5a52208f011e394e6c44;hp=8db8afdda4b36c3915c87589f53000cd5b454ece;hpb=9ba9dcf2a59a952609e19154e11de3e2478cbf42;p=bertos.git diff --git a/app/at91sam7s/at91sam7s.c b/app/at91sam7s/at91sam7s.c index 8db8afdd..371c7dc6 100644 --- a/app/at91sam7s/at91sam7s.c +++ b/app/at91sam7s/at91sam7s.c @@ -37,18 +37,104 @@ * \brief AT91SAM7S-EK porting test. */ +#include #include +#include +#include +#include #include +#include + +Timer leds_timer; + +static void leds_toggle(void) +{ + uint8_t a = (~PIOA_ODSR & 0x0f); + + if (a) + { + PIOA_SODR = a; + PIOA_CODR = a << 1; + } + else + { + PIOA_SODR = 0x0f; + /* turn first led on */ + PIOA_CODR = 0x00000001; + } + + /* Wait for interval time */ + timer_setDelay(&leds_timer, ms_to_ticks(100)); + timer_add(&leds_timer); +} + int main(void) { -// kdbg_init(); + kdbg_init(); + sysirq_init(); timer_init(); + +// proc_init(); + ASSERT(!IRQ_ENABLED()); + + + + /* Open the main communication port */ + Serial *host_port = ser_open(0); + ser_setbaudrate(host_port, 115200); + ser_setparity(host_port, SER_PARITY_NONE); + + /* Open the main communication port */ + Serial *host_port1 = ser_open(1); + ser_setbaudrate(host_port1, 115200); + ser_setparity(host_port1, SER_PARITY_NONE); + IRQ_ENABLE; + ASSERT(IRQ_ENABLED()); + + /* Disable all pullups */ + PIOA_PUDR = 0xffffffff; + /* Set PA0..3 connected to PIOA */ + PIOA_PER = 0x0000001f; + /* Set PA0..3 as output */ + PIOA_OER = 0x0000001f; + /* Disable multidrive on all pins */ + PIOA_MDDR = 0x0000001f; + /* Set PA0..3 to 1 to turn off leds */ + PIOA_SODR = 0x0000000f; + /* turn first led on */ + PIOA_CODR = 0x00000001; + + +// timer_set_event_softint(&leds_timer, (Hook)leds_toggle, 0); +// timer_setDelay(&leds_timer, ms_to_ticks(100)); +// timer_add(&leds_timer); + + int a=0; // Main loop for(;;) { +// proc_test(); + + a = ser_getchar(host_port1); + + if(a == 49) + PIOA_CODR = 0x0000000F; + if(a == 50) + { + PIOA_SODR = 0x0000000A; + ser_printf(host_port, "%c", a); + } + + if(a == 51) + PIOA_CODR = 0x0000000F; + if(a == 52) + { + PIOA_SODR = 0x00000005; + ser_printf(host_port1, "%c", a); + } }