Forum: Mikrocontroller und Digitale Elektronik Tiny13 Clock Prescaler Simulator Fehler?


von Stefan (Gast)


Lesenswert?

Hallo,

ich habe ein Problem mit dem Simulator 2 und dem Clock Prescaler beim 
Tiny13.
1
  LDI temp, (1<<CLKPCE)
2
  STO CLKPR, temp
3
  LDI temp, (1<<CLKPS2) | (1<<CLKPS0)
4
  STO CLKPR, temp
Sollte laut Datenblatt Seite 28 ein Prescaler vom 32 ergeben. Im 
Simulator wird aber 64 angezeigt.
Wenn 0x00 in CLKPR geschrieben wird, wird ein Prescaler von 8 im 
Simulator angezeigt, während es 0 sein müsste.

Hat der Simulator hier eine Fehler, oder übersehe ich etwas?

Danke für Hilfe

von S. Landolt (Gast)


Lesenswert?

STO? Noch nie gesehen bei AVRs.

von Stefan (Gast)


Lesenswert?

Sorry, ganz vergessen zu erwähnen, ist ein Macro von mir das passen 
zwischen STS und OUT umschaltet.

von Uwe (de0508)


Lesenswert?

Stefan schrieb:
> Sorry, ganz vergessen zu erwähnen, ist ein Macro von mir das passen
> zwischen STS und OUT umschaltet.

Sollte man dann das Macro auch hinschreiben ?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Stefan schrieb:
> Hat der Simulator hier eine Fehler, oder übersehe ich etwas?

 Fehler im Simulator.
 Probiere mal folgendes:
1
  LDI temp, (1<<CLKPCE)
2
  STO CLKPR, temp
3
  LDI temp, (1<<CLKPS2) | (1<<CLKPS0)
4
  STO CLKPR, temp
5
;****************************
6
  CLR temp
7
  IN  temp, CLKPR
8
;****************************

 Aber das ist normal beim Atmel - AvrStudio ist so etwas von Mist...

von Stefan (Gast)


Lesenswert?

>Probiere mal folgendes:
Im Register steht danach 0x05, also der Wert der Laut Datenblatt einen 
PSK von 32 ergibt. Insofern passt das.

Könnte es eventuell etwas mit der CKDIV8 Fuse zu tun? Im Datenblatt 
steht dazu nur der nichtssagende Satz "The device is shipped with the 
CKDIV8 fuse
programmed.".

von spess53 (Gast)


Lesenswert?

Hi

>Hat der Simulator hier eine Fehler, oder übersehe ich etwas?

Einfach CKDIV8 in den AVR Simulator 2 Options löschen.

MfG Spess

von Stefan (Gast)


Lesenswert?

> Einfach CKDIV8 in den AVR Simulator 2 Options löschen.
Ja, so einfach kann die Lösung sein. Hätte ich auch mal selber 
ausprobieren können...

Also CKDIV8 addiert 0x01 auf CLKPR.

von spess53 (Gast)


Lesenswert?

Hi

>Also CKDIV8 addiert 0x01 auf CLKPR.

Das halte ich für den eigentlichen Bug im 2er Simulator. Eine Zuweisung 
mit out sollte das Register überschreiben und nichts Addieren. 
Allerdings gibt es immer einige Diskrepanzen zum realen Controller. 
Nobody is perfect.

MfG Spess

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.