Hi Ronny!

Ich habe den Mc minimal beschalten
und ohne Quarz laufen. Kann das ein Problem sein?
Möglicherweise ja. Im Auslieferungszustand sind die Fusebits beim Tiny12 so gesetzt, dass er seinen Takt über einen externen Quarz generiert. Wenn das das Problem wäre, dürfte sich das Ding aber auch nicht brennen lassen, weil natürlich auch dazu irgendeine Art von Takt zwingend nötig ist.

Bekommst Du denn das Programm in den Controller??

Viel schlimmer ist aber, dass der Tiny12 gar kein RAM, sondern nur ein EEPROM hat. Das lässt sich ca. 100.000 mal beschreiben, und dann war´s das. Und 100.000 Zyklen sind schnell zusammen - bei ener Signalfrequenz von 50Hz (üblich bei RC-Signalen) in unter 1 Stunde...
Ich würde mir an Deiner Stelle für diese Anwendung unbedingt einen Controller holen, der zumindestens ein paar lausige Bytes RAM-Speicher hat.



Zu dem Code ist mir folgendes aufgefallen: Bei einer Taktfrequenz von 1MHz und einem Prescaler von 1024 zählt der Timer ziemlich genau alle 1ms eins weiter. Handelsübliche RC-Signale spielen sich in der Größenordnung von 0,8 bis 2,2 ms ab - da wird der Timer nicht weit über "2" hinauskommen.

Nochwas kleines (nicht ganz so wichtig): Das "Else" muss an seiner Stelle nicht unbedingt sein - Du kannst einfach schreiben

If Bedingung then
Befehl 1
Befehl 2
...
End if

ABER (und das ist wichtig): Hinter jedes "if" muss ein "end if" oder ein "else" kommen!

Die Zeile

Code:
If Rc > 70 Then Portb.0 = 0
kann so nichts werden!

Entweder
Code:
If Rc > 70 then Portb.0 = 0 ELSE Portb.0 = 1
Oder
Code:
If Rc > 70 then
  Portb.0 = 0
End if
Diese Variante hätte aber den Nachteil, dass Dein Portb.0 nie mehr wieder auf 1 gesetzt wird

Ich hoffe, das sind erstmal in paar Ansätze zum Nachdenken