Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Testprogramm2.c
- *
- * Created: 18.01.2017 17:52:09
- * Author : Andre
- */
- #include <avr/io.h>
- #include "board.h"
- #include <util/delay.h>
- void ClearLEDS(void){
- 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);
- }
- void one(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- }
- void two(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- LED_PORT.OUT &= ~LED2_PIN_bm;
- _delay_ms(300);
- }
- void three(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- LED_PORT.OUT &= ~LED2_PIN_bm;
- _delay_ms(300);
- LED_PORT.OUT &= ~LED3_PIN_bm;
- _delay_ms(350);
- }
- void four(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- LED_PORT.OUT &= ~LED2_PIN_bm;
- _delay_ms(300);
- LED_PORT.OUT &= ~LED3_PIN_bm;
- _delay_ms(350);
- LED_PORT.OUT &= ~LED4_PIN_bm;
- _delay_ms(400);
- }
- void five(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- LED_PORT.OUT &= ~LED2_PIN_bm;
- _delay_ms(300);
- LED_PORT.OUT &= ~LED3_PIN_bm;
- _delay_ms(350);
- LED_PORT.OUT &= ~LED4_PIN_bm;
- _delay_ms(400);
- LED_PORT.OUT &= ~LED5_PIN_bm;
- _delay_ms(350);
- }
- void six(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- LED_PORT.OUT &= ~LED2_PIN_bm;
- _delay_ms(300);
- LED_PORT.OUT &= ~LED3_PIN_bm;
- _delay_ms(350);
- LED_PORT.OUT &= ~LED4_PIN_bm;
- _delay_ms(400);
- LED_PORT.OUT &= ~LED5_PIN_bm;
- _delay_ms(450);
- LED_PORT.OUT &= ~LED6_PIN_bm;
- _delay_ms(500);
- }
- void seven(void){
- 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);
- LED_PORT.OUT &= ~LED1_PIN_bm;
- _delay_ms(250);
- LED_PORT.OUT &= ~LED2_PIN_bm;
- _delay_ms(300);
- LED_PORT.OUT &= ~LED3_PIN_bm;
- _delay_ms(350);
- LED_PORT.OUT &= ~LED4_PIN_bm;
- _delay_ms(400);
- LED_PORT.OUT &= ~LED5_PIN_bm;
- _delay_ms(450);
- LED_PORT.OUT &= ~LED6_PIN_bm;
- _delay_ms(500);
- LED_PORT.OUT &= ~LED7_PIN_bm;
- _delay_ms(550);
- }
- int main(void)
- {
- //initialize LED
- 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);
- //Initialize state
- 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);
- //Initialize buttons
- BUTTON4_PINCTRL = PORT_OPC_PULLUP_gc;
- uint8_t buffer;
- USB_USART_PORT.DIRSET = USB_USART_TX_PIN_bm; // TX is output.
- USB_USART_PORT.DIRCLR = USB_USART_RX_PIN_bm; // RX is input.
- // Asynchronous, 8 data bits, no parity, 1 stop bit
- USB_USART_MODULE.CTRLC = ( USART_CMODE_ASYNCHRONOUS_gc | USART_CHSIZE_8BIT_gc | USART_PMODE_DISABLED_gc);
- // 115200 baud -> BSCALE = -7, BSEL = 11, CLK2X = 0. Target: Internal RC 2MHz (default)
- USB_USART_MODULE.BAUDCTRLA = 11;
- USB_USART_MODULE.BAUDCTRLB = (-7<<USART_BSCALE_gp);
- // Enable receiver and transmitter
- USB_USART_MODULE.CTRLB = (USART_RXEN_bm | USART_TXEN_bm);
- int x = 0;
- while (1)
- {
- if(!(BUTTON_LOW_PORT.IN & BUTTON4_PIN_bm)){
- if(x == 0){
- 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);
- x = 1;
- }else if(x == 1){
- x = 0;
- }
- }
- if (USB_USART_MODULE.STATUS & USART_RXCIF_bm) { // Receive complete?
- buffer = USB_USART_MODULE.DATA; // Read data
- while(!(USB_USART_MODULE.STATUS & USART_DREIF_bm)); // Wait until data register empty
- USB_USART_MODULE.DATA = buffer; // Send data
- if(x == 0){
- if (buffer == 0x30) // 1
- {
- one();
- }
- else if (buffer == 0x31) // 2
- {
- two();
- }
- else if (buffer == 0x32) // 3
- {
- three();
- }
- else if (buffer == 0x33) // 4
- {
- four();
- }
- else if (buffer == 0x34) // 5
- {
- five();
- }
- else if (buffer == 0x35) // 6
- {
- six();
- }
- else if (buffer == 0x36) // 7
- {
- seven();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement