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; } } } }
'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.
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.
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
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!
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.