added start for 4.b1
This commit is contained in:
57
Microcontrollers/opdracht 4.b1/main.c
Normal file
57
Microcontrollers/opdracht 4.b1/main.c
Normal file
@@ -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 <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <avr/interrupt.h>
|
||||
|
||||
#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<ms; tms++)
|
||||
{
|
||||
_delay_ms( 1 ); // library function (max 30 ms at 8MHz)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Initialize ADC: 10-bits (left justified), free running
|
||||
void adcInit( void )
|
||||
{
|
||||
ADMUX = 0b01100011; // AREF=VCC, result left adjusted, channel3 at pin PF3
|
||||
ADCSRA = 0b11100110; // ADC-enable, no interrupt, start, free running, division by 64
|
||||
}
|
||||
|
||||
|
||||
// Main program: ADC at PF1
|
||||
int main( void )
|
||||
{
|
||||
DDRF = 0x00; // set PORTF for input (ADC)
|
||||
DDRA = 0xFF; // set PORTA for output
|
||||
DDRB = 0xFF; // set PORTB for output
|
||||
adcInit(); // initialize ADC
|
||||
|
||||
while (1)
|
||||
{
|
||||
PORTB = ADCL; // Show MSB/LSB (bit 10:0) of ADC
|
||||
PORTA = ADCH;
|
||||
wait(100); // every 100 ms (busy waiting)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user