Tiny85 kompatibel zu tiny13

Gast #3521997
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
Gast #3522031
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
#3522033
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
#3522050
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.
Gast #3522061
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...
Gast #3522093
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?
#3522136
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
(Firma: guloshop.de) #3522521
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);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren