From f04723704ea274bdef8c6066aafcdb9ac196bf3d Mon Sep 17 00:00:00 2001 From: Rihards Skuja Date: Tue, 2 Jan 2018 14:08:13 +0200 Subject: [PATCH] Split LED functionality in seperate headers/sources --- include/io.h | 10 ---------- include/led.h | 10 ++++++++++ include/main.h | 2 -- src/led.c | 9 +++++++++ src/main.c | 32 ++++---------------------------- 5 files changed, 23 insertions(+), 40 deletions(-) delete mode 100644 include/io.h create mode 100644 include/led.h create mode 100644 src/led.c diff --git a/include/io.h b/include/io.h deleted file mode 100644 index 4699712..0000000 --- a/include/io.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PORTS_H -#define PORTS_H - -/* DS18B20+ is configured in DS18B20 library */ - -/* Signal LEDs */ -#define LED_1 PD3 -#define LED_2 PD4 - -#endif diff --git a/include/led.h b/include/led.h new file mode 100644 index 0000000..a22eff6 --- /dev/null +++ b/include/led.h @@ -0,0 +1,10 @@ +#ifndef LED_H +#define LED_H + +#define LED_DDR DDRD +#define LED_1_BIT PD3 +#define LED_2_BIT PD4 + +void init_leds(void); + +#endif /* LED_H */ diff --git a/include/main.h b/include/main.h index adf9394..2b2393e 100644 --- a/include/main.h +++ b/include/main.h @@ -11,8 +11,6 @@ #include "debug.h" #endif /* DEBUG */ -void init_led(void); void read_temp(void); -uint16_t read_adc(uint8_t channel); #endif diff --git a/src/led.c b/src/led.c new file mode 100644 index 0000000..4a2b702 --- /dev/null +++ b/src/led.c @@ -0,0 +1,9 @@ +#include +#include "common.h" +#include "led.h" + +void init_leds(void) +{ + SET(LED_DDR, LED_1_BIT); + SET(LED_DDR, LED_2_BIT); +} diff --git a/src/main.c b/src/main.c index b3a4e61..d3d468f 100644 --- a/src/main.c +++ b/src/main.c @@ -2,23 +2,10 @@ #include #include #include "ds18b20.h" +#include "led.h" #include "servos.h" #include "sonar.h" #include "main.h" -#include "io.h" - -void init_led(void) -{ - DDRD |= 1 << LED_1; - DDRD |= 1 << LED_2; -} - -void init_adc(void) -{ - ADCSRA |= 1 << ADPS0 | 1 << ADPS1; // Prescaler = 8 => ADC clock = 125Hz - ADMUX |= 1 << REFS0; // AVcc with external cap as reference voltage - ADCSRA |= 1 << ADEN | 1 << ADSC; -} void read_temp(void) { @@ -28,29 +15,18 @@ void read_temp(void) for (;;) { d = ds18b20_gettemp(); if (d >= 23) - SET(PORTD, LED_1); + ; else - CLR(PORTD, LED_1); + ; _delay_ms(500); } } -uint16_t read_adc(uint8_t channel) -{ - ADMUX &= 0xF0; - ADMUX |= channel; - SET(ADCSRA, ADSC); // Start conversion - while (CHK(ADCSRA, ADSC)); // Wait for conversion to finish - - return ADCW; -} - int main(void) { - init_led(); + init_leds(); init_servos(); - init_adc(); run_servos(); read_temp();