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
Das Codestück ist korrekt. Ich habe die C-Entsprechung simuliert.
1 | #include <avr/io.h> |
2 | |
3 | int main(void) |
4 | {
|
5 | TCCR1A = 0b11000001; // COM1A1 COM1A0 WGM10 |
6 | TCCR1B = 0b00000001; // Prescaler 1 |
7 | TIMSK = 0b00000000; |
8 | while(1) { |
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 | LDI R24,0xC1 ; R24 = 0b11000001 |
2 | OUT 0x2F,R24 ; TCCR1A = R24 |
3 | LDI R24,0x01 ; R24 = 0b00000001 |
4 | OUT 0x2E,R24 ; TCCR1B = R24 |
5 | OUT 0x39,R1 ; TIMSK = (R1 = 0; AVR-GCC spezifisch) |
6 | LOOP: |
7 | RJMP PC-0x0000 ; DO LOOP |
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.
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.