Advertisement
Guest User

Final test by Michael

a guest
Jan 18th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.48 KB | None | 0 0
  1. /*
  2.  * Probetest_5.c
  3.  *
  4.  * Created: 18.01.2017 18:14:33
  5.  * Author : michael
  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 oneLED(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 twoLEDs(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.  
  29.     LED_PORT.OUT &= ~LED2_PIN_bm;
  30.     _delay_ms(300);
  31. }
  32.  
  33. void threeLEDs(void){
  34.     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);
  35.  
  36.     LED_PORT.OUT &= ~LED1_PIN_bm;
  37.     _delay_ms(250);
  38.  
  39.     LED_PORT.OUT &= ~LED2_PIN_bm;
  40.     _delay_ms(300);
  41.  
  42.     LED_PORT.OUT &= ~LED3_PIN_bm;
  43.     _delay_ms(350);
  44. }
  45.  
  46. void fourLEDs(void){
  47.     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);
  48.  
  49.     LED_PORT.OUT &= ~LED1_PIN_bm;
  50.     _delay_ms(250);
  51.  
  52.     LED_PORT.OUT &= ~LED2_PIN_bm;
  53.     _delay_ms(300);
  54.  
  55.     LED_PORT.OUT &= ~LED3_PIN_bm;
  56.     _delay_ms(350);
  57.  
  58.     LED_PORT.OUT &= ~LED4_PIN_bm;
  59.     _delay_ms(400);
  60. }
  61.  
  62. void fiveLEDs(void){
  63.     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);
  64.  
  65.     LED_PORT.OUT &= ~LED1_PIN_bm;
  66.     _delay_ms(250);
  67.  
  68.     LED_PORT.OUT &= ~LED2_PIN_bm;
  69.     _delay_ms(300);
  70.  
  71.     LED_PORT.OUT &= ~LED3_PIN_bm;
  72.     _delay_ms(350);
  73.  
  74.     LED_PORT.OUT &= ~LED4_PIN_bm;
  75.     _delay_ms(400);
  76.  
  77.     LED_PORT.OUT &= ~LED5_PIN_bm;
  78.     _delay_ms(450);
  79. }
  80.  
  81. void sixLEDs(void){
  82.     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);
  83.  
  84.     LED_PORT.OUT &= ~LED1_PIN_bm;
  85.     _delay_ms(250);
  86.  
  87.     LED_PORT.OUT &= ~LED2_PIN_bm;
  88.     _delay_ms(300);
  89.  
  90.     LED_PORT.OUT &= ~LED3_PIN_bm;
  91.     _delay_ms(350);
  92.  
  93.     LED_PORT.OUT &= ~LED4_PIN_bm;
  94.     _delay_ms(400);
  95.  
  96.     LED_PORT.OUT &= ~LED5_PIN_bm;
  97.     _delay_ms(450);
  98.  
  99.     LED_PORT.OUT &= ~LED6_PIN_bm;
  100.     _delay_ms(500);
  101. }
  102. void sevenLEDs(void){
  103.     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);
  104.  
  105.     LED_PORT.OUT &= ~LED1_PIN_bm;
  106.     _delay_ms(250);
  107.  
  108.     LED_PORT.OUT &= ~LED2_PIN_bm;
  109.     _delay_ms(300);
  110.  
  111.     LED_PORT.OUT &= ~LED3_PIN_bm;
  112.     _delay_ms(350);
  113.  
  114.     LED_PORT.OUT &= ~LED4_PIN_bm;
  115.     _delay_ms(400);
  116.  
  117.     LED_PORT.OUT &= ~LED5_PIN_bm;
  118.     _delay_ms(450);
  119.  
  120.     LED_PORT.OUT &= ~LED6_PIN_bm;
  121.     _delay_ms(500);
  122.  
  123.     LED_PORT.OUT &= ~LED7_PIN_bm;
  124.     _delay_ms(550);
  125. }
  126.  
  127. int main(void)
  128. {
  129.     //Initialize LEDS
  130.     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);
  131.  
  132.     //Initialize States of the LEDS
  133.     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);
  134.  
  135.     //Initialize USART
  136.     USB_USART_PORT.DIRSET = USB_USART_TX_PIN_bm;
  137.     USB_USART_PORT.DIRCLR = USB_USART_RX_PIN_bm;
  138.  
  139.     // CMODE Asynchronous, CHSIZE 8 Bit and PMODE Disabled
  140.     USB_USART_MODULE.CTRLC = (USART_CMODE_ASYNCHRONOUS_gc|USART_CHSIZE_8BIT_gc|USART_PMODE_DISABLED_gc);
  141.    
  142.     //BAUDRATE 115200
  143.     USB_USART_MODULE.BAUDCTRLA = 11;
  144.     USB_USART_MODULE.BAUDCTRLB = (-7<<USART_BSCALE_gp);
  145.    
  146.     //Enable receiver and transmitter
  147.     USB_USART_MODULE.CTRLB = (USART_RXEN_bm|USART_TXEN_bm);
  148.  
  149.     //Initialize Button
  150.     BUTTON4_PINCTRL = PORT_OPC_PULLUP_gc;
  151.  
  152.     uint8_t data;
  153.     int x = 0;
  154.     while (1)
  155.     {
  156.         if(!(BUTTON_LOW_PORT.IN & BUTTON4_PIN_bm)){
  157.             if(x == 0){
  158.                 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);
  159.                 x = 1;
  160.                 }else if(x == 1){
  161.                 x = 0;
  162.             }
  163.         }
  164.  
  165.         if(USB_USART_MODULE.STATUS & USART_RXCIF_bm){
  166.             data = USB_USART_MODULE.DATA;
  167.             while(!(USB_USART_MODULE.STATUS & USART_DREIF_bm));
  168.             USB_USART_MODULE.DATA = data;
  169.  
  170.             if (x == 0){
  171.                 if(data == 0x30){ //0x30 = 0
  172.                 ClearLEDS();
  173.                 }else if(data == 0x31){ //0x31 = 1
  174.                 oneLED();
  175.                 }else if(data == 0x32){ //0x32 = 2
  176.                 twoLEDs();
  177.                 }else if(data == 0x33){ //0x33 = 3
  178.                 threeLEDs();
  179.                 }else if(data == 0x34){ //0x34 = 4
  180.                 fourLEDs();
  181.                 }else if(data == 0x35){ //0x35 = 5
  182.                 fiveLEDs();
  183.                 }else if(data == 0x36){ //0x36 = 6
  184.                 sixLEDs();
  185.                 }else if(data == 0x37){ //0x37 = 7
  186.                 sevenLEDs();
  187.                 }
  188.             }
  189.         }
  190.     }
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement