Hallo. sitze hier schon seit paar Stunden an meinem Problem. eigentlich ziehmlich einfach alles, klappt aber komischer weise nicht. folgendes: if-then schleife. wenn am PORTD.0 5Vanliegen, soll die rot leuchten, wenn 0V dann Grün. die Led hat 2 Anschlüsse. wenn man sie vertauscht, wechseln sich die zwei Farben. mein Quellcode: $regfile = "m8def.dat" $crystal = 1000000 Config Pind.0 = Input Config Pinb.1 = Output Config Pinb.2 = Output A: Portb.1 = 1 Portb.2 = 0 B: Portb.1 = 0 Portb.2 = 1 Do If Portd.0 = 1 Then Goto A Else Goto B End If Waitms 50 Loop End klappt nicht. bleibt immer grün. nächster versuch: Do If Portd.0 = 1 Then Portb.1 = 1 Portb.2 = 0 Else Portb.1 = 0 Portb.2 = 1 End If Waitms 50 Loop geht auch nicht. bleibt wieder grün. was kann das sein? habe ich was vergessen? Danke im Voraus
wie steuerst du die Duo-Led an? Du hast doch 2 Anoden (Grün/Rot) und eine gemeinsame Anode.. Du willst bei 5 V (also "High") dass die LED grün leuchtet und bei 0 V (also "low") rot. Habs mir grad mal aufgezeichnet... du brauchst im vor der roten Anode einen NPN transistor.. bei signal HIGH auf basis schaltet der durch und sperrt bei LOW... vor der Anode der grünen LED brauchst du einen PNP, der schaltet bei SIGNAL low auf BASIS durch und sperrt bei HIGH.. auf basisstrom aufpassen... so kommst du mit einem Pin aus (2 transistoren, n paar widerstände) und bei HIGH leuchtet rot und bei LOW grün... du brauchst natürlich intern oder extern einen Pull-Up auf 5 V für diesen Ausgangs-Pin.
Hab da auch noch nicht wirklich Ahnung von, aber: -I can not set a pin high or low -I can not read the input on a pin steht in der Hülfe (dafür isse da!) oder so: For example : DDRB = &B1111_0000 ' upper nibble is output, lower nibble is input SET PORTB.7 'will set the MS bit to +5V RESET PORTB.7 'will set MS bit to 0 V To read a pin : Print PINB.0 'will read LS bit and send it to the RS-232 You may also read from PORTx but it will return the value that was last written to it. To read or write whole bytes use : PORTB = 0 'write 0 to register making all pins low PRINT PINB 'print input on pins MFG
@Markus
SUPER tipp, danke, jetzt geht es!
@möp
>die Led hat 2 Anschlüsse.
also insgesamt 2
jetzt verwirrt den armen kerl doch nicht, er schreibt ja oben das die LED nur 2 anschlüsse hat, also farbwechsel bei polaritätswechsel. probier mal das: $regfile = "m8def.dat" $crystal = 1000000 Config Pind.0 = Input Config Portb.1 = Output 'Portb.1 statt Pinb.1 Config Portb.2 = Output 'dito Do If Pind.0 = 1 Then ' Pind.0 statt Portd.0 Portb.1 = 1 Portb.2 = 0 Else Portb.1 = 0 Portb.2 = 1 End If Waitms 50 Loop
LACH da war ich wohl ein bisschen vorlaut.. ich mach das immer so: 1. pin auf low 2. pull up (enable) 3. direction einstellen (input/output) 4. pin auf gewuenschten logik-pegel.. es is immer besser, erst den pin auf low zu setzen, bevor man die richtung wechselt.. joa und ansonsten halt noch drüber im klaren sein, ob das signal low oder high aktiv wird...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.