-
-
Neuer Benutzer
Öfters hier
Problem mit ADC Single conversion(ATMEGA 32)
ich möchte mit meine programm eine single conversion starten und das ergebnis auf 16 led´s ausgeben
doch irgendwie funktioniert mein programm nicht
könnt ihr mir bitte helfen!
//Hauptprogramm
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>
void ADC_Init(void); //Prototyp des Unterprogramms
int main (void)
{
//Definitionen der Ports
DDRC = 0xff; //Port A als Ausgang definieren
PORTC = 0x00; //Port A wird auf low gelegt
DDRB = 0xff; //Port B als Ausgang definieren
PORTB = 0x00; //Port B wird auf low gelegt
DDRD = 0x00; //Port D als Eingang definieren
PORTD = 0xff; //Pull-Up aktivieren
uint16_t xl,xh;
while(1)
{
MCUCR|=(1<<ISC01)|(1<<ISC00); //Steigende Flanke löst Interrupt aus
sei(); //Interruptes global erlauben
xl = ADCL;
xh= ADCH;
PORTC = xl;
PORTB = xh;
}
}
ISR(INT0_vect) //INT0 ist der externe Interrupt0
{
ADC_Init(); //Aufruf des Unterprogramms ADC_Init
}
//--------------------------------------------------------------------------------------------
//Erstellung eines Unterprogramms zur AD Wandlung
void ADC_Init(void)
{
ADMUX = (1<<REFS1) | (1<<REFS0); //Verwendung der internen Referenzspannungsquelle
ADCSRA |= (1<<ADEN); // ADC aktivieren
ADCSRA |= (1<<ADSC); // Start einer ADC-Wandlung im single mode Betrieb
}
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen