PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mikrokontroller.net Tutorial: Problem



.:tuxianer:.
27.07.2007, 18:01
hi,
ich habe folgenden aufbau An Port PortA 0-5 6 Dioden und An PortD 20-3 jeweils einen Schalter. Dazu der Code:4



.include "m32def.inc" ; Definitionsdatei einbinden, ggf. durch
; m32def.inc ersetzen


ldi r16, 0xFF
out DDRA, r16 ; Port B durch Ausgabe von 0xFF ins
; Richtungsregister DDRB als Ausgang konfigurieren
ldi r16, 0x00
out DDRD, r16 ; Port D durch Ausgabe von 0x00 ins
; Richtungsregister DDRD als Eingang konfigurieren
loop:
in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen
out PORTA, r16 ; Inhalt von r16 an Port B ausgeben
rjmp loop ; Sprung zu "loop:" -> Endlosschleife



wenn ich schalter 1-3 Drücke also PortD0-2 leuchtet jeweils die zugehörige LED. Bei Schalter 4 An PortD3 jedoch 2 Leds wobei eine etwas länger brennen bleibt, wenn ich ausschalte. Es brennen die 2 leds: portA 3 und 4


ist das normal...ich denke nicht...

izaseba
27.07.2007, 18:11
Da kommt die Standardfrage wieder, wie sind die Taster beschaltet? Schalten sie gegen GND oder VCC, sind externe Pullup/down Widerstände vorhanden ?
Vielleicht reicht es schon die internen einzuschalten


ldi r16,0xff
out PORTD,r16


Gruß Sebastian

.:tuxianer:.
27.07.2007, 18:17
jep das geht das gleiche wollt ich auch gerade probieren...jetzt sind sie ja richtung ground...vorher hatte ich mit externen pullup gegen vcc aber erklären kann ich mir das phänomän immer noch nicht...

so hatte ich es vorher:


http://www.mikrocontroller.net/images/taster.gif[/code]

izaseba
27.07.2007, 18:38
aber erklären kann ich mir das phänomän immer noch nicht...

Es gibt Sachen, die man nicht erklären kann ;-) , aber im ernst, vielleicht hattest Du schlechte Verbindung nach VCC, so daß der Eingang doch in der Luft hing und an floaten war ?

.:tuxianer:.
27.07.2007, 18:42
auch egal...aber wie es scheint hat mein Controller viele solcher magichen Probleme siehe hier:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=32596



naja die internen Pulups sind so und so besser meiner meinung nach...

izaseba
27.07.2007, 18:57
.aber wie es scheint hat mein Controller viele solcher magichen Probleme siehe hier

Hm, meine Ideen:
1. Kein Abblock Kondensator bzw. zu weit vom AVR weg
2. Unsaubere Spannungsversorgung
3. Die Einschwingzeit nach dem resert ist zu kurz

Gruß Sebastian

steveLB
27.07.2007, 19:52
ich hab den selben Code und die selbe Beschaltung auch an einem Mega16 und auf meinem steckbrett passiert das oben beschriebene auch.
Und ich denk auch das die Schalter bzw. die Led zu lange Leitungen bei mir haben, deshajb wolte ich mir dafür lieber ein Test-Board layouten ..
Gruß

.:tuxianer:.
27.07.2007, 20:04
zu 1. Nei ist direkt drann
2. Ist mittel Transistor also ziemlich konstant.
3. Wie kann man das einstellen? ist das das mit den Fusebitss? mwenn ja ich habe das längste...aber ich habe eine idee...die kondensatoren müssen ja nach masse...da habe ich die Masse leitungen vom Steckbrett genommen...welche alle verbunden sind deshalb sind sie seeehr lang...ich denke das wird die Ursache sein...