mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit AVRStudio Simulator und Tiny2313?


Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin ein bißchen mit dem Simulator (AVR Studio 4.15 Build 623) am 
verzweifeln. Und zwar geht es darum ein Input Capture Event zu 
simulieren. Ich weiß nicht ob das noch wichtig ist, aber ich verwende 
einen Tiny2313 mit GCC. Compilieren tut er ohne Fehlermeldung. Dann 
starte ich den Simulator. Alles funktioniert einwandfrei. Der Counter 
scheint auch schön zu zählen. Dann setze ich das Interrupt flag per 
Hand. Jetzt springt der Simulator schön in die Interrupt Routine. Aber 
der Counterstand wird nicht in die ICR Register geschrieben. Diese 
bleiben immer auf null. Was mache ich falsch? Hat dieses Problem schon 
mal jemand gehabt?

Dies ist meine initialisierung vom Timer1:
void init_timer1(void)
{                  
  TCCR1A = 0;
  // start Timer mit Systemtakt, steigende Flanke, noise canceller
  TCCR1B = (1 << ICNC1) + (1 << CS10) + (1 << ICES1);

  TCNT1H = 0;            // Counter auf null setzen
  TCNT1L = 0;            // Counter auf null setzen
  TIMSK |= (1<<ICIE1);   // Capture Interrupt freigeben
}

Gruss
Nils

Autor: Michael K. (mmike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kann sein dass das ein Bug des Simulator ist. Kann mich dunkel 
erinnern, dass bei den Timern manchmal nicht alles 100%ig funktioniert 
hat. Einfach mal in der Buglist nachschauen.

Grüße,
Michael

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

abgesehen davon, daß ich von der ganzen Simuliererei nicht viel halte:

Du solltest wohl eher das zugehörige Capture-Pin setzen, das sorgt für 
das Triggern der Logik und setzt dann das Interruptflag.

Egal wie gut die Simulation auch ist: das auslösende Ereignis kann ja 
nur der Pegelwechsel am Capture-Pin sein.
Zumindest bei meinen Tiny2313 ist nämlich kein Draht zum Setzen des 
Interruptflags rausgeführt. ;-)

Gruß aus Berlin
Michael

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja Ja, manchmal hat man echt ein brett vorm Kopf. Genau das war es. Man 
sollte auch nur das nehmen, was man auch als echte Hardware zur 
Verfügung hat. Nachdem ich den ICP Pin gesetzt habe, hat er auch den 
Timerstand in die ICP Register geschrieben. Dankeschön.

Gruss
Nils

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.