Programm für tiny22 direkt auf tiny45 lauffähig ?

OP (Firma: delucks) #5778739
Lesenswert?
• ▲
▼
Moin Moin
einfache Frage vlt einfache Antwort.
Ich hab ein Programm für ATtiny 22,kann das direkt mit einem ATtiny45 
benutzt werden,die Pinbelegung scheint gleich zu sein,oder sind 
zusätzliche Schritte nötig.Würde gern sehen ob das machbar ist.
Gruß
Frank
Angehängte Dateien:
Gast #5778773
Lesenswert?
• ▲
▼
Frank L. schrieb:

> Ich hab ein Programm für ATtiny 22

Nein, hast du nicht.

> kann das direkt mit einem ATtiny45
> benutzt werden

Wenn es tatsächlich für den Attiny22 gewesen wäre, dann ja. Der 
Assemblerquelltext würde dann nur einer sehr kleinen Änderung bedürfen, 
um die Sache auch formal korrekt zu machen, ein eventuell bereits 
existierendes Binary/Hexfile könnte man sogar ohne jede Änderung auf 
einen Tiny45 flashen.
#5778863
Lesenswert?
• ▲
▼
folgendes steht in der asm Datei:
;* MCU type: ATiny22
;* Copyright: RES
;* Date: 06-03-2000
;****************************************************************

.include "2343def.inc"

ich kann bei mir bei Atmel Studio 7 kein 2343def.inc finden, das 
müsstest du erstmal ändern (tn45def.inc gibt es z.b. bei mir)
könnte eigentlich für einen AT90S2343 gedacht sein.

es gibt nur 3 Interrupt Vektoren (im Attiny45 sind es 15), aber man 
sollte trotzdem alle definieren (oder leer lassen, also "reti"), aber 
nicht einfach den Quelltext nach dem reset Vektor weiterschreiben. 
einmal ein ".org 0x0000 " davor wäre auch zum lesen ganz schön, dann 
weiß jeder dass jetzt die Interruptvektoren kommen.

Weiterhin ist es relativ schei*e erst die Ports mit A-E zu definieren 
und dann das Schalten der LEDs an diesen Ports über hardgecodete 
Binärzahlen zu machen (ldi baff, 0b111...), das zerstört den ganzen Sinn 
der Definition, wenn du die änderst ändert sich trotzdem nichts an der 
Ausgabe des Programmes (tausche z.b. A und D, die Ausgabe wird so sein 
als hättest du nichts verändert, in der hex Datei sind die SBI DDRB... 
in der Reihenfolge getauscht, sonst aber alles identisch).

die delay funktion finde ich bestenfalls fragwürdig. ohne die originale 
Taktrate zu kennen kannst du sowieso nur raten wie lange der ist. 
Wenigstens ein Kommentar dazu wäre angebracht (mit Formel wie man 
T1/T2/tmp zu setzen hat), so darfst du erstmal Instructions zählen und 
rechnen (viel Spaß deim "Schleifendurchläufe" zählen und mit den 
Conditional branches, die brauchen je nach Ergebnis 1 oder 2 Zyklen). da 
es ja einen Timer gibt und der frei ist könnte man den benutzen, das 
würde die Berechnung/spätere Änderung enorm vereinfachen.

Ansonsten wird eigentlich nichts für einen Tiny/Mega spezifisches 
verwendet (PortB 0-4 müssen existieren), daher sollte das gehen. 6 LED 
im Charlieplexing im festen Takt blinken lassen sollte aber in jeder 
Sprache die für nen Tiny compilierbar ist in kurzer zeit hingerotzt 
sein, vor allem auf dem Niveau von dem Programm da.




tldr:
sollte gehen, änder die "2343def.inc", und nimm es als Beispiel dafür 
wie man in Assembler (oder auch allgemein) NICHT schreiben sollte.
Gast #5779337
Lesenswert?
• ▲
▼
Danke für die Ausführungen.
Ich werde es mal mit geänderter include-Zeile versuchen.Danach gibt's 
Bescheid.Könnte aber etwas Dauern weil die Aussenbeschaltung verlegt 
wurde.
Gruß aus der Nordsee
delucks

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.