Hallo zusammen, habe das Velleman P8048 Kit und versuche mich seit Tagen in diese Geschichte einzuarbeiten. Ist es möglich, die Ein- und Ausgänge logisch mit und / oder zu verknüpfen??? Wenn ja, wie sieht der Quellcode aus. Wie kann ich Schalter SW1 und SW2 als und abfragen????? BTFSC PORTA,SW2 GOTO ENDE MfG Rene
Hi, Ich weiß jetzt nicht ob deine Taster nach High oder LOw Tasten, evtl. musst du also das BTFSS durch BTFSC ersetzen. Ansonsten ist es aber ganz easy! Wobei es formal natürlich keine ganz echte Logische Verknüfung ist, da es theoretisch ja reichen würde die Taster ganz kurz nacheinander zu Drücken. Da so schnell aber keiner ist kann man es durchaus gelten lassen ;-) (Im richtigen Moment müsste man die Taster dann im Mikrosekundenabstand drücken.)
1 | LOOP |
2 | BTFSS PORTA,SW1 ; Taste 1 Gedrückt |
3 | GOTO LOOP ; Nein, zurück zum Start |
4 | BTFSS PORTA,SW2 ; Taste 2 Gedrückt |
5 | GOTO LOOP ; Nein, zurück zum Start |
6 | GOTO S1ANDS2 : Taste 1 & 2 gedrückt, Sprung zum vorgesehenem Code |
7 | ; (Alternativ einfach mit dem Code weitermachen |
Hier würde das Programm jetzt solange in der LOOP Schleife hängen bis beide Taster gedrückt sind. Statt nach LOOP kannst du auch überall anders hin springen. Statt dem "GOTO S1ANDS2" kannst du auch direkt den CODE dort hin schreiben der dann ausgeführt werden soll... Gruß Carsten
Hallo Rene, hier ist ein Beispiel für eine UND-Verknüpfung:
1 | COMF PORTA, W ; Complement von Port A laden |
2 | ANDLW B'00000011', W ; ausmaskieren der Eingänge |
3 | BTFSC STATUS, Z ; wenn Ergebnis 0 ist wird Z-Flag gesetzt |
4 | BSF PORTB, 0 ; -> RB0 auf 1 |
5 | BTFSS STATUS, Z ; wenn Z-Flag nicht gesetzt ist |
6 | BCF PORTB, 0 ; -> RB0 auf 0 |
Mit der Maske im zweitem Befehl legst Du fest welche Pins miteinander verknüpft werden (hier Port A bit 0 und 1). Entsprechend der Zustände dieser Pins wird der Ausgang (hier Port B bit 0) gesetzt. hier ein Beispiel für eine ODER-Verknüpfung:
1 | MOVF PORTA, W ; Port A laden |
2 | ANDLW B'00001100', W ; ausmaskieren der Eingänge |
3 | BTFSC STATUS, Z ; wenn Ergebnis 0 ist wird Z-Flag gesetzt |
4 | BCF PORTB, 1 ; -> RB1 auf 0 |
5 | BTFSS STATUS, Z ; wenn Z-Flag nicht gesetzt ist |
6 | BSF PORTB, 1 ; -> RB1 auf 1 |
Hier wird der Ausgang (Port B bit 1) auf high gesetzt, wenn Port A bit 2 oder Port A bit 3 (oder beide) auf high sind. Gruß John
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.