port und pin problem du kannst nicht aus einem port lesen nur von pin also dort wo die eingabe machst schreibst du pin.
edit
also statt Config Portd.2 = Input
Config Pind.2 = Input
Hallo
Meine ersten Schritte in Bascom sind eher Fehltritte.
Hoffe jemand kann mir sagen wo das der Fehler liegt.
Wen ich den Taster drücke soll eine LED Leuchten. Doch leider leuchtet die LED immer.
Danke Für die HilfeCode:$regfile = "m8def.dat" $crystal = 3686400 Config Portd.2 = Input 'D.2 ist Eingang Portd.2 = 1 'D.2 Inter Pull an Config Portb.5 = Output 'B.5 ist Ausgang Led Alias Portb.5 'B.5 heisst LED Do 'Start Hauptprogramm If Portd.2 = 1 Then Led = 1 Else Led = 0 End If Loop End
port und pin problem du kannst nicht aus einem port lesen nur von pin also dort wo die eingabe machst schreibst du pin.
edit
also statt Config Portd.2 = Input
Config Pind.2 = Input
Merci fürd schelli Hilf
Aber Leider funktioniert es immer noch nicht. Habe es Versucht mit PORT auf PIN umzuschreiben.
Kenntest du mir rasch die Zeile ändern di Relevant ist?
So funktioniert es leider nichtCode:$regfile = "m8def.dat" $crystal = 3686400 Config Pind.2 = Input 'D.2 ist Eingang Pind.2 = 1 'D.2 Inter Pull an Config Portb.5 = Output 'B.5 ist Ausgang Led Alias Portb.5 'B.5 heisst LED Do 'Start Hauptprogramm If Pind.2 = 1 Then Portb.5 = 1 Else Portb.5 = 0 End If Loop End
jetzt müsste es gehenCode:$regfile = "m8def.dat" $crystal = 3686400 Config Pind.2 = Input 'D.2 ist Eingang Pind.2 = 1 'D.2 Inter Pull an Config Portb.5 = Output 'B.5 ist Ausgang Led Alias Portb.5 'B.5 heisst LED Do 'Start Hauptprogramm If Pind.2 = 0 Then Led = 1 Else Led = 0 End If Loop End
leider nein [-(
hast du mal die eletronische seite getestet?
Do
Portb.5=1
waitms 500
Portb.5=0
waitms 500
Loop
dann müsst die led blinken
LED Blinkt im Halbsekunden Takt. Könnte es sein, dass der Taster nicht in Ordnung ist?
kann sein schaltest du nach gnd ? oder vcc ? du musst nach gnd schalten. wenn du den schalterverdächtigst mit kabel testen bzw kontrolieren ob der taster am richtigen pin ist
Die LED Leuchtet Andauernd. Wenn ich jedoch nun auf den Taster drücke Leuchtet sie minim heller (fast nicht erkennbar).
So wie ich das Layout entziffere ist der Schalter mit GND verbunden.
EDIT:
Ist an der Schaltung etwas nicht IO?
'nabend Bongo,
Die Sache mit PORT und PIN sind nur am Anfang etwas verwirrend. Wenn so ein Mikrocontroller "aufwacht", sind erstmal alle (!) I/O-Pins als Eingänge konfiguriert. Einfach deshalb, weil ein als Eingang geschalteter, d.h. hochohmiger Pin an umliegenden Bauteilen keinen Schaden anrichten kann. Eine spezielle Konfiguration als Eingang brauchst Du also schonmal nicht.
Um einen Pin zu konfigurieren, kann man natürlich den befehl "Config" verwenden. Die Bascom-Hilfe (genial gut!!!) schreibt hierzu folgendes:
Syntax
CONFIG PORTx = state
CONFIG PINx.y = state
You can also set a single port pin with the CONFIG PIN = state, statement.
Heißt also im Klartext, dass Du Config PINX.Y nehmen musst, um einen einzelnen Anschluss zu definieren. Mit Config PORTX erreichst Du alle Anschlüsse des Ports (z.B. B.0 bis B.7).
Weil ich das etwas verwirrend finde, verwende ich persönlich die "DDR"-Register (Data Direction Register). Mit dem simplen Befehl DDRB.5 = 1 wird B.5 zum Ausgang gemacht, DDRD = &B00100000 macht das gleiche.
Wenn der Port als Ausgang geschaltet ist, ist eigentlich nur das PORT-Register wichtig. Nach dem Schema PORTB.5 = 1 oder PORTB.5 = 0.
Ist der Pin ein Eingang, sind 2 Register wichtig: Das PIN-Register gibt die Information wieder, die an dem Anschluss anliegt. Eingänge also immer mit PINX.Y abfragen (!!). Wird am Anfang oft falsch gemacht!!
Mit dem PORT-Register schaltest Du den PullUp-Widerstand ein, wenn der Anschluss als Eingang konfiguriert ist. Also auch wichtig!!
Also für Deine Anwendung ganz konkret:
Etwas klarer jetzt?Code:PORTD.2 = 1 'PullUp für D.2, Eingang ist er schon DDRB.5 = 1 'B.5 als Ausgang Do If PIND.2 = 1 then PORTB.5 = 1 else PORTB.5=0 Loop End
Lesezeichen