X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=app%2Fat91sam7s%2Fat91sam7s.c;h=4b442ec8214067cec9a678df37595b8e9e5512c6;hb=0620ea1408c9976801504b1741749519cd6bb6c2;hp=860e72cd71628c08150415547e47450b6ac81218;hpb=77c1d6ba65a199f60faa0e0a68e63ef0eb87677c;p=bertos.git diff --git a/app/at91sam7s/at91sam7s.c b/app/at91sam7s/at91sam7s.c index 860e72cd..4b442ec8 100644 --- a/app/at91sam7s/at91sam7s.c +++ b/app/at91sam7s/at91sam7s.c @@ -27,7 +27,7 @@ * the GNU General Public License. * * Copyright 2007 Develer S.r.l. (http://www.develer.com/) - * This file is part of DevLib - See README.devlib for information. + * * --> * * \version $Id$ @@ -37,20 +37,80 @@ * \brief AT91SAM7S-EK porting test. */ +#include #include +#include +#include +#include #include +#include + +Timer leds_timer; +Serial ser_fd; + +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(); + char msg[]="BeRTOS, be fast be beatiful be realtime"; + kdbg_init(); timer_init(); + + proc_init(); + ASSERT(!IRQ_ENABLED()); + + /* Open the main communication port */ + ser_init(&ser_fd, 0); + ser_setbaudrate(&ser_fd, 115200); + ser_setparity(&ser_fd, 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_setSoftint(&leds_timer, (Hook)leds_toggle, 0); + timer_setDelay(&leds_timer, ms_to_ticks(100)); + timer_add(&leds_timer); // Main loop for(;;) { - + proc_testRun(); + kfile_printf(&ser_fd.fd, "From serial 0: %s\r\n", msg); } - return 0; }