Atmega16 PortC p2-5 ohne Funktion

Gast #4530208
Lesenswert?
• ▲
▼
Hallo, bin noch recht neu in der microcontroller Welt und steh vor einem 
Problem. Hatte mir eine LED Brücke gebaut (8 LEDs) und diese an PortC 
0-7 angeschlossen. Dann diese alle mit DDRC = 0xFF; PortC = 0x00; alle 
auf Low Pegel gesetzt jedoch gehen nicht alle LEDs nur PC0 PC1 PC6 und 
PC7. Die andern sind ohne Pegel. Hab die selbe Programmierung mal für 
Port B gemacht dort gehen alle 8. könnt mir jemand sagen was ich falsch 
mache.
#4530241
Lesenswert?
• ▲
▼
Jörg W. schrieb:
> wenn man die beiden
> Befehle im single step durchläuft, verletzt man die erforderlichen
> timing constraints, und JTAG bleibt trotzdem an.

Wie meinst du das? Ich würde das lt. Datenblatt Mega32 S.228 so machen:

The application software must write this bit to the desired value twice 
within four cycles to change its value.
1
ldi    TMP1, (1<<JTD)
2
out    MCUCSR, TMP1
3
out    MCUCSR, TMP1
Gast #4530242
Lesenswert?
• ▲
▼
Jörg W. schrieb:
> Dann schaltet man sich aber auch die Debugfunktionalität ab.

Hab ich nie benötigt.

> Bei der MCUCSR-Variante bleibt sie noch offen: wenn man die beiden
> Befehle im single step durchläuft, verletzt man die erforderlichen
> timing constraints, und JTAG bleibt trotzdem an.

Wenn man sich die Einleitung des TE, bzw. dessen Fragestellung ansieht, 
dann dürfte Deine Antwort die bekannten Böhmischen Dörfer sein.
Moderator Persönliche Seite #4530246
Lesenswert?
• ▲
▼
MWS schrieb:
> Wenn man sich die Einleitung des TE, bzw. dessen Fragestellung ansieht,
> dann dürfte Deine Antwort die bekannten Böhmischen Dörfer sein.

Kann schon sein. ;-)

Ich bin trotzdem kein Fan davon, sich irgendwelche Funktionalität
wegzufusen, wenn man sein Problem auch anderweitig gelöst bekommt.

Aber ja, wenn er gar nicht weiß, was er mit JTAG anfangen könnte
und keinen Programmer hat, der JTAG kann, dann kann man auch ruhigen
Gewissens die Fuse dafür abklemmen.
#4530252
Lesenswert?
• ▲
▼
@ Jörg: Bitte geh doch noch mal auf den single step genauer ein. Ich 
programmiere nur ASM. Da brauche ich genau 2 Zyklen um die Daten ins 
Register zu schreiben.
Das oben gezeigte Beispiel setzt z.B. alle anderen Bits auf 0 und wäre 
ungeeignet. Also würde ich eher ein IN, AND, OUT nutzen um die 
Registerinhalte zu sichern, ist hier aber irrelevant.
Was meinst du mit Single Step?
Dauert es in C länger ein simples Register zu beschreiben?
Moderator Persönliche Seite #4530256
Lesenswert?
• ▲
▼
Oliver H. schrieb:
> Bitte geh doch noch mal auf den single step genauer ein.

Das ist eine Operation des Debuggers, nichts, was man irgendwie
programmieren könnte.

MWS schrieb:
> Diese Funktionalität kann man auch wieder hinfusen.

Nur, wenn man zum Wegfusen kein JTAG benutzt hat. ;-)

Man kann sich via SPI zwar nicht die SPIEN-Fuse wegfusen, aber man
kann sich sehr wohl via JTAG die JTAGEN-Fuse wegfusen (und die SPIEN
ebenfalls …).

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