USART - ADC vertragen sich nicht

Gast #322504
Lesenswert?
• ▲
▼
Hi
Kennt jemand folgendes Problem:

1) Wenn ich USART und ADC initialisiere (single conversion) startet die
ADC-ISR nicht.
2) Wenn ich USART und ADC initialisiere (Dauerwandlung) geht es
3) Wenn ich USART deaktiviere geht ADC in Single- und Dauer- Wandlung

Ich starte meine Wandlung mit Hilfe des Timer0 jede msec.

Ich verwende:
ATmega128 @8MHz
M103C Fuse deaktiviert (also nicht im Atmega103 kompatibilitätsmodus)
SUT0 FUse programmiert, crystal oscillator fast rising power.
Ich programmiere in C
Interrupts sind enabled

--Register-- wie folgt gesetzt:

ADC:
ADMUX=0x20;              //AREF, Left Adjust, Channel 0
ADCSRA=0x8A;             //ADC Enable, interrupt enable, Prescaler 16
SFIOR=SFIOR&0x8F;

USART:
UCSR0A=0x00;              //Flag Register
UCSR0B=0xF8;              //Receive/Transmit Complete Interrupt
aktiviert, Data Register Empty interrupt aktiviert, Receiver Enable,
Transmitter enable,
UCSR0C=0x06;              //asynchron, no parity, 1 Stopbit,8Datenbits
UBRR0H=0x00;              //Baudrate 9600
UBRR0L=0x33;              //Baudrate 9600

Timer0:
ASSR=0x00;              //Asynchron Status register
TCCR0=0x02;              //Prescaler=8, daher Timer-Takt 1Mhz
TCNT0=0x05;              //Vorladewert, zählt nur 255-5=250 Werte
OCR0=0x00;              //Überlauf-Modus, nicht Compare
TIMSK=0x01;              //Überlauf-Interrup enable
ETIMSK=0x00;




--ISR--:

interrupt [ADC_INT] void adc_isr(void)
{  adc_data=ADCH;  }

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
ADCSRA=0xCA;   //Wandlung des ADC starten
TCNT0=0x05;    //Register des Timers wieder vorladen
}



--MAIN--

void main (void) {
while(1) { }
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.