diff --git a/prosjekt.X/header.h b/prosjekt.X/header.h index 0d90bd2..aaef92e 100644 --- a/prosjekt.X/header.h +++ b/prosjekt.X/header.h @@ -26,10 +26,6 @@ * Revision history: */ -#define F_CPU 4000000UL -#define RTC_PERIOD (511) -#define DELAY_TIME 1000 -#define USART3_BAUD_RATE(BAUD_RATE) ((float) (64*F_CPU /(16*(float)BAUD_RATE) )+0.5) #include #include #include @@ -62,9 +58,8 @@ void USART3_init(void); void USART3_sendChar(char c); void USART3_sendString(char *str); static int USART3_printChar(char c, FILE *stream); -uint16_t adcVal; void led_init(void); void ADC0_init(void); -uint16_t ADC0_read(); void ADC0_start(void); -bool ADC0_conversationDone(void); \ No newline at end of file +bool ADC0_conversationDone(void); +uint16_t adcVal; \ No newline at end of file diff --git a/prosjekt.X/main.c b/prosjekt.X/main.c index 1b1e6dd..8795130 100644 --- a/prosjekt.X/main.c +++ b/prosjekt.X/main.c @@ -18,95 +18,82 @@ static FILE USART_stream = FDEV_SETUP_STREAM(USART3_printChar, NULL, _FDEV_SETUP_WRITE); -void sensor_init(void) -{ - /* Disable digital input buffer */ - +void sensor_init(void) { + /* Disable digital input buffer */ + } -void USART3_init(void) -{ - PORTB.DIRCLR &= ~PIN1_bm; - PORTB.DIRSET |= PIN0_bm; - PORTB.DIRCLR = PIN2_bm; - PORTB.PIN2CTRL |= PORT_PULLUPEN_bm; - USART3.CTRLB |= USART_RXEN_bm | USART_TXEN_bm; /* Enable both TX and +void USART3_init(void) { + PORTB.DIRCLR &= ~PIN1_bm; + PORTB.DIRSET |= PIN0_bm; + PORTB.DIRCLR = PIN2_bm; + PORTB.PIN2CTRL |= PORT_PULLUPEN_bm; + USART3.CTRLB |= USART_RXEN_bm | USART_TXEN_bm; /* Enable both TX and RX */ - USART3.BAUD = USART3_BAUD_RATE (9600); /* Setting the baudrate */ + USART3.BAUD = USART3_BAUD_RATE(9600); /* Setting the baudrate */ } -void ADC0_init(void) -{ - ADC0.CTRLC = ADC_PRESC_DIV4_gc; - VREF.ADC0REF = VREF_REFSEL_VDD_gc; /* Internal reference */ - ADC0.CTRLA = ADC_ENABLE_bm /* ADC Enable: enabled */ - | ADC_RESSEL_10BIT_gc; /* 10-bit mode */ - /* Select ADC channel */ - ADC0.MUXPOS = ADC_MUXPOS_AIN6_gc; +void ADC0_init(void) { + ADC0.CTRLC = ADC_PRESC_DIV4_gc; + VREF.ADC0REF = VREF_REFSEL_VDD_gc; /* Internal reference */ + ADC0.CTRLA = ADC_ENABLE_bm /* ADC Enable: enabled */ + | ADC_RESSEL_10BIT_gc; /* 10-bit mode */ + /* Select ADC channel */ + ADC0.MUXPOS = ADC_MUXPOS_AIN6_gc; } -void USART3_sendChar(char c) -{ - while (!(USART3.STATUS & USART_DREIF_bm)) - { - ; - } - USART3.TXDATAL = c; +void USART3_sendChar(char c) { + while (!(USART3.STATUS & USART_DREIF_bm)) { + ; + } + USART3.TXDATAL = c; } -void USART3_sendString(char *str) -{ - for(size_t i = 0; i < strlen(str); i++) - { - USART3_sendChar(str[i]); - } +void USART3_sendString(char *str) { + for (size_t i = 0; i < strlen(str); i++) { + USART3_sendChar(str[i]); + } } -static int USART3_printChar(char c, FILE *stream) -{ - USART3_sendChar(c); - return 0; +static int USART3_printChar(char c, FILE *stream) { + USART3_sendChar(c); + return 0; } -uint16_t ADC0_read(void) -{ - /* Start ADC conversion */ - ADC0.COMMAND = ADC_STCONV_bm; - /* Wait until ADC conversion done */ - while ( !(ADC0.INTFLAGS & ADC_RESRDY_bm) ) - { - ; - } - /* Clear the interrupt flag by writing 1: */ - ADC0.INTFLAGS = ADC_RESRDY_bm; - return ADC0.RES; +uint16_t ADC0_read(void) { + /* Start ADC conversion */ + ADC0.COMMAND = ADC_STCONV_bm; + /* Wait until ADC conversion done */ + while (!(ADC0.INTFLAGS & ADC_RESRDY_bm)) { + ; + } + /* Clear the interrupt flag by writing 1: */ + ADC0.INTFLAGS = ADC_RESRDY_bm; + return ADC0.RES; } -bool ADC0_conversationDone(void) -{ - if(ADC0.INTFLAGS && ADC_RESRDY_bm){ +bool ADC0_conversationDone(void) { + if (ADC0.INTFLAGS && ADC_RESRDY_bm) { return true; - }else{ + } else { return false; } - + } -int main(void) -{ sensor_init(); - ADC0_init(); - USART3_init(); - stdout = &USART_stream; - - while (1) - { +int main(void) { + sensor_init(); + ADC0_init(); + USART3_init(); + stdout = &USART_stream; + + while (1) { //printf("loop\n"); - if (ADC0_conversationDone()) - { - adcVal = ADC0_read(); - VREF.ADC0REF = VREF_REFSEL_VDD_gc; - printf("The values: \n"); - //printf("%u , %u",VREF_REFSEL_VDD_gc , adcVal); - } + if (ADC0_conversationDone()) { + adcVal = ADC0_read(); + VREF.ADC0REF = VREF_REFSEL_VDD_gc; + printf("The values: \n"); + //printf("%u , %u",VREF_REFSEL_VDD_gc , adcVal); + } } } \ No newline at end of file