Hallo alle zusammen, ich Programmiere einen Pic18f242 zwecks meiner Studienarbeit. Ich habe leider ein Problem und hoffe mir kann jemand helfen. Ich möchte einen Taster einlesen und danach eine LED einschalten (ist erstmal nur zum testen). Mein Code diesbezüglich sieht so aus: #pragma code void main(void) { PORTA = 0x00; TRISA = 0x00; //PortA ist Ausgang TRISB = 0xFF; //PortB ist Eingang PORTC = 0x00; TRISC = 0x00; //PortC ist Ausgang while(1) //Endlosschleife { if ((PORTB && 0x01) == 1){ //wenn Taster gedrückt, dann LED an LATAbits.LATA0 = 1; } } } Ich kann die LED aber leider nicht leuchten lassen. Kann mir jemand einen Tipp geben, was ich falsch mache? (Das der Taster prellt ist erst mal unwichtig.) Danke und Gruß Paul
zusätzlich gäbs auch PORTBbits.RB0 == 1 das is auf dauer wohl besser zugänglich
Das hatte ich auch schon probiert. Funktioniert aber leider auch nicht....
paul wrote:
>
1 | if ((PORTB && 0x01) == 1){ //wenn Taster gedrückt |
Hier prüfst du lediglich, ob
1 | PortB == 0x01 |
wenn das nicht der Fall ist hast du immer ein False, selbst wenn dein Eingang High ist. Besser wäre
1 | PORTBbits.RB0 == 1 |
zu prüfen bzw.
1 | LATBbits.LATB0 == 1 |
Anschließend mit
1 | PORTAbits.RA0 = 1 |
den Ausgang setzen Das sollte funktionieren, ansonsten stimmt was mit den Settings net.
1 | #define Taster1 PORTBbits.RB0 //Taster an RB0
|
2 | #define LED1 PORTAbits.RA0 //LED an Ausgang RA0
|
3 | |
4 | if(Taster1==1) |
5 | {
|
6 | LED1=1; |
7 | }
|
Gruß Sebastian
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.