if(c==end_of_transmit){
--USART_nextRec;
if(USART_buffer[USART_nextRec-3]==WhatAmI){
if(USART_buffer[USART_nextRec-2]==WhoAmI){
if(USART_buffer[USART_nextRec-1]==Command_Execute){
Command=0x01;
}
}
}
USART_nextRec = 0;
}
OK como lo explica el señor red pic la intención de esta parte del código es comparar si la trama recibida es igual a la que tenemos definida en el código.
if(USART_buffer[USART_nextRec[0]==WhatAmI){
if(USART_buffer[USART_nextRec[1]==WhoAmI){
if(USART_buffer[USART_nextRec[2]==Command_Execute
Entonses porque hace esto --USART_nextRec ????USART_nextRec tiene el número total de caracteres recibidos, incluyendo el caracter de fin de línea (end_of_transmit). Le restas una unidad para que el valor que quede sea la longitud real sin incluir el fin de línea.
Y esto if(USART_buffer[USART_nextRec-3 ?????Si tienes en cuenta que USART_nextRec está apuntando al final de la línea, entenderás que restándole 3 estás recuperando el 4º carácter contando desde el final.
Disculpa, pero yo sigo viendo el operador ++ detrás de la variable.
Lo correcto es: puesto que el operador ++ está situado delante de la variable
Primero almacena c y luego incrementa el índice
Hola amigos!
Tengo un proyecto para hacer comunicación rs485. Lo que pasa es que estoy trabajando con MPLAB y no tengo claro como modificar el código de CCS para MPLAB.
En los foros no puedo encontrar nada de ejemplos para rs485 escrito para MPLAB.
Este tema le leí, le entiendo pero hay cosas que no se como implementar en MPLAB.
Alguien me puede ayudar por favor!
Muchas gracias!