Hallo Leute, ich arbeite mit dem PICDEM 2 Plus Demoboard von Microchip und dem PIC18F4550. Ich bin Neuling und möchte ein einfaches Programm schreiben, welches durch die 4 OnBoard LEDs anzeigt welche Zahl an einem BCD-Drehschalter (0-9) eingestellt wurde. Dürfte eigentlich nicht so schwer sein hab ich mir gedacht. Allerdings stimmen die LED Zustände überhaupt nicht mit der eingestellten Zahl überein und ändern sich meist auch gar nicht mehr wenn weiter geschaltet wird. Woran liegt das, was mach ich falsch? Irgendwelche Ideen? Bin dankbar für Hilfe. Gruß Mäx void main (void) { // Alle Pins sind digital ADCON1|=0x0F; // RA1..RA3 und RA5 sind Eingänge TRISAbits.TRISA1=1; TRISAbits.TRISA2=1; TRISAbits.TRISA3=1; TRISAbits.TRISA5=1; // Port B (LEDs) sind Ausgänge TRISB=0x0; PORTB=0x0; while(1) { // Ist die Stelle Acht aktiv leuchtet die LED D5 if(PORTAbits.RA5) { PORTBbits.RB3=1; } else { PORTBbits.RB3=0; } // Ist die Stelle Vier aktiv leuchtet die LED D4 if(PORTAbits.RA3) { PORTBbits.RB2=1; } else { PORTBbits.RB2=0; } // Ist die Stelle Zwei aktiv leuchtet die LED D3 if(PORTAbits.RA2) { PORTBbits.RB1=1; } else { PORTBbits.RB1=0; } // Ist die Stelle Eins aktiv leuchtet die LED D2 if(PORTAbits.RA1) { PORTBbits.RB0=1; } else { PORTBbits.RB0=0; } } // Ende while } // Ende main
keine Ahnung vom PIC - läuft die Abfrage eines Eingangs genauso wie das Ansteuern eines Ausgangs? Ist zwar nicht die Problemlösung, aber das Programm kannst du einfacher schreiben: statt: if(PORTAbits.RA5) { PORTBbits.RB3=1; } else { PORTBbits.RB3=0; } PORTbits.RB3=PORTbits.RA5;
Hallo Peter, die Sache mit den PullUps hab ich grade auch im Datenblatt gefunden und auch gleich umgesetzt mit INTCON2&=0x7F; Aber nur daran lag es leider nicht :-( Mit dem ICD2 hab ich mir im Debug-Mode auch mal die beiden Ports im Watch Window angeschaut und gesehen, dass PortA schon die Werte nicht richtig übernimmt. Ist da noch was zu tun? Die Änderungen von Crazy Horse hab ich so übernommen
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.