Forum: Mikrocontroller und Digitale Elektronik Komisches Verhalten von leds/taster


von Rene M. (gozu)


Lesenswert?

Hallo,

ich benutze das STK500 board und einen atmega8 mikrocontroller. Habe 
zuerst ein Programm geschrieben, beidem einfach nur alle LEDS 
eingeschalten werden sollen, allerdings leuchteten die LEDs 6 und 7 
nicht. (Habe PORTB und PORTC benutzt). Als ich dann anschließend PortD 
benutzt habe, ging es wieder. Heißt das, dass ich jetzt nur noch PortD 
benutzen kann? Das kann es ja nicht sein oder?
Danach habe ich noch ein kleines Testprogramm geschrieben, beidem über 
PortB die Taster abgefragt werden und anschließend über PortD auf die 
LEDs ausgegeben werden. Also wenn man einen Taster drückt, soll die 
Lampe leuchten, solange man gedrückt hält. Hier hat es wiederrum nur bei 
den LEDs 0-5 funktioniert, LED 6 leuchtete die ganze Zeit und LED 7 
überhaupt nicht?
Hab mir schon die Userguid vom STK500 durchgelesen, das Datenblatt vom 
atmega8 und auch schon hier im Forum gesucht, allerdings ergebnislos. 
(Ok habe irgendwo den Tipp gefunden, dass PortB nicht funktioniert und 
ich deshalb einen anderen nehmen soll, aber warum funktioniert dann 
PortC auch nicht und was soll das Verhalten bei meinem zweiten 
Programm?)

Wäre wirklich froh, wenn mir jemand da helfen könnte! Danke schonmal.

edit: Habe noch 2 Versionen hierzu:

.include "m8def.inc"

    ldi r16,0x00
    out DDRC, r16  ; C als Eingang

    ldi r16, 0xFF
    out DDRD, r16  ; D als Ausgang

    out PortD, r16  ; Alle Lampen aus

loop:
    in r16, PinC  ; PinC einlesen
    com r16      ;r16 invertieren
    out PortD, r16  ; Lampen ein
    rjmp loop

Der einzige Unterschied von dem Programm zu dem vorigen ist, dass das 
com dabei ist. Wenn ich das mit PortC starte, leuchten wieder LED 0-5 
und 6 und 7 nicht. Starte ich das gleiche Programm aber mit PortB 
leuchten alle LEDs, 0-5 kann man ausschalten, aber 6 und 7 nicht?
Bin wirklich gerade ein bisschen verwirrt

von Markus (Gast)


Lesenswert?

an portb.6 und port.b7 wird der quarz angehängt, hast du deinen uC auf 
externen takt laufen?

portc.6 ist der reset-pin, musst also auf fuse setzen um den verwenden 
zu können

von Klaus (Gast)


Lesenswert?

Schau Dir mal das Datenblatt vom M8 an. Vorallem welche Pins
von welchem Port rausgeführt sind und welche durch das STK
belegt sein könnten.

Dann kommst Du selbst drauf. :)

von Rene M. (gozu)


Lesenswert?

Ok danke schonmal, jetzt weiß ich zumindest schonmal warum es nicht 
funktioniert. Ich muss also die clock selection fuse settings ändern und 
die RSTDISBL settings ändern, aber wo geht das? Wenn ich zu dem 
mikrocontroller connecte steht unter dem Registerpunkt Fuses nichts von 
diesen settings ( benutze das AVR Studio ). Mit den Jumpersettings hat 
das nichts zu tun oder?

von Klaus (Gast)


Lesenswert?

>RSTDISBL

wags Dir! (Finger weg!!!!)

Erst wenn Du  Dir das Kapitel HV-Prog duchgelesen und
verstanden hast kann Du damit anfangen!

von Rene M. (gozu)


Lesenswert?

tut mir leid, wenn ich gerade ein wenig Begriffsstüzig bin, aber was ist 
das HV-Prog Kapitel?
Und meine Frage besteht weiter: Wo kann ich die Fuses ändern ( jetzt 
speziell clock selection fuse )

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Frage 1: Kapitel 3.7.2.1
Frage 2: Anhang

wenn Du bei RSTDISBL eine Haken machst kanns Du ISP nicht mehr nutzen!
das heißt er läst sich auf dem Weg den Du jetzt nutzt nicht mehr
programmieren!!!!

von Rene M. (gozu)


Lesenswert?

Ok soweit hab ichs schonmal verstanden, dann würde ich das ganze 
wahrscheinlich mit high voltage programmieren müssen. (Ok jetzt weiß ich 
auch was hv ist :D ).
Trotzdem weiß ich immer noch nicht, was ich aktivieren bzw. deaktivieren 
muss, damit ich von PortB die Pins 6 und 7 benutzen kann.

von Klaus (Gast)


Lesenswert?

man nun stell Dich nicht so an.

(XTAL1/TOSC1) PB6
(XTAL2/TOSC2) PB7

sind für den Prog. Takt vorbelegt und auf dem STK in ISP-Mode
nicht nutzbar!

von Klaus (Gast)


Lesenswert?

Quatsch!

bitte streichen:

>man nun stell Dich nicht so an.

>(XTAL1/TOSC1) PB6
>(XTAL2/TOSC2) PB7

>sind für den Prog. Takt vorbelegt und auf dem STK in ISP-Mode
>nicht nutzbar!

Der Prog. Takt kommt über PB5(SCK).
Hab jetzt hin und her probiert mit OSCSEL und XTAL1
BP6+7 lässt sich nicht nutzen!

Hab jetzt mal das STK "durchgeklingelt"!

Pin 9 und 10 des M8 sind garnicht mit den Pfostensteckern von
PB6 und PB7 auf dem STK verbunden!

( Design Fehler oder bewußt ? )

jetzt wirds interessant!

Klaus

von Johannes M. (johnny-m)


Lesenswert?

Klaus wrote:
> Pin 9 und 10 des M8 sind garnicht mit den Pfostensteckern von
> PB6 und PB7 auf dem STK verbunden!
>
> ( Design Fehler oder bewußt ? )
Steht sogar im Manual des STK500. Die liegen auf dem PORTE/AUX-Header 
(und zwar, o Wunder, an XTAL1 und 2), weil sie nunmal primär mit 
Sonderfunktionen belegt sind!

von Klaus (Gast)


Lesenswert?

Herzlichen Dank Johannes M.

Klaus

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.