Forum: Mikrocontroller und Digitale Elektronik ATMega16 PortC, Bit0 leuchtet nur so halb


von Michael S. (michael81nrw)


Lesenswert?

Hallo zusammen! Vorweg: Mein Problem ist nicht der JTAG (der ist 
deaktiviert)

Folgendes Problem:

Ich verwende einen ATMega16 auf dem STK500. An PortC habe ich die LEDs 
angeschlossen.

Hier mein noch primitiver Quelltext:

.include  "C:\Programme\Atmel\AVR 
Tools\AvrAssembler2\Appnotes\m16def.inc"


ldi  r16,  low(ramend)
out  SPL,  r16

ldi  r16,  high(ramend)
out  SPH,  r16

;_____Definitionen
ldi  r16,  255          ;
out  DDRC,  r16          ;Port C als Ausgang

;_____Hauptprogramm

ldi  r16,  0          ;
out  PortC,  r16          ;PortC LEDs an

Start:
rjmp  Start



Das Ganze kompiliert und auf den Prozessor übertragen hat zum Ergebnis, 
dass die LEDs an PortC, Bit 1-7 voll leuchten.

Die LED an PortC, Bit 0 leuchtet nur so halb. Woran kann das liegen?

Ich freue mich schon auf eure Antworten!

von H.Joachim S. (crazyhorse)


Lesenswert?


von Michael S. (michael81nrw)


Lesenswert?

Also der JTAG liegt doch laut Datenblatt auch auf ganz anderen Pins, 
daran kanns doch nicht liegen!? Außerdem hab ich den mittels Fusebit 
deaktiviert.

von H.Joachim S. (crazyhorse)


Lesenswert?

und im Ernst, wird an der Hardware liegen.

von Otto (Gast)


Lesenswert?

Stecke das Flachbandkabel um und verwende einen anderen Port im Programm 
- leuchtet die LED immer noch mit halber Helligkeit, ist es die HW

von Michael S. (michael81nrw)


Lesenswert?

Komisch komisch!

Hab die LEDs an PortA angeschlossen und den Quelltext entsprechend 
geändert... Hab auch den Wert mal geändert (auf 100 statt 255).

Umgerechnet wird am Port aber was anderes (77) ausgegeben und 
programmieren kann ich auch nicht mehr solange die LEDs dran sind.

von Otto (Gast)


Lesenswert?

Den Wert für das DDR darfst Du nicht auf 100 ändern - 255 bedeutet: alle 
Pin Ausgang

von Otto (Gast)


Lesenswert?

und: wie hoch hast Du Vtarget eingestellt ?

von Michael S. (michael81nrw)


Lesenswert?

Hallo nochmal!
Vtarget steht auf 5,1V.

Ich habe nicht den Wert von DDR sondern vom Port geändert.

ABER:

Ich habe den Controller getauscht. Leider hatte ich keinen Mega16 mehr 
sondern nur noch einen 8515. Quelltext entsprechend angepasst - Programm 
läuft! Dann scheints wohl am Controller zu liegen.

Da muss ich mir dann nächste Woche wohl mal nen Neuen besorgen!

Vielen Dank für eure Hilfe - ich komm bestimmt nochmal drauf zurück ;-)

Schönen Abend noch, Gruß

Michael

von Otto (Gast)


Lesenswert?

In welchem Sockel steckte der MEGA 16 - im selben wie der 8515?

Das wäre falsch....

von Michael S. (michael81nrw)


Lesenswert?

Aha!

Wer lesen kann ist klar im Vorteil :-) An sowas hatte ich auch schonmal 
gedacht aber bei der ersten Überprüfung hab ich mich wohl verguckt - im 
richtigen Sockel geht dann auch der 8515.

Vielen vielen Dank! Das kehrt den Abend doch noch in einen arbeitsvollen 
:-)

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.