ADC Interrupt wird nicht ausgelöst - ATMEGA8

Gast #3318374
Lesenswert?

Hallo Leute,

Ich hatte die letzten Tage ne Menge Spaß mit meiner ersten 
Mikrocontroller-Platine. Nur will jetzt der ADC nicht so ganz...

Problem (Vermutung):
Nachdem der ADC fertig ist wird das Interrupt nicht ausgeführt. Zum Test 
wollte ich einfach im Interrupt-Teil mal meine LED auf PINB2 
einschalten, die bleibt aber aus und auch im Simulator springt mir mein 
Programm nicht in den ISR-Teil, sondern bleibt im main. Warum?

Wen's interessiert hier mein Schaltplan im Anhang:
Beitrag "Programmieren schlägt fehl - Anfängerfrage"

Hier mein Code:
1
#include <avr/io.h>
2
#include <stdlib.h>
3
#include <avr/interrupt.h>
4

5
int main(void)
6
{
7
  DDRB |= 1<<PINB2;
8
  
9
  //ADC Enable
10
  ADCSRA |= 1<<ADEN;
11
  
12
  //Prescaler /16
13
  ADCSRA |= 1<<ADPS2;
14
  
15
  //Linksausrichtung
16
  ADMUX |= 1<<ADLAR;
17
  
18
  //Referenzspannung = AVCC
19
  ADMUX |= 1<<REFS0;
20
  
21
  sei();
22
  
23
  //Interrupt aktivieren
24
  ADCSRA |= ADIE;
25

26
  //Start first conversion
27
  ADCSRA |= 1<<ADSC;
28
  
29
  
30
  while(1)
31
  {
32
  }
33
}
34

35
ISR(ADC_vect)
36
{
37
  PORTB |= 1<<PINB2;
38

39
  //Start next conversion
40
  ADCSRA |= 1<<ADSC;
41
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren