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
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.
Um es Mal genauer zu sagen...: Dein Code ist für einen AT90S2343, welcher Pin/Code Kompatibel zum Attiny22 ist. Inwieweit die Änderungen zum AttinyX5 ist... Kann ich aber nicht sagen.
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.
:
Bearbeitet durch User
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.