Forum: Mikrocontroller und Digitale Elektronik Tiny85 kompatibel zu tiny13


von Jochen Fresenius (Gast)


Lesenswert?

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

von Max B. (theeye)


Lesenswert?

Hast du in die Datenblätter geschaut?

Gruß Max

von Jochen Fresenius (Gast)


Lesenswert?

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?

von spess53 (Gast)


Lesenswert?

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

von Cyblord -. (cyblord)


Lesenswert?

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

von Jochen Fresenius (Gast)


Lesenswert?

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.

von Cyblord -. (cyblord)


Lesenswert?

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.

von Jochen Fresenius (Gast)


Lesenswert?

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...

von Jörg Mauer (Gast)


Lesenswert?

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?

von Cyblord -. (cyblord)


Lesenswert?

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
von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

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
Noch kein Account? Hier anmelden.