mikrocontroller.net

Forum: Compiler & IDEs Interrupt wird nicht richtig ausgeführt TMR0


Autor: xmen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Woran könnte es liegen das die ISR nicht richtig ausgeführt wird?

Und zwar wird bei einem Overflow von TMR0 wieder bei der Initialisierung 
angefangen ? nur Warum ?

Könnte mir da jemand helfen?

Grüße

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/iom16.h>

volatile uint8_t PWM;

//Interrupt Service Routinen

ISR (TIMER0_OVF_vect)
  {
  PWM++;
  }


//----Hauptschleife

int main(void)
{
  //Initialisierung
  DDRB    =    0xFF;
  DDRD    =    0x3F;
  TCCR0     |=    (1<<CS00);
  TIMSK      |=     (1<<TOIE0);


  sei();
  
  while(1)
  {PORTB  = 0x01;
  PORTB   = 0x02;
   }

}

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwelche Warnings vom Compiler?

(warum bindest du die iom16.h direkt ein. Die brauchst du nicht. Das 
macht schon die iom.h. Schmeiss sie raus und wenn du dann irgendwelche 
Warnungen kriegst, weißt du, dass deine Projektkonfiguration nicht 
stimmt. Die spezifischen iomXX.h bindet man nie selber ein)

Autor: xmen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja eine Warnung gibt es und zwar die hier:

<command-line>: warning: this is the location of the previous definition

Aber wenn ich da einen Doppelklick mache dann springt er nicht zur 
Programmzeile.


hmm

Autor: xmen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhm ich hab mir jetzt mal in der Simulation ne Fehlermeldung bekommen 
und Zwar habe ich in der ISR wo PWM++; steht einen Breakpoint gesetzt.

Wenn ich dann auf RUN Drücke dann stoppt die Simulation und im Output 
steht:
AVR Simulator: Excessive stack overflow, stop sim

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr wahrscheinlich falschen Controller eingestellt, entweder beim 
Compilieren oder im Simulator.

Autor: xmen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhm also ich bin so oder so nur in der Simulation grade und dort 
Funktioniert es nicht.

Wenn ich mit einem Rechtklick auf mein Projekt gehe und auf Properties 
klicke dann steht da Target Part: Atmega 16

Wenn ich unter Projekt/Configuration gehe dann steht dort auch Atmega 16

und wenn ich den Controller Programmieren wollte mit dem AVR Dragon dann 
steht doch auch Atmega 16.



Kann man das noch irgendwo umstellen ? denn für die Simulation sollte ja 
eigentlich der Prozessor verwendet werden den man unter 
"Projekt/Configuration " eingestellt hat.

Autor: xmen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Es hat anscheinend Doch irgendwas mit dem Controller im Projekt zu 
tun. und zwar hab ich das Projekt früher mal für einen Atmega 32 
erstellt. Bin aber dann auf den 16er umgesprungen. Wenn ich jetzt das 
Programm auf Atmega 32 stelle dann Funktioniert die ISR ganz normal wenn 
ich den wieder auf den 16er Stelle dann kommt wieder die Overflow.

Mhmmm. Aber wie kann man das Projekt denn dann so umstellen das man 
jetzt nen anderen Controller verwenden kann?  ohne ein Neues Projekt 
anlegen zu müssen ?

Oder Hat der Atmega 16 irgendwie Probleme bei der ISR ?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xmen schrieb:
> denn für die Simulation sollte ja
> eigentlich der Prozessor verwendet werden den man unter
> "Projekt/Configuration " eingestellt hat.

Nö, das muss man separat einstellen:
Debug -> Select Platform and Device

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.