TCNT1 zählt in Simulation nicht hoch!

OP #2362068
Lesenswert?
• ▲
▼
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
Gast #2362108
Lesenswert?
• ▲
▼
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.
OP #2362460
Lesenswert?
• ▲
▼
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....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren