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


von Johannes (Gast)


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;
    }
}
}
}

von Karl H. (kbuchegg)


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.

von Philipp S. (philipp)


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.

von johnny.m (Gast)


Lesenswert?

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

von Marco W. (watz)


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

von Philipp S. (philipp)


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!

von johnny.m (Gast)


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)...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.