Bisher habe ich mit dem AVR Tiny24/44/84 erfolgreich gearbeitet.
Da ich für mein neues Projekt ein paar mehr I/O-Ports, aber keinen
ADC brauche, erschien mir der AVR Tiny4313 als gute Wahl.
Schön ist auch, dass man den Tiny4313 im Gegesatz zu den Tiny24/44/84
direkt auf der STK500 testen kann:
Normale I/O-Verarbeitung, USART, Timer0 und Timer1 sind erfolgreich
getestet, aber ich kriege die external Interrupts nicht hin!
Nacheinander habe ich Ext-INT1 und den PC-Int2 getestet.
Nach den ersten Compiler-Errors habe ich schon gekuugelt, dass die
tn4313def.inc nicht ganz sauber ist, daher noch ein paar #DEFINEs:
Danke, manchmal haperts ja an den simpelsten Sachen...
Es ist natütlich nicht alles, sondern nur die Initialisierung
der Interrupts gezeigt.
Ich schrieb doch, dass ich ähnliche Sachen mit dem Tiny24
schon gemacht habe.
- Und: Ja, ich habe u.a. auch S. 48 bis 54 des 2313A/4313-
Datenblatts gelesen und angewandt...
Entweder muss ich also was übersehen haben, oder da ist
vielleicht NOCH ein Fehler in der "tn4313def.inc" ???
Der Chip müsste i.O. sein, da ich per Polling-Schleife die
Daten von PinD (Tastenzustände) nach PortB (LEDs) übertragen
konnte.
Kurt schrieb:> Entweder muss ich also was übersehen haben, oder da ist> vielleicht NOCH ein Fehler in der "tn4313def.inc" ???
Die tn4313def.inc ist fehlerfrei. Wenn es Fehler beim Assemblieren gibt,
dann rufst Du Register- oder Variablennamen auf, die es in dem
Controller nicht gibt oder die woanders als in Deinem alten Controller
liegen. Dann funktioniert´s freilich nicht. Nimm Dich mal der
Fehlermeldungen an und versuche nicht, diese durch fiktive Defines zu
umgehen.
Knut Ballhause schrieb:
> Die tn4313def.inc ist fehlerfrei.
Da hängt sich aber jemand weit aus dem Fenster!!!
Woher weißt du das? Funktionierende Code-Beispiele?
Die Frage ist: Warum wird genau die Bitposition PCIE2 im
GIMSK-Register vom Compiler bemängelt, die es nach Datenblatt
beim Tiny4313 geben muss? (Und die es beim tiny24 nicht gibt)
Ich vermute mal: Weil der Compiler in der offensichtlich NICHT
so "fehlerfreien" tn4313def.inc danach gesucht hat...
(Ich finde PCIE2 dort auch nicht.)
Ja du hast Recht, in der tn4313def.inc fehlen tatsächlich die
Bitpositionen. Ich hatte die Sache mit dem Tiny461 verwechselt. Selbst
in der Migration Note T2313 -> T2313A sind die 3 neuen Bits in GIMSK
nicht vermerkt. Jetzt müsste ich nur noch testen, ob die Interrupte
selber funktionieren.
BTW: hast Du die komplette (neue) Vektorentabelle mit den neuen Vektoren
für PCInt0, PCInt1 und PCInt2 in Dein Programm übernommen?
> ...komplette (neue) Vektorentabelle... ?
Da ich öfter mit t24, t25, mega8 arbeite, habe ich mir
jeweils ein "Grundgerüst" mit den spezifischen, immer
wiederkehrenden Code-Teilen aus dem Datenblatt erstellt.
Dazu gehört natürlich auch die jeweilige IRQ-Tabelle ohne
die führenden Zeilennummern...
War auch mein erster Schritt beim t4313.