Forum: Mikrocontroller und Digitale Elektronik ATtiny44V schaltet bei trennung des AVRISP ab


von Venga A. (venga)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich hoffe das mir jemand helfen kann, denn ich weiß nicht mehr weiter...

Mein Ttiny44V arbeitet nicht mehr ohne den Programmer AVRISP mkII.
Seitdem ich den Prescaler, über mein geschribenes C-Programm, verändert 
habe, schaltet der uC oder eine LED die ich zur kontrolle angeschlossen 
habe, bei trennen des Programmers ab.
Zuvor lief der uC ohne Probleme, außer das er zu langsam taktete. Ich 
wollte eine zweite LED alle 2 sec. über den Timer blinken lassen. 
Blinken tat sie auch, allerdings zu langesam. Daraus schloß ich, dass 
der Prescaler des internen Osc. auf 8 stand und ich deshalb eine Fkt. 
zum ändern des Prescaler schrieb (Nach Vorgabe des Datenblattes).
Nach dem ersten beschreiben des uC mit dem neuen Prescaler gab es kein 
blinken mehr, nur noch die Satus-LED leuchte solange der Programmer 
angeschlossen ist. Programmieren lässt er sich auch (keine Fehlermeldung 
duch AVR Studio).

Schon mal vielen Dank

von Uwe .. (uwegw)


Lesenswert?

Als schnellen Workaround könntest du die Teilung mit der CKDIV8-Fuse 
deaktivieren...

von Hc Z. (mizch)


Lesenswert?

Deine Interruptroutine prüft
1
  if (PORTA == (0<<PA7)){
Das ist nichts Anderes als
1
if (PORTA == 0)

PORTA ist aber nie 0, da im Hauptprogramm steht:
1
PORTA = 0b00000010;
und Bit 1 nie mehr geändert wird.

Da ist übrigens einiges, sagen wir mal, optimierungsfähig. 
Beispielsweise könntest Du in der Initialisierung die Bitnamen aus dem 
Datenblatt verwenden.  Und ein PORT-Bit toggelt man nicht, indem man es 
gegen z.B. 0<<PA7, also 0, vergleicht, sondern einfach durch
1
PORTA ^= 1<<PA7;
Das wären so die auffälligsten Punkte.

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.