Advertisement
utroz

MSP 430 - Number Counter Led 0.1

Sep 8th, 2011
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. /*
  2. --------------------------------
  3.   MSP 430
  4.   Number Counter on Led 0.1
  5.   Software developed by: Utroz(Raphael) and Kaddoush(Pablo)
  6.   Blog: http://oakcoders.blogspot.com/
  7. --------------------------------
  8. */
  9.  
  10. #include "io430.h"
  11.  
  12. /* Bit 0x01 = LED_RED */
  13. #define LED_RED 0x01
  14.  
  15. /* Bit 0x02 = LED_GREEN */
  16. #define LED_GREEN 0x02
  17.  
  18. /* Padrões de Decremento */
  19. #define COUNT_RED 0x0A
  20. #define COUNT_GREEN 0x01
  21.  
  22. /* Valores padrões */
  23. #define TIME 0xEA60
  24. #define NULL 0x00
  25.  
  26. /* Tempo de Espera */
  27. void delay_time(volatile unsigned int i)
  28. {
  29.     do (i--);
  30.     while (i != NULL);
  31. }
  32.  
  33. /* Inicializa Led Red */
  34. void start_led_red(void)
  35. {
  36.         /* Porta respectiva ao Led Red */
  37.         P1DIR |= LED_RED;
  38.        
  39.         /* Sobrecarga XOR na porta (Liga). */
  40.         P1OUT ^= LED_RED;
  41.         delay_time(TIME);
  42.        
  43.         /* Sobrecarga XOR na porta (Desliga). */
  44.         P1OUT ^= LED_RED;
  45.         delay_time(TIME);
  46. }
  47.  
  48. /* Inicializa Led Green */
  49. void start_led_green(void)
  50. {
  51.          /* Porta respectiva ao Led Green */
  52.         P1DIR |= LED_GREEN;
  53.        
  54.         /* Sobrecarga XOR na porta (Liga). */
  55.         P1OUT ^= LED_GREEN;
  56.         delay_time(TIME);
  57.        
  58.         /* Sobrecarga XOR na porta (Desliga). */
  59.         P1OUT ^= LED_GREEN;
  60.         delay_time(TIME);
  61. }
  62.  
  63. void main(void)
  64. {
  65.         unsigned short int x;
  66.        
  67.         //Valor de entrada.
  68.         x = 52;
  69.        
  70.         // Desativa o WatchDog Timer.
  71.     WDTCTL = WDTPW + WDTHOLD;
  72.    
  73.         do
  74.         {
  75.         while(x >= COUNT_RED)
  76.             {
  77.                     /* Chama a função do Led Red */
  78.                     start_led_red();
  79.                     x-= COUNT_RED;
  80.         }
  81.             /* Desliga a porta do Led */
  82.             P1DIR &= NULL;
  83.            
  84.             while(x > (COUNT_GREEN-1))
  85.             {
  86.                     /* Chama a função do Led Green */
  87.                     start_led_green();
  88.                     x-= COUNT_GREEN;
  89.         }
  90.             /* Desliga a porta do Led */
  91.             P1DIR &= NULL;
  92.         } while(x > NULL);
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement