Advertisement
Guest User

Untitled

a guest
Oct 20th, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1.  
  2. #include "biblioteka.h"
  3.  
  4. int main( void )
  5. {
  6. WDTCTL = WDTPW + WDTHOLD;
  7. int was_on = 0;
  8. while(1) {
  9. if(was_on==1) {
  10. if(IsButtonPressed(BUTTON1)) {
  11.  
  12. ToggleLed(STATUS,OFF);
  13. was_on=0;
  14. while(IsButtonPressed(BUTTON1)){}
  15. }
  16. } else {
  17. if(IsButtonPressed(BUTTON1)) {
  18. ToggleLed(STATUS,ON);
  19. was_on=1;
  20. while(IsButtonPressed(BUTTON1)){}
  21. }
  22. }
  23.  
  24. }
  25. return 0;
  26. }
  27.  
  28. #ifndef BIBLIOTEKA_H
  29. #define BIBLIOTEKA_H
  30. #include "io430.h"
  31.  
  32. typedef enum {
  33. STATUS,
  34. REL1,
  35. REL2
  36. } LED;
  37.  
  38. typedef enum {
  39. ON,
  40. OFF
  41. } SET;
  42.  
  43. typedef enum {
  44. BUTTON1,
  45. BUTTON2,
  46. BUTTON3,
  47. BUTTON4
  48. } BUTTON;
  49.  
  50. void delay(){
  51. int j,i;
  52. for(j=0;j<1000;j++)
  53. for(i=0;i<233;i++);
  54. }
  55.  
  56. void delays(){
  57. int j,i;
  58. for(j=0;j<1000;j++)
  59. for(i=0;i<100;i++);
  60. }
  61.  
  62. void ToggleLed(LED l,SET s) {
  63. switch (l) {
  64. case STATUS:
  65. P2DIR |= BIT1;
  66. if (s==ON)
  67. P2OUT &= ~BIT1;
  68. else
  69. P2OUT |= BIT1;
  70. break;
  71. case REL1:
  72. P1DIR |= BIT5;
  73. if (s==OFF)
  74. P1OUT &= ~BIT5;
  75. else
  76. P1OUT |= BIT5;
  77. break;
  78. case REL2:
  79. P1DIR |= BIT6;
  80. if (s==OFF)
  81. P1OUT &= ~BIT6;
  82. else
  83. P1OUT |= BIT6;
  84. break;
  85. }
  86. }
  87.  
  88. void zapal(LED l) {
  89. switch (l) {
  90. case STATUS:
  91. P2DIR |= BIT1;
  92. P2OUT |= BIT1;
  93. break;
  94. case REL1:
  95. P1DIR |= BIT5;
  96. P1OUT &= ~BIT5;
  97. break;
  98. case REL2:
  99. P1DIR |= BIT6;
  100. P1OUT &= ~BIT6;
  101. break;
  102. }
  103. }
  104.  
  105. void zgas(LED l) {
  106. switch (l) {
  107. case STATUS:
  108. P2DIR |= BIT1;
  109. P2OUT &= ~BIT1;
  110. break;
  111. case REL1:
  112. P1DIR |= BIT5;
  113. P1OUT |= BIT5;
  114. break;
  115. case REL2:
  116. P1DIR |= BIT6;
  117. P1OUT |= BIT6;
  118. break;
  119. }
  120. }
  121.  
  122.  
  123.  
  124. bool IsButtonPressed(BUTTON b) {
  125. switch (b) {
  126. case BUTTON1:
  127. P4DIR = P4DIR &~(BIT4|BIT5|BIT6|BIT7);
  128. if ((P4IN & BIT4)==0)
  129. return true;
  130. return false;
  131. break;
  132. case BUTTON2:
  133. P4DIR = P4DIR &~(BIT4|BIT5|BIT6|BIT7);
  134. if ((P4IN & BIT5)==0)
  135. return true;
  136. return false;
  137. break;
  138. case BUTTON3:
  139. P4DIR = P4DIR &~(BIT4|BIT5|BIT6|BIT7);
  140. if ((P4IN & BIT6)==0)
  141. return true;
  142. return false;
  143. break;
  144. case BUTTON4:
  145. P4DIR = P4DIR &~(BIT4|BIT5|BIT6|BIT7);
  146. if ((P4IN & BIT7)==0)
  147. return true;
  148. return false;
  149. break;
  150. }
  151.  
  152. }
  153. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement