Fix kernel heap macros in bertos trunk.
[bertos.git] / examples / at91sam7s / at91sam7s.c
index 275af6e565faf6246d980d8d198ed674a8af9ac7..17293a4448bd35091ce4a4d471a74ffa6118b813 100644 (file)
  * \brief AT91SAM7S-EK porting test.
  */
 
+#include "cfg/cfg_ser.h"
 #include <cfg/macros.h>
+
+#include <kern/proc.h>
+
 #include <drv/timer.h>
 #include <drv/sysirq_at91.h>
-#include <kern/proc.h>
 #include <drv/ser.h>
-#include <cfg/macros.h>
+#include <drv/ntc.h>
+
 #include <io/arm.h>
 
 Timer leds_timer;
 Serial ser_fd;
+int roll = 0;
 
 static void leds_toggle(void)
 {
        uint8_t a = (~PIOA_ODSR & 0x0f);
 
-       if (a)
+       if (roll == 1)
        {
+               if(a == 4)
+                       roll = 2;
+
                PIOA_SODR = a;
                PIOA_CODR = a << 1;
+
+       }
+       else if (roll == 2)
+       {
+               if(a == 2)
+                       roll = 1;
+
+               PIOA_SODR = a;
+               PIOA_CODR = a >> 1;
        }
        else
        {
                PIOA_SODR  =  0x0f;
                /* turn first led on */
                PIOA_CODR  = 0x00000001;
+               roll = 1;
        }
 
        /* Wait for interval time */
@@ -102,9 +120,9 @@ int main(void)
        /* 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);
+       timer_setSoftint(&leds_timer, (Hook)leds_toggle, 0);
+       timer_setDelay(&leds_timer, ms_to_ticks(100));
+       timer_add(&leds_timer);
 
        ASSERT(proc_testRun() == 0);
        // Main loop