mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny2313 Timer0 wird nie ausgelöst


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
also ich wollte eigentlich für den Anfang was ganz einfaches machen und 
naja - klappt ned ... hab einen ATtiny2313 der so an sich läuft, aber 
der Interrupt für den Timer0 wird nie ausgelöst (interner Oszilator, an 
den Fuses hab ich nix gedreht)

mein Code:
#include <avr/io.h>      // ohne wirds nicht gehen
#include <avr/interrupt.h>               // besser ist das
#include <avr/eeprom.h>      // merk es Dir
#include "control.h"

void main (void)
{
DDRB = 0b11100100;
TCCR0A = 0;
TCCR0B = 0b00000101;      // ck/1024
TIMSK = 0b00000010;      // TIMER0 aktiv mit Interrupt
sei();

while(1)
{}

INTERRUPT (TIMER0_OVF_vect)       // ISR Timer0
{
PORTB = PORTB | 0b01100000;
}

aber die LED an PORTB gehen nie an, weil wohl kein Interrupt, aber wieso 
... beim AT90s2313 hats doch "so ähnlich" funktioniert. Hab ich was 
vergessen oder übersehen? Wahrscheinlich schon, WEIL ... mein 
Testprogramm vom AT90s2313 funktioniert auf meinem anderen Board auf dem 
Attiny2313 super ... wenn ich meinen alten Code in das Programm stecke 
und als At90s compailiere tuts allerdings auch nicht obwohl der 
Controller in den anderen Programmen machen was er soll???

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Code kann so nicht funktionieren. Kommt da keine Fehlermeldung?

Probier mal


INTERRUPT (TIMER0_OVF_vect)       // ISR Timer0
{
PORTB = PORTB | 0b01100000;
}

void main (void)
{
DDRB = 0b11100100;
TCCR0A = 0;
TCCR0B = 0b00000101;      // ck/1024
TIMSK = 0b00000010;      // TIMER0 aktiv mit Interrupt
sei();

while(1)
{}

}

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
meinst Du die vergessene Klammer? Die fehlt nur hier hab ich beim 
formatieren verschluckt

meine Fehlermeldungen:

../ComingHome.c:32: warning: return type of 'main' is not 'int'
../ComingHome.c: In function 'main':
../ComingHome.c:33: warning: unused variable 'tempA'
../ComingHome.c: At top level:
../ComingHome.c:103: warning: return type defaults to 'int'
../ComingHome.c: In function 'INTERRUPT':
../ComingHome.c:103: warning: type of '__vector_6' defaults to 'int'
../ComingHome.c:106: warning: control reaches end of non-void function

und wenn ich den Interrupt nach oben verschiebe passiert au nix :(

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist einer der Fehler, an denen man sich 'nen Wolf sucht :-)
INTERRUPT (TIMER0_OVF_vect)
  kennt der Compiler nicht.
(sieht man aber eigentlich an den Warnungen)

Probiers mal mit
ISR (TIMER0_OVF_vect)

Oliver

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daaaaaaaaaaaanke ... seit wann heißt das so oder offenbart sich da 
meinerseits eine Bildungslücke?

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.