Hallo,
wie gebe ich einem Ausgangspin ein fetsten Zustand?
Ich habe es mit "Pinb.0 = 0" versucht und bekomme nur eine Fehlermeldung.
Wie muss ich es richtig machen?
Tobias
Druckbare Version
Hallo,
wie gebe ich einem Ausgangspin ein fetsten Zustand?
Ich habe es mit "Pinb.0 = 0" versucht und bekomme nur eine Fehlermeldung.
Wie muss ich es richtig machen?
Tobias
Hi,
Pin wie P in, also Eingang,
Ausgang ist PortB.
Edit:
und nicht vergessen vorher mit
die Richtung festlegenCode:Config PortB.0 = Output
Danke, das hat mir fürs erste schion mal geholfen.
Aber ich habe gleich noch eine Frage.
Ich nutze einen ATMEGA 8.
Wie kann ich die Pins 2 (TXD), 5 (XCk/T0), 6 (T1) und 8 (AIN1) als normalen Ausgang nutzen?
Die programmierung der anderen Port's klappt problemlos.
Kann es durch die Doppeltbelegung kommen?
Der befehl "Portd.5 = 0 " am Pin 2(TXD) bring beispielsweise gar nichts. Eine angeschlossene LED leutet immer!?
Tobias
Das TXD nicht geht könnte sein wenn die Baudrate einstgestellt ist, und damit die UART, damit wird das Pin anders verwendet, kann man evtl. wieder per Hand deaktivieren, wenn man UART nicht braucht, oder einfach mal die Baudrate am Anfang nicht angeben.
Die anderen sollte eigentlich auch so gehen,
AIN1 ist auf Pin 13 nicht auf 8 denn da ist GND
Hast Du die Ports auch immer mit Config auf output gestellt, ansonsten rührt sich da nix ?
o.k. das erste Problem lag wirklich an der Baudrate.
leider habe ich mit den anderen Ports noch immer ein Problem.
ich weiss leider nicht wie man hier den Code richtig einfügt, Sorry
$regfile = "m8def.dat"
'$crystal = 3690000
'$baud = 19200
Const Keys = 8
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinc.0 = Input
Config Pinc.1 = Input
Config Pinc.2 = Input
Config Pinc.3 = Input
Config Pinc.4 = Input
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Dim I As Byte
Dim Key As Byte
Do
For I = 1 To Keys
Key = I
Select Case Key
Case 1 : Debounce Pinb.0 , 0 , Key_o1 , Sub 'o.k.
Case 2 : Debounce Pinb.1 , 0 , Key_o2 , Sub 'o.k. (lag an der Baudrate)
Case 3 : Debounce Pinb.2 , 0 , Key_o3 , Sub 'o.k.
Case 4 : Debounce Pinc.0 , 0 , Key_o4 , Sub 'Schaltet PD.3 und PD.4
Case 5 : Debounce Pinc.1 , 0 , Key_o5 , Sub 'o.k.
Case 6 : Debounce Pinc.2 , 0 , Key_o6 , Sub 'passiert nicht
Case 7 : Debounce Pinc.3 , 0 , Key_o7 , Sub 'o.k.
Case 8 : Debounce Pinc.4 , 0 , Key_o8 , Sub 'passiert nichts
End Select
Next
Loop
Key_o1:
Toggle Portd.0
Return
Key_o2:
Toggle Portd.1
Return
Key_o3:
Toggle Portd.2
Return
Key_o4:
Toggle Portd.3
Return
Key_o5:
Toggle Portd.4
Return
Key_o6:
Toggle Portd.5
Return
Key_o7:
Toggle Portd.6
Return
Key_o8:
Toggle Portd.7
Return
End
erst ein tipp,
Wenn Du alle 8 Bit eines Port auf Ausgang stellst kannst Du auch gleich Config PortD = Output angeben, spart etwas Platz und verweirrt nicht so.
Ansonsten hab ich irgendwie das Gefühl, das Du den falschen AVR hast, denn deine Pinbeschreibungen passen nicht zu denen die sie wirklich haben !
Ist das wirklich ein Mega 8 ?
Die Belegung habe ich aus der Beschreibung von Atmel.
Wo vermutest du den Fehler?
Das passt schon,
aber du hast oben immer andere Pinnummern angegeben, deshalb der anflug von Verwirrtheit !
Sorry,
habe gerade gesehen was du meinst.
Ich bin schinbar in den Pins verrutscht.
Die Beldgung ist natürlich so wie in der Beschreibung des Chips.
Ist das Programm so o.k.?
herzlichen Dank für die Unterstützung.
Der Fehler lag nicht im Programm oder dem Chip sondern war die Folge einer falschen Beldgung auf der Platine. Doofe Lochraster...