PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tiny2313: Timer0-Register



Sauerbruch
21.01.2011, 21:37
Ich scheitere gerade daran, einen Tiny2313 mittels direktem Zugriff auf die Timer0-Register in einen CTC-Modus zu bringen. Bei anderen Controllern hat das problemlos geklappt - aber bascom (1.11.8.8, Vollversion) versteht die Register irgendwie nicht. Bei diesem Code




$regfile = "2313def.dat"
$crystal = 4096000

Tccr0a = &B01000010
Tccr0b = &B00000010

Ddrb.2 = 1

Ocr0a = 128

Do

Loop


kommt folgende Fehlermeldung:

Error: 46 Line: 4 Assignment error [TCCR0A: 0 &B01000010: 112]
Error: 46 Line: 5 Assignment error [TCCR0B: 0 &B00000010: 112]

Wie kann es denn sein, dass Bascom mit einem einfachen Registerzugriff Probleme hat? Bin für jeden Tip dankbar!

Rone
21.01.2011, 23:19
Hallo!

Kanns nicht nachprüfen, da ich in der Arbeit bin, aber das
müsste doch "attiny2313def.dat" lauten.

MfG
Rone

Searcher
22.01.2011, 08:16
Kanns nicht nachprüfen, da ich in der Arbeit bin, aber das
müsste doch "attiny2313def.dat" lauten.

Stimmt fast. Hab es getestet und es sollte "attiny2313.dat" heißen. Damit compiliert es in der Demo Version 1.11.9.8

Gruß
Searcher

Sauerbruch
22.01.2011, 09:10
So - nach einer langen Nacht bin ich etwas schlauer: Für der 2313 gibt es zwei (!) Def-Dateien: Eine heißt 2313DEF.DAT, und die andere ATTiny2313.DAT. Wenigstens in meiner Bascom-Version...

Und die erstere ist ziemlich lückenhaft: Wenn man sie sich im Editor ansieht, fehlt so einiges an Registern, was beim Kompilieren folglich nicht erkannt wird. Wenn man sie manuell dazuschreibt, wird´s besser - auch wenn es ein etwas mulmiges Gefühl ist, so weit im Tiefen herumzufrickeln...

Mit der zweiten werden wenigstens die Timer0-Register problemlos akzeptiert. Mal sehen, ob ich beim Schreiben auch hier Lücken entdecke...

Scheinbar ist der 2313 so ´ne Art Stiefkind.

Besserwessi
22.01.2011, 13:04
Vom 2313 gibt es 2 Vervsionen. Früher gab es die 90AT2313, damals schon relativ beliebt und gut unterstützt. Als Ersatz kam dann der Tiny2313. Der Tiny 2313 ist weitgehend aufwärtskompatibel , es haben sich bei der Umstellung aber viele der offiziellen Registernahmen geändert.

Die beiden Definitionsfiles sind also für verschiedene Chips, die aber weitgehend binärkompatibel sind. Die Chancen sind also groß dass ein Programm auch mit den anderen Chip funktioniert. Spätestens beim Programmer sollte aber auffallen das die Chip ID nicht stimmt.

Sauerbruch
22.01.2011, 13:09
Okay - das erklärt natürlich so einiges!!

Und ich dachte, dass "2313" schon stimmen wird, als Bascom mir das bei der Eingabe der ersten Zeile angeboten hat. Und mein Programmer (der AVR ISP mkII) kennt nur den Tiny2313, so dass es hier keine Meldung von wegen falschem Chip gab...

Mit der DEF.DAT vom Tiny2313 läuft alles auch einwandfrei!