PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AT Tiny11 und AT Tiny12



elcomportal
25.03.2007, 14:10
Hi, Leute!

Kleines Problem:
Ich habe mit Bascom AVR ein kleines Testprogramm geschrieben.
Funktioniert auf einem Tiny26. Nun ist kein Tiny11 in der Liste, also habe ich Tiny12 ausgewählt und das ganze compiliert. dann auf einen Tiny11 draufgemacht und... geht nicht.
Weiss jemand Rat?

Hier das Prog:


$regfile = "at12def.dat"
$crystal = 1000000
Led Alias Portb.2
Config Pinb.2 = Output
Do
Set Led
Wait 1
Reset Led
Wait 1
Loop
End

CKSEL2...0 = 100
Die Fuses sind meiner Meinung nach richtig gesetzt.
Ich progge das Ding mit einem Galep 4.

Fuse RSTDISBL ist nicht angekreuzt, hatte es auch schon mit angekreuzt versucht, geht aber auch nicht.

Kann man ein Programm eigendlich auf Tiny12 compilieren und dann auf einen Tiny11 draufmachen?

Mfg
Torsten

Look at http://www.music-download-fox.de !

SIGINT
25.03.2007, 14:25
Ein Tiny11 ist halt kein Tiny12.... da muss nur ein Hardwareregister irgendwo anders liegen und nix funktioniert mehr. Ein Blick in die Datenblätter der Chips dürfte aufschluss darüber geben, ob die Hardwareregister eventuell irgendwo anders liegen, oder die Bits der Register eine andere Bedeutung haben.

Gruß,
SIGINT

Ratber
25.03.2007, 14:52
@elcomportal

Mit welchem Programieradapter überträgst du denn dein Programm in den Tiny11 ?

elcomportal
25.03.2007, 15:28
Hi,
habe ich doch geschrieben, mit dem GALEP 4. Tiny ist gesteckt.
Mfg
Torsten

Ratber
25.03.2007, 16:17
Sorry,hab ich überlesen.

Zu deinem Problem.

Sigint sagte ja schon alles nötige.
Tiny11 und 12 nicht identisch dh. einige Register verschieden bzw. an anderen Orten zu finden.

Dem Tiny11 fehlen gegenüber dem 12er eine ganze Reihe an registern wie zb. die EEPromregister 1C bis 1E.

Bascom braucht wie jeder Compiler eben aus diesem Grund eine Definitonsdatei wie zb. die "at12def.dat" um zu wissen wo welches Register liegt und was überhaupt verfügbar ist.

Da Bascom für den Hard und Sodftwarestack auf Ram angewiesen ist ist er auch aus diesem Grun nicht mit einer Definitionsdatei vertreten.


Der aufmerksame Leser wird sicher einwenden daß das auch auf den Tiny15 zutrifft aber dieser mit einer Definitonsdatei vertreten ist.
Das ist korrekt aber im Gegensatz zum T11 hat der T15 wenigstens noch einen minimalen Hardwarestack (3 Bytes glaub ich) mit dem sich in Grenzen arbeiten läst.
Dennoch ist der Funktionsumfang für den T15 stark begrenzt.


Du mußt also entweder in Assembler programieren oder auf einen anderen Typ umsteigen.

Muß es unbedingt der T11 sein ? (Der Preis ist mir bewußt)

Lenox
25.03.2007, 16:28
Kauf dir da lieber den Ainy13, auch wenn er das doppelte kostet.
Für 60 Cent würde ich kein Assember lernen ;)

SIGINT
25.03.2007, 16:52
Hmmmm,
ich sehe gerade, daß es für den Tiny11 und 12 ein gemeinsames Datenblatt gibt... also könnte die Definitionsdatei vielleicht doch funktionieren.
Aber ich schließe mich meinem Vorschreiber an: Weder Tiny11 noch 12 sind wirklich interesannt.... ich würde direkt auf den ATmega8 wechseln oder wenn du wirklich DIL8 möchtest einen guten ATtiny. (z.B. ATtiny2313 oder ATtiny45) Hier sparst du, wenn du nicht schon eine konkrete Applikation im Sinn hast, eindeutig am falschen Ende. Die kleinen Typen lohnen sich nur, wenn du große Mengen benötigst.

