problema con comparazione di 2 stringhe in c (strcmp )
- Codice: Seleziona tutto
char uart_rd;
int res;
char txt[]= "a";
void main() {
TRISB=0;
UART1_Init(9600);
Delay_ms(100);
PORTB=0x01;
Delay_ms(100);
PORTB=0x00;
while (1) {
if (UART1_Data_Ready()) {
uart_rd = UART1_Read();
res = strcmp( uart_rd,txt);
if (res==0) {
portb=0x01;
}
else {
portb=0x00 ;
}
}
}
}
sto utilizzando un PIC 16f876a a 8 MHz , come compilatore MicroC Pro .
il programma viene compilato ma non si attiva la portb.0 .
ho letto che "res" è zero se sono uguali ma può essere sia maggiore che minore di 0 nel caso siano diverse , io l'ho considerata come fosse booleana e ho utilizzato una condizione if , ma penso che sia li la fregatura .
Io scrivo su mando da hyperterminal un file txt contenente solo "a" (senza le virgolette) tramite lo shield USB per xbee lo trasmetto via onde radio e un altro modulo xbee riceve e trasmette al PIC la stringa.
Lo xbee ricevente riceve il segnale, infatti si accende un led verde per indicare che sta in comunicazione .
