www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega8515 auf STK 500: Timer funtkionieren nicht


Autor: MrWhite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich hoffe ihr koennt mir helfen.

Habe auf dem STK500 einen ATMega8515 und moechte dort einen 
Timer-Interrupt nutzen.

Klappt nur leider nicht, habe mittlerweile bestimmt 20 Sources aus dem 
Internet ausprobiert (auch aus diesem Forum), aber nichts funkioniert!

Hat jemand ein Beispiel, das verifiziertermassen funktioniert? Muessen 
noch irgendwelche Einstellungen auf dem STK500 vorgenommen werden? Oder 
muessen eventuell noch bestimmte Fuses eingestellt werden?

Hoffe ihr koennt mir helfen,
MrWhite

Autor: MrWhite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Nutze avr-gcc in der Version 4.3 und avr-dude in Version 5.8.

Der Controller fuehrt alles, was nichts mit Timern zu tun hat ohne 
Probleme aus (nutze sonst keine Interrupts, bin Anfaenger).

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nenne mal ein paar Dinge, auf die man achten sollte:

Ist der Timer eingeschaltet?
Ist der Timerinterrupt eingeschaltet?
Ist das Bit "general interrupt enable" gesetzt?
Hat die Interrupt-Service-Routine den richtigen Interruptvektor?

Grüße,

Peter

Autor: MrWhite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja,

der Code aus diesem Post:
Beitrag "Re: Problem mit Timer Atmega8515"

sollte ja zumindest ein LED leuchten lassen, dass an PORTB dran ist. Und 
zwar auf dem STK500 jeweils die oberen und unteren 4 abwechselnd.

Funktioniert aber nicht. Meiner bescheidenen Meinung nach, ist der Code 
abre korrekt.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt

> Funktioniert aber nicht.

?  Sind die LEDs alle aus, alle an, ist eine 4er-Gruppe davon an?

Was passiert, wenn Du im Programm folgende Zeile
   PORTB = 0xff;
gegen diese
   PORTB = 0;
tauschst?  Ändert sich an der Anzeige etwas?

Autor: Andreas H. (andreas31)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Diener schrieb:
> Ich nenne mal ein paar Dinge, auf die man achten sollte:

Ergänzung:

Ist das 10-polige Flachbandkabel gesteckt?

Grüße
Andreas

Autor: MrWhite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hc Zimmerer schrieb:
> Was heißt
>
>> Funktioniert aber nicht.
>
> ?  Sind die LEDs alle aus, alle an, ist eine 4er-Gruppe davon an?
>

Das LED0 blinkt, die anderen 7 sind aus.

> Was passiert, wenn Du im Programm folgende Zeile   PORTB = 0xff;
> gegen diese   PORTB = 0;
> tauschst?  Ändert sich an der Anzeige etwas?

Alle LEDs blinken.

Autor: MrWhite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas H. schrieb:
> Ergänzung:
>
> Ist das 10-polige Flachbandkabel gesteckt?

Also ganz bloed bin ich auch nicht!

Autor: MrWhite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal der exakte Compiler-Aufruf:

avr-gcc -g -Os -I/usr/lib/avr/include/ -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-ahlms=program.lst  -Wl,-Map=program.map,--cref 
-L../../lib  program.c   -o program


Habe mit Optimization-Levels hantiert. O1 oder O0 schafft aber auch 
keine Abhilfe. Das Verhalten des Programms kann ich mir einfach nicht 
erklaeren.

Autor: MrWhite (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Neue Erkenntnis.

Wenigstens funktioniert die Hauptschleife, wenn ich den call auf

sei();

auskommentiere!

Kann es sein, dass der Chip permanent im Interrupt gefangen ist? Was 
kann das verursachen.

Anbei der Code.

Bitte helft mir, alleine komme ich vermutlich nie drauf!

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.