Gruß,
SIGINT

linux_80
25.03.2007, 17:02
Halo,

der Tiny 11 ist fast gleich mit dem Tiny 12, beide haben kein SRAM,
beide haben diesen HardwareStack mit 3 Ebenen. So wie auch beim Tiny15.

Warum der 11er nicht dabei ist, weiss ich aber auch nicht. Evtl. liegts am nicht vorhandenem ISP. Denn der Tiny28 hat den auch nicht und wird nicht unterstützt.

In der Bascom-Hilfe finden sich weitere Compilerdirectiven:
$tiny und $noramclear
Hab jetzt mal angeschaut, was Bascom da draus macht, und festgestellt, das diese beiden Direktiven nix ändern, es war vorher schon kein Stack-Init und RamClear vorhanden.

Was aber nicht gut geht, in der Wait-Routine werden die beiden Register die zum zählen gebraucht werden vorher auf einem Stack gesichert, was bei diesen SRAM-losen Tinys nicht gehen kann ! [-X

Aber ansonsten müsste eigentlich der Code, der für einen Tiny12 compiliert wurde, auch in einem Tiny11 laufen, denn der T12 hat einen IRQ mehr, was aber den T11 nicht stört, das Programm fängt dann einen Platz weiter hinten an.

Läuft das Programm denn auf einem Tiny12, der kann und kennt ja auch kein PUSH und POP ? :-k

Ratber
25.03.2007, 20:17
@SigiNT


ich sehe gerade, daß es für den Tiny11 und 12 ein gemeinsames Datenblatt gibt... also könnte die Definitionsdatei vielleicht doch funktionieren.

Nein,das gemeinsame Datenblatt hat den Hintergrund das der 12er auf den 11er aufbaut und man seinerzeit beide in einem Datenblatt verewigt hat.
Von der Methode ist man dann irgendwann abgekommen weils bei komplexeren Controllern nur Missverständnisse geben würde aber bei den beiden hat man es einfach nie geändert.




der Tiny 11 ist fast gleich mit dem Tiny 12, beide haben kein SRAM,
beide haben diesen HardwareStack mit 3 Ebenen. So wie auch beim Tiny15.

Warum der 11er nicht dabei ist, weiss ich aber auch nicht. Evtl. liegts am nicht vorhandenem ISP. Denn der Tiny28 hat den auch nicht und wird nicht unterstützt.

Ja,das ist vieleicht der Hauptgrund denn HV-Programierung ist ja nicht unbedingt jedermanns Sache.

Ich nutze die Ramlosen Controller nicht mehr.
Das lohnt den Aufwand einfach nicht.

Neben dem Tiny13 nehme ich seit rund 19 Monaten nur noch die Tinyx5.
Das einzige Alteisen was noch rumfliegt ist nen 15L und ein 90S2343.
Wenn sich die Gelegenheit bietet werd ich se vieleicht noch verbauen,verschenken oder einfach in die Tonne. :D

SIGINT
26.03.2007, 16:15
@Ratber:
Uiii, der 90S2343 ist doch ein brauchbares Teil... im Gegensatz zu den Tiny11 und 12.
Die Ramlosen AVRs sind eigentlich nur für spezielle Aufgaben sinnvoll... beim experimentieren sind die nur unpraktisch. Und so ein ATmega8 oder ATtiny2313 sind auch nicht so viel teuerer... dafür kann man nicht bei McDoof essen gehen.

Gruß,
SIGINT

Ratber
26.03.2007, 17:43
Der 2343 ist für mich preis-/Leistungsmässig nicht besonders attraktiv.
Der kostet momentan einzeln so knapp um die 2.-
Ein T25 bietet in allen Belangen mehr und ist dabei 50 Cent günstiger.
Da ist die Entscheidung also wirklich einfach. ;)