ADCON1 = 00001111; // Alle ANx - Eingänge (vom AD-Wandler) sind digitale
Eingänge
Tobias Kurz schrieb:
> LATAbits.LATA1 = 0;
> LATAbits.LATA1 = 1;
Was soll den das sein? Sinnlos.
zu deinem Problem:
Tobias Kurz schrieb:
> Ich würde gerne den Wert eines Tasters einlesen
> und daraufhin eine LED einschalten. Beim loslassen des Tasters soll auch
> die LED wieder ausgehen. Also ein ganz simples vorhaben.
1 | #include <p18cxxx.h>
|
2 |
|
3 | #pragma config PWRT = ON
|
4 | #pragma config BOR = OFF
|
5 | #pragma config WDT = OFF
|
6 | #pragma config LVP = OFF
|
7 | #pragma code
|
8 | void main(void)
|
9 | {
|
10 | TRISA = 0b00000000; // Alle Port auf Output
|
11 | TRISEbits.TRISE2 = 1; // Port E2 auf Input
|
12 | ADCON1 = 00001111; // Alle ANx - Eingänge (vom AD-Wandler) sind digitale Eingänge
|
13 | LATA = 0x00; // Zuerst TRIS, dann LAT !
|
14 |
|
15 | while(1)
|
16 | {
|
17 | if(PORTEbits.RE2 == 1)
|
18 | {
|
19 | LATAbits.LATA1 = 0; // invertierte Logik, da Pullupwiderstand Taster
|
20 | }
|
21 | if(PORTEbits.RE2 == 0)
|
22 | {
|
23 | LATAbits.LATA1 = 1;
|
24 | }
|
25 | } //ende while
|
26 | }//ende main
|
LED leuchtet, wenn Taster gedrückt. Configbits bitte überprüfen, läuft
der PIC überhaupts an?
Achso du weißt schon, dass die LED auf dem Olimexboard auf RA0
geschalten ist und der Jumper gesetzt sein muss!
Dann müsste es LATAbits.LATA0 und nicht LATAbits.LATA1 heißten !