Atmega PC (DDRC) macht Probleme

Gast #2051676
Lesenswert?

Hallo
Ich habe das Problem, das wenn ich PC (DDRC=0x00) auf eingang schalte, 
das irgendwelche zufällige Werte zurückgegeben werden.
1
DDRC = 0x00;
2
DDRB = =0xFF;
3
eingabe = PINC,
4
if (eingabe != 0){
5
  PORTB = eingabe;
6
}
an PORTB sind 8 LED´s angeschlossen so das man also sehen kann was für 
ein wert in der Variable eingabe ist
versorge ich nun das ganze mit Strom leuchten zufällig led´s
wenn an der Platine gewackeld wird leuchten andere LED´s bzw wenn beim 
Atmega8 einer der C Pins berührt wird

nehme ich aber anstelle von DDRC DDRD dan klapt es so wie es soll es 
scheint an den C Pins zu liegen mit den D Pins ist alles so wie es sein 
soll
Ich habe jetzt auch schon ein 2ten neuen Atmega8 zum testen genommen das 
selbe Problem
was mache ich falsch?

ich habe bei den C Pins sogar schon die verbindung mit den Tastern 
getrennt also es ist nicht mal was an den C Pins angeschlossen
#2051694
Lesenswert?

Stephan M. schrieb:
> Bin noch neu auf den gebiet was ist mit Pull-Ups gemeint?
Ein Eingangsport muss auf einen definierten Zustand gezogen werden, also 
ebtweder ca. 0V oder ca. 5V. Ein Pull-Up Widerstand zieht den Pin auf 
5V, ein Taster muss dann gegen Masse schalten um den Pin auf 0V zu 
bringen.

Ansonsten wirf bitte mal einen Blick ins AVR-Tutorial. Da stehen noch 
ein paar Grundlagen mehr drinne, die Dir ja anscheinend fehlen.
Gast #2051702
Lesenswert?

Ahh jetzt weis ich was du meinst im Tutoral war ein Zeichnung dazu :-)
Bei der Zeichnung war aber keine angabe wie viel Ohm der Wiederstand 
haben
edit: ok im Text steht 10 KOhm

Zu den 0xFF dann wären doch alle Pins als Ausgang geschaltet 0x00 sollen 
laut Tutorial als Eingag schalten?
Gast #2051727
Lesenswert?

Ohh ups da habe ich wohl noch gepennt^^
Ok ich werde mir schnell noch was zu essen besorgen dann werde ich so 
wie im Tutorial 
(http://www.mikrocontroller.net/articles/Datei:Active_High.gif) gezeigt 
die Wiederstände anbringen

das habe ich leider noch nicht :-( habe ich irgendwie verdrängt denke 
mal das das mit der fehler sein wird
Bei PIND funkioniert es warscheinlich weil die LED´s als 
"Ersatzwiederstand" dienen nur bei PINC sind halt keine dranne

ich melde mich dann wenn ich soweit bin schonmal ein großes DANKE :-)
Gast #2051775
Lesenswert?

Ok Es funktioniert :-)
Es waren die fehlenden Wiederstände die die Pins mit GND verbinden.
Die habe ich im Eifer des Gefechts irgendwie verdrängt :-(
Das Thema mit den Pull-Up wiederständen war es :-)
Wenn ich das mit den Externen wiederständen mache mit den bild was ich 
oben Verlinkt habe klapt es so wie es soll
nutze ich die internen Wiederstände ist es Invertiert sehe ich das 
richtig?
da es dann der Schaltung entspricht 
http://www.mikrocontroller.net/articles/Datei:Active_Low.gif?
mit den Externen wiederständen hatte ich 
http://www.mikrocontroller.net/articles/Datei:Active_High.gif
danke danke danke :-) der Tag ist gerettet :-)

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