Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Probetest_4.c
- *
- * Created: 17.01.2017 20:00:04
- * Author : alexander zechner
- */
- #include <avr/io.h>
- #include "board.h"
- #include <util/delay.h>
- void clearLights(void){
- if(!(BUTTON_LOW_PORT.IN & BUTTON0_PIN_bm)){
- 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 eineLED(void){
- if(!(BUTTON_LOW_PORT.IN & BUTTON1_PIN_bm)){
- 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 zweiLEDS(void){
- if(!(BUTTON_LOW_PORT.IN & BUTTON2_PIN_bm)){
- 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 dreiLEDS(void){
- if(!(BUTTON_LOW_PORT.IN & BUTTON3_PIN_bm)){
- 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 vierLEDS(void){
- if(!(BUTTON_LOW_PORT.IN & BUTTON4_PIN_bm)){
- 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 fünfLEDS(void){
- if(!(BUTTON_LOW_PORT.IN & BUTTON5_PIN_bm)){
- 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 sechsLEDS(void){
- if(!(BUTTON_HIGH_PORT.IN & BUTTON6_PIN_bm)){
- 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 siebenLEDS(void){
- if(!(BUTTON_HIGH_PORT.IN & BUTTON7_PIN_bm)){
- 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
- BUTTON0_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON1_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON2_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON3_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON4_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON5_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON6_PINCTRL = PORT_OPC_PULLUP_gc;
- BUTTON7_PINCTRL = PORT_OPC_PULLUP_gc;
- 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;
- uint8_t buffer;
- while (1)
- {
- if(USB_USART_MODULE.STATUS & USART_RXCIF_bm){
- buffer = USB_USART_MODULE.DATA;
- while(!(USB_USART_MODULE.STATUS & USART_DREIF_bm));
- USB_USART_MODULE.DATA = buffer;
- if(x==0){
- x=1;
- 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);
- }else if(x==1){
- x=0;
- }
- }
- if(x==0){
- clearLights();
- eineLED();
- zweiLEDS();
- dreiLEDS();
- vierLEDS();
- fünfLEDS();
- sechsLEDS();
- siebenLEDS();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement