www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-Simulator: Timer zählt nicht?!


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Und gleich nochwas^^

habe hier ein kleines Programm in C geschrieben, mit dem ich den Timer0 
mit Prescaler: 1024 zählen lasse.
Warum sehe ich im Simulator nicht die einzelnen Bits im TCNT0 springen?
Kann das programm leider nicht an der Hardware testen ob es denn 
funktioniert, da ich - siehe vorheriges Problem von mir - im moment 
nicht die möglichkeit dazu habe.

Kurze Erklärung zum Programm:

PortA als Ausgang
Wenn das Zählregister auf 0xFF steht, soll i um eins erhöht werden. Wenn 
i dann den Wert 2 hat, soll ins r16 (Arbeitsregister) 0xFF geschrieben 
werden.
Das Programm hat so keinen Weiteren Sinn. ich möchte einfach nur Wissen, 
ob denn mein Timer zählt.
Danke!


#include <avr/io.h>

int main (void)
{
int i=0;

DDRA=0xFF;
TCCR0=0b00000101;
for(;;)
{
  if (TCNT0 == 0xFF)
  {
    i++;
    if (i==2)
    {
    asm volatile (ldi r16,0xFF);
    i=0;
    }
}
}
}

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

Bewertung
0 lesenswert
nicht lesenswert
'Springen' ist vielleicht übertrieben.
Du musst 1024 mal auf F10 (Single Step) drücken,
bevor der Timer um 1 hochgeht. Ev. etwas weniger oft,
wenn du ein paar Befehle drinn hast, die 2 Takte benötigen.
Aber ein paar Hundert mal sinds auf jeden Fall.

Setz den Prescaler runter.

Vom Regíster r16 solltest du die Finger lassen.
Die Register stehen unter der Kontrolle des Compilers.
Mit solchen Aktionen kannst du bestenfalls den Programmlauf
komplett zerstören.

Autor: Philipp Sªsse (philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher AVR?

Ich simuliere gerade einen tiny45 (Zähler1 ohne Vorteiler) und der 
Zähler steht im AVR-Studio (in Hardware läuft er).

Ich erinnere mich an Simulationen beim tiny13, wo er ganz brav zählte.

Gab es da nicht einmal eine Übersicht, bei welchem Bauteil welche 
Funktionen simuliert werden? Die finde ich nicht mehr ...

Gruß, Philipp.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVRStudio Help, AVR Tools User Guide, Simulator, Known Issues. Da steht 
alles was nicht geht...

Autor: Marco W. (watz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte das gleiche Problem mit dem AVR Studio Simulator.
Es hat sich rausgestellt das der Timer sehr wohl lief, allerdings 
unendlich langsam. Mit dem Prescaler auf 1 statt 1024 konnte ich dann 
wenigstens den Code testen, auch wenn er so viel zu schnell lief.

Gruß,
Watz

Autor: Philipp Sªsse (philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
johnny.m wrote:
> AVRStudio Help, AVR Tools User Guide, Simulator, Known Issues. Da steht
> alles was nicht geht...

Prima; das war zwar nicht genau, was ich gesucht hatte, aber über ein 
paar Links kam ich dann dorthin: AVRStudio -> Introduction -> Known 
Issues -> Simulator -> Simulator Help -> Device Specific issues.

Nicht gerade übersichtlich ... (-;

Und da steht dann die traurige Wahrheit bei tiny25/45/85: 
»Timer/Counter1 [...] is currently not supported in the AVR Simulator.«

Da werde ich wohl auf die nächste Version warten müssen.

Danke, Johnny!

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Philipp:
Genau das steht auch da, wenn Du dem von mir angegebenen Pfad folgst. 
Bei den "Known Issues" muss man dann nur noch "Notes for ATTiny 
25/45/85" auswählen, die allerdings etwas versteckt ganz unten stehen, 
wo man sie vielleicht nicht direkt vermuten würde (bei alphanumerischer 
Reihenfolge)...

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.