Hallo, Kann Mir jemand helfen rauszufinden ob tiny13A und tiny85 kompatibel sind? Das Gehäuse ist das selbe aber ich bin unsicher bei den Registern und allem drum und dran. Ich habe ein Program auf dem Tiny13 und möchte wissen ob ich später bei Bedarf einfach auf einen mit mehr Speicher upgraden kann. Es würde mich freuen wenn mir jemand helfen könnte. Gruß Jochen
Ich bin dabei, allerdings bin ich blutiger Anfänger und daher unsicher. Kann hier jemand eine Einschätzung abgeben ob die kompatibel sind und wenn ja mit welchem Aufwand?
Hi >Kann hier jemand eine Einschätzung abgeben ob die kompatibel sind und >wenn ja mit welchem Aufwand? Wenn der ATTiny85 mit dem ATTiny13 'verwandt' wäre hieße er ATTiny83. In Wirklichkeit ist er aber ein Nachfolger des ATTiny15. Und der hat schon einige Unterschiede zum ATTiny13. MfG Spess
Grundsätzlich kompatibel, aber nicht einfach Drop-In. Also direkt Hex vom Tiny13 auf Tiny85 würde ich lassen. Der 85 hat mehr Peripherie und daher mehr SFRs und wer weiß ob da die 13er Register noch so passen. Aber einen Quellcode für den 13 kann man fast ohne Änderungen auch für den 85 kompilieren. gruß cyblord
Also müsste ich nur die Register für Timer,ADC und so checken und gegebenenfalls anpassen... Danke für die Hilfe, das beruhigt mich.
Jochen Fresenius schrieb: > Also müsste ich nur die Register für Timer,ADC und so checken und > gegebenenfalls anpassen... Noch nicht mal. Du schreibst die Adressen ja (hoffentlich) nicht direkt rein, sondern über Makros/Defines nur die symbolischen Namen (z.B. PORTB, MUX0, TCCR0A usw.). Die werden dann natürlich automatisch angepasst wenn du deinen Quellcode für den 85er kompilierst.
Ja ich mache das wie hier in den Tutorials beschrieben mit Initialisierungsprozeduren und den Namen. Allerdings setze ich das ganze Bit von TCCR0A, und nicht nur die einzelnen Bits mit Namen...
1 | #define pwminit() do{ TCCR0A=0b00100001; TCCR0B=0b00000001; }while(0) //chan A, phasePWM, clk/1->2.35kHz@1.2MHz
|
Hätte ich besser einfach nur eine 1 geschifted um WGM00 oder COM0B1? Wäre das dann automatisch kompatibel?
Jörg Mauer schrieb: >
1 | > #define pwminit() do{ TCCR0A=0b00100001; TCCR0B=0b00000001; }while(0) |
2 | > //chan A, phasePWM, clk/1->2.35kHz@1.2MHz |
3 | >
|
> > Hätte ich besser einfach nur eine 1 geschifted um WGM00 oder COM0B1? > Wäre das dann automatisch kompatibel? Ja, und das ganze wird überhaupt LESBAR. So macht man das eigentlich. Deine Methode ist umständlich und fehlerträchtig. Und warum schreibst du Timereinstellungen in eine do/while Schleife? Du kannst auch einfach so klammern, wenn du das willst. gruß cyblord
:
Bearbeitet durch User
cyblord ---- schrieb: > Und warum schreibst du Timereinstellungen in eine do/while Schleife? Du > kannst auch einfach so klammern, wenn du das willst. Ich war zwar nicht gefragt ;-) aber ich meine mich zu erinnern, dass das ein Trick ist, der es einem erlaubt, das Makro wie einen Funktionsaufruf ins Programm einzubauen. Also mit Strichpunkt danach usw. Beispiel:
1 | if(a==b) |
2 | pwminit(); |
3 | else
|
4 | do pwminit(); while(true); |
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.