Hallo eXc,
ich programiere zwar nicht in C aber:
>PORTA=0x00;
Ist überflüssig, da Du vorher PORTA als Eingang setzt. Dann kannst Du
nichts ausgeben.
>PORTB = 128; // RB7
>tmpA = PORTA;
>tmpA &= 0b.0000.1111; //Pegel an den RA4-7 ignorieren
Was soll das mit 'tmpA', wenn Du im Weiteren gar nicht mit 'tmpA'
arbeitest? Du blendest zwar die Bits 4-7 in 'tmpA' aus. fragst aber
dann PORTA direkt ab???
>if(PORTA.0) {Delay1ms(100); taste = 1; while(PORTA.0){}; break; } //
RA0
>if(PORTA.1) {Delay1ms(100); taste = 4; while(PORTA.0){}; break; } //
RA1
>if(PORTA.2) {Delay1ms(100); taste = 7; while(PORTA.0){}; break; } //
RA2
>if(PORTA.3) {Delay1ms(100); taste =10; while(PORTA.0){}; break; } //
RA3
Das soll bestimmt so sein (beachte while...!):
if(PORTA.0) {Delay1ms(100); taste = 1; while(PORTA.0){}; break; } //
RA0
if(PORTA.1) {Delay1ms(100); taste = 4; while(PORTA.1){}; break; } //
RA1
if(PORTA.2) {Delay1ms(100); taste = 7; while(PORTA.2){}; break; } //
RA2
if(PORTA.3) {Delay1ms(100); taste =10; while(PORTA.3){}; break; } //
RA3
Andreas