From bd2a5e609153e4ce99989a5fa1f69c0ab1f9e56e Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 3 Mar 2021 11:22:43 +0100 Subject: [PATCH 1/2] added start for 4.b1 --- Microcontrollers/opdracht 4.b1/main.c | 57 ++++++++++++ .../opdracht 4.b1.componentinfo.xml | 86 +++++++++++++++++++ .../opdracht 4.b1/opdracht 4.b1.cproj | 28 ++++++ 3 files changed, 171 insertions(+) create mode 100644 Microcontrollers/opdracht 4.b1/main.c create mode 100644 Microcontrollers/opdracht 4.b1/opdracht 4.b1.componentinfo.xml create mode 100644 Microcontrollers/opdracht 4.b1/opdracht 4.b1.cproj diff --git a/Microcontrollers/opdracht 4.b1/main.c b/Microcontrollers/opdracht 4.b1/main.c new file mode 100644 index 0000000..1b3384b --- /dev/null +++ b/Microcontrollers/opdracht 4.b1/main.c @@ -0,0 +1,57 @@ +/* + * opdracht 4.b1.c + * + * Created: 3-3-2021 10:54:49 + * Author : Sem + */ + +/************************************************************************/ +/* Verander het programma (voor kanaal 3 en voor 8 bits) zodat het alleen een AD-conversie uitvoert +als jij dat wilt, dus op aanvraag. Maak daarvoor in main() een eindeloze lus met een wachtfunctie +en een start voor de ADC (Zie ook code in de repository). */ +/************************************************************************/ + + +#define F_CPU 10e6 +#include +#include +#include + +#define BIT(x) (1 << (x)) + +// wait(): busy waiting for 'ms' millisecond +// Used library: util/delay.h +void wait( int ms ) +{ + for (int tms=0; tms + + + + + + Device + Startup + + + Atmel + 1.6.0 + C:/Program Files (x86)\Atmel\Studio\7.0\Packs + + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include\ + + include + C + + + include/ + + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include\avr\iom128.h + + header + C + JdJ7J9I/SJh965SEyyyVYw== + + include/avr/iom128.h + + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\templates\main.c + template + source + C Exe + LGMXRdW4vmSlRGAAGvj3wQ== + + templates/main.c + Main file (.c) + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\templates\main.cpp + template + source + C Exe + mkKaE95TOoATsuBGv6jmxg== + + templates/main.cpp + Main file (.cpp) + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128 + + libraryPrefix + GCC + + + gcc/dev/atmega128 + + + + + ATmega_DFP + C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/Atmel.ATmega_DFP.pdsc + 1.6.364 + true + ATmega128 + + + + Resolved + Fixed + true + + + \ No newline at end of file diff --git a/Microcontrollers/opdracht 4.b1/opdracht 4.b1.cproj b/Microcontrollers/opdracht 4.b1/opdracht 4.b1.cproj new file mode 100644 index 0000000..ad47ba0 --- /dev/null +++ b/Microcontrollers/opdracht 4.b1/opdracht 4.b1.cproj @@ -0,0 +1,28 @@ + + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.C + dce6c7e3-ee26-4d79-826b-08594b9ad897 + ATmega128 + none + Executable + C + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + opdracht 4.b1 + opdracht 4.b1 + opdracht 4.b1 + + + + + + + + + + + \ No newline at end of file From 3196b8676240d426e473105f2124a36734b3efc7 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 3 Mar 2021 11:55:41 +0100 Subject: [PATCH 2/2] finished 4.b1 --- Microcontrollers/opdracht 3.2/main.c | 1 - Microcontrollers/opdracht 4.b1/main.c | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Microcontrollers/opdracht 3.2/main.c b/Microcontrollers/opdracht 3.2/main.c index 907e557..ce88a43 100644 --- a/Microcontrollers/opdracht 3.2/main.c +++ b/Microcontrollers/opdracht 3.2/main.c @@ -47,7 +47,6 @@ ISR( TIMER2_OVF_vect ) { int length = snprintf(NULL, 0, "%d", number + 1); char str[length + 1]; snprintf(str, length + 1, "%d", number + 1); - lcd_write_string(str); } diff --git a/Microcontrollers/opdracht 4.b1/main.c b/Microcontrollers/opdracht 4.b1/main.c index 1b3384b..a7fca75 100644 --- a/Microcontrollers/opdracht 4.b1/main.c +++ b/Microcontrollers/opdracht 4.b1/main.c @@ -30,11 +30,19 @@ void wait( int ms ) } -// Initialize ADC: 10-bits (left justified), free running +// Initialize ADC: 10-bits (left justified), no free running void adcInit( void ) { + sei(); // enable interrupts ADMUX = 0b01100011; // AREF=VCC, result left adjusted, channel3 at pin PF3 - ADCSRA = 0b11100110; // ADC-enable, no interrupt, start, free running, division by 64 + ADCSRA = 0b10001110; // ADC-enable, start conversion mode, no free running, interrupt enable +} + +/************************************************************************/ +/* starts AD converstion by setting bit 6 in ADCSRA to 1 */ +/************************************************************************/ +void startConversion(void) { + ADCSRA |= BIT(6); } @@ -50,6 +58,8 @@ int main( void ) { PORTB = ADCL; // Show MSB/LSB (bit 10:0) of ADC PORTA = ADCH; + + startConversion(); wait(100); // every 100 ms (busy waiting) } }