Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1. /*
  2. * Testprogramm2.c
  3. *
  4. * Created: 18.01.2017 17:52:09
  5. * Author : Andre
  6. */
  7.  
  8. #include <avr/io.h>
  9. #include "board.h"
  10. #include <util/delay.h>
  11.  
  12. void ClearLEDS(void){
  13. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  14. }
  15.  
  16. void one(void){
  17. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  18.  
  19. LED_PORT.OUT &= ~LED1_PIN_bm;
  20. _delay_ms(250);
  21. }
  22.  
  23. void two(void){
  24. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  25.  
  26. LED_PORT.OUT &= ~LED1_PIN_bm;
  27. _delay_ms(250);
  28. LED_PORT.OUT &= ~LED2_PIN_bm;
  29. _delay_ms(300);
  30. }
  31.  
  32. void three(void){
  33. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  34.  
  35. LED_PORT.OUT &= ~LED1_PIN_bm;
  36. _delay_ms(250);
  37. LED_PORT.OUT &= ~LED2_PIN_bm;
  38. _delay_ms(300);
  39. LED_PORT.OUT &= ~LED3_PIN_bm;
  40. _delay_ms(350);
  41. }
  42.  
  43. void four(void){
  44. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  45.  
  46. LED_PORT.OUT &= ~LED1_PIN_bm;
  47. _delay_ms(250);
  48. LED_PORT.OUT &= ~LED2_PIN_bm;
  49. _delay_ms(300);
  50. LED_PORT.OUT &= ~LED3_PIN_bm;
  51. _delay_ms(350);
  52. LED_PORT.OUT &= ~LED4_PIN_bm;
  53. _delay_ms(400);
  54. }
  55.  
  56. void five(void){
  57. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  58.  
  59. LED_PORT.OUT &= ~LED1_PIN_bm;
  60. _delay_ms(250);
  61. LED_PORT.OUT &= ~LED2_PIN_bm;
  62. _delay_ms(300);
  63. LED_PORT.OUT &= ~LED3_PIN_bm;
  64. _delay_ms(350);
  65. LED_PORT.OUT &= ~LED4_PIN_bm;
  66. _delay_ms(400);
  67. LED_PORT.OUT &= ~LED5_PIN_bm;
  68. _delay_ms(350);
  69. }
  70.  
  71. void six(void){
  72. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  73.  
  74. LED_PORT.OUT &= ~LED1_PIN_bm;
  75. _delay_ms(250);
  76. LED_PORT.OUT &= ~LED2_PIN_bm;
  77. _delay_ms(300);
  78. LED_PORT.OUT &= ~LED3_PIN_bm;
  79. _delay_ms(350);
  80. LED_PORT.OUT &= ~LED4_PIN_bm;
  81. _delay_ms(400);
  82. LED_PORT.OUT &= ~LED5_PIN_bm;
  83. _delay_ms(450);
  84. LED_PORT.OUT &= ~LED6_PIN_bm;
  85. _delay_ms(500);
  86. }
  87.  
  88. void seven(void){
  89. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  90.  
  91. LED_PORT.OUT &= ~LED1_PIN_bm;
  92. _delay_ms(250);
  93. LED_PORT.OUT &= ~LED2_PIN_bm;
  94. _delay_ms(300);
  95. LED_PORT.OUT &= ~LED3_PIN_bm;
  96. _delay_ms(350);
  97. LED_PORT.OUT &= ~LED4_PIN_bm;
  98. _delay_ms(400);
  99. LED_PORT.OUT &= ~LED5_PIN_bm;
  100. _delay_ms(450);
  101. LED_PORT.OUT &= ~LED6_PIN_bm;
  102. _delay_ms(500);
  103. LED_PORT.OUT &= ~LED7_PIN_bm;
  104. _delay_ms(550);
  105. }
  106.  
  107. int main(void)
  108. {
  109.  
  110. //initialize LED
  111. LED_PORT.DIR = (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  112.  
  113. //Initialize state
  114. LED_PORT.OUT = (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  115.  
  116. //Initialize buttons
  117. BUTTON4_PINCTRL = PORT_OPC_PULLUP_gc;
  118.  
  119. uint8_t buffer;
  120. USB_USART_PORT.DIRSET = USB_USART_TX_PIN_bm; // TX is output.
  121. USB_USART_PORT.DIRCLR = USB_USART_RX_PIN_bm; // RX is input.
  122. // Asynchronous, 8 data bits, no parity, 1 stop bit
  123. USB_USART_MODULE.CTRLC = ( USART_CMODE_ASYNCHRONOUS_gc | USART_CHSIZE_8BIT_gc | USART_PMODE_DISABLED_gc);
  124. // 115200 baud -> BSCALE = -7, BSEL = 11, CLK2X = 0. Target: Internal RC 2MHz (default)
  125. USB_USART_MODULE.BAUDCTRLA = 11;
  126. USB_USART_MODULE.BAUDCTRLB = (-7<<USART_BSCALE_gp);
  127. // Enable receiver and transmitter
  128. USB_USART_MODULE.CTRLB = (USART_RXEN_bm | USART_TXEN_bm);
  129.  
  130. int x = 0;
  131.  
  132. while (1)
  133. {
  134. if(!(BUTTON_LOW_PORT.IN & BUTTON4_PIN_bm)){
  135. if(x == 0){
  136. LED_PORT.OUT |= (LED0_PIN_bm|LED1_PIN_bm|LED2_PIN_bm|LED3_PIN_bm|LED4_PIN_bm|LED5_PIN_bm|LED6_PIN_bm|LED7_PIN_bm);
  137. x = 1;
  138. }else if(x == 1){
  139. x = 0;
  140. }
  141. }
  142. if (USB_USART_MODULE.STATUS & USART_RXCIF_bm) { // Receive complete?
  143. buffer = USB_USART_MODULE.DATA; // Read data
  144. while(!(USB_USART_MODULE.STATUS & USART_DREIF_bm)); // Wait until data register empty
  145. USB_USART_MODULE.DATA = buffer; // Send data
  146.  
  147. if(x == 0){
  148. if (buffer == 0x30) // 1
  149. {
  150. one();
  151. }
  152.  
  153. else if (buffer == 0x31) // 2
  154. {
  155. two();
  156. }
  157. else if (buffer == 0x32) // 3
  158. {
  159. three();
  160. }
  161. else if (buffer == 0x33) // 4
  162. {
  163. four();
  164. }
  165. else if (buffer == 0x34) // 5
  166. {
  167. five();
  168. }
  169. else if (buffer == 0x35) // 6
  170. {
  171. six();
  172.  
  173. }
  174. else if (buffer == 0x36) // 7
  175. {
  176. seven();
  177. }
  178. }
  179. }
  180. }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement