Leo Matturi / Mbed 2 deprecated counter

Dependencies:   mbed

Committer:
leonous
Date:
Tue May 11 21:25:52 2010 +0000
Revision:
2:7cdadcca2c06
Parent:
1:6c8d46a9c3c9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leonous 2:7cdadcca2c06 1 #include "mbed.h"
leonous 2:7cdadcca2c06 2
leonous 2:7cdadcca2c06 3 DigitalOut myled1(LED1);
leonous 2:7cdadcca2c06 4 DigitalOut myled2(LED2);
leonous 2:7cdadcca2c06 5 DigitalOut myled3(LED3);
leonous 2:7cdadcca2c06 6 DigitalOut myled4(LED4);
leonous 2:7cdadcca2c06 7
leonous 2:7cdadcca2c06 8 void update_leds (int myleds)
leonous 2:7cdadcca2c06 9 {
leonous 2:7cdadcca2c06 10 // update the LEDs
leonous 2:7cdadcca2c06 11 myled1 = myleds & 1;
leonous 2:7cdadcca2c06 12 myled2 = (myleds & 2) >> 1;
leonous 2:7cdadcca2c06 13 myled3 = (myleds & 4) >> 2;
leonous 2:7cdadcca2c06 14 myled4 = (myleds & 8) >> 3;
leonous 2:7cdadcca2c06 15 }
leonous 2:7cdadcca2c06 16
leonous 2:7cdadcca2c06 17 int main()
leonous 2:7cdadcca2c06 18 {
leonous 2:7cdadcca2c06 19 unsigned int count, count_up, speed_up = 0 ;
leonous 2:7cdadcca2c06 20 float count_interval = 0.1;
leonous 2:7cdadcca2c06 21
leonous 2:7cdadcca2c06 22 count_up = ~ count_up;
leonous 2:7cdadcca2c06 23
leonous 2:7cdadcca2c06 24 while(1)
leonous 2:7cdadcca2c06 25 {
leonous 2:7cdadcca2c06 26 // update LEDs with the current count value
leonous 2:7cdadcca2c06 27 update_leds (count);
leonous 2:7cdadcca2c06 28
leonous 2:7cdadcca2c06 29 // count up or down depending on the value of count_up
leonous 2:7cdadcca2c06 30 if (count_up)
leonous 2:7cdadcca2c06 31 count++;
leonous 2:7cdadcca2c06 32 else
leonous 2:7cdadcca2c06 33 count--;
leonous 2:7cdadcca2c06 34
leonous 2:7cdadcca2c06 35 // interval to next count
leonous 2:7cdadcca2c06 36 wait(count_interval);
leonous 2:7cdadcca2c06 37
leonous 2:7cdadcca2c06 38 // update the count interval when the LED count gets to 16
leonous 2:7cdadcca2c06 39 // decrement the interval every 16 lots of counts
leonous 2:7cdadcca2c06 40 if (speed_up && count % 16 == 0)
leonous 2:7cdadcca2c06 41 count_interval /= 2;
leonous 2:7cdadcca2c06 42 else if (count % 16 == 0)
leonous 2:7cdadcca2c06 43 count_interval *= 2;
leonous 2:7cdadcca2c06 44
leonous 2:7cdadcca2c06 45 if (count % 256 == 0)
leonous 2:7cdadcca2c06 46 speed_up = ~ speed_up;
leonous 2:7cdadcca2c06 47
leonous 2:7cdadcca2c06 48 // change the count direction every 32 lots of counts
leonous 2:7cdadcca2c06 49 if (count % 512 == 0)
leonous 2:7cdadcca2c06 50 count_up = ~ count_up;
leonous 2:7cdadcca2c06 51
leonous 2:7cdadcca2c06 52 }
leonous 2:7cdadcca2c06 53 }