Hallo liebe MC Freunde, ich werd hier noch wahnsinnig, ich initialisiere einen Timer1 und das Register TCNT1 zählt nicht hoch, wenn ich es in Bascom simuliere... :( Hab ich evtl was vergessen? Das ganze soll eine Phase and Frequency korrekte PWM werden aber dazu muß doch mal das TCNT1 anlaufen damit ich überhaupt was sehe denn ohne das nützt mir die PWM herzlich wenig. Ich hoffe jemand weiß einen Rat! Danke! ______________________________________________________________________ $regfile = "m8def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 Tccr1a = &B11000001 Tccr1b = &B00000001 'prescaler 1 Timsk = &B00000000 Do Loop End
Also bei mir läufts... Hakerl bei Sim Timers vergessen?
Gast
#2362108
Das Codestück ist korrekt. Ich habe die C-Entsprechung simuliert.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Im AVR Studio zählt TCNT1 hoch. Allerdings kann man das nicht ohne weiteres beim Einzelschritt durch den C-Code sehen. Dafür ist der Anweisungsblock innerhalb des while zu klein. Das ist ja auf Assemblerebene nur ein Befehl (RJMP).
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Der Simulator scheint sich aufzuhängen. Aber wenn man ein break macht, sieht man eine Änderung an TCNT1. Man sieht das Hochzählen besser, wenn man im Disassembler-Modus simuliert. Möglicherweise ist das gleiche Problem bei der Simulation in BASCOM vorhanden. Setze einfach mal eine Anweisung in die DO LOOP rein.
Hallo danke für Eure Tipps werd das mal ausprobieren. Es sieht wohl eher so aus, als wenn ich ein Haken vergessen habe. Hab auch schon ein Programm simuliert, wo in der DO....LOOP Schleife ein Prog steht aber TCNT1 zählt auch da nicht hoch. Ich geb auf jedenfall mal ein Feedback ;) Danke....
Ich habs geahnt ein verdammter Hacken, Manfred du hast den Nagel auf den Kopf getroffen. Danke ...jetzt kanns endlich weiter gehen... Wünsche noch eine schöne Woche Gruß Steven Z.
Super Steven, danke auch für deine Rückmeldung
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.