Amigos del foro, estas son las (espero, últimas) dudas que tenemos con mis compañeros de estudio para terminar el codigo en PBP que estamos realizando. Aquí vamos:
serin2 PORTB.1,188,10000,recibiendo,[wait(1), bin8 dato1, bin8 dato2]
checksum = (dato1 + dato2) & %11111111
serout2 PORTB.2,188,[checksum]
En la linea 1: Lo primero que quiero terminar de entender es el parametro WAIT(1). En ese punto, ¿el WAIT va a esperar un “1” decimal, o va a esperar la representación ASCII del 1 decimal (que es una carita, ALT + 1)? Supongo lo primero pero no estoy seguro.
En la misma linea… desde la PC voy a enviar 2 caracteres ASCII después de ese “1” que mencioné. Y necesito pasar esos dos caracteres que recibo en el PIC y guardo en dos variables de tipo byte (dato1 y dato2) a formatos binarios. Por ejemplo, si recibiera el carácter “U” (mayuscula) necesito trabajar luego con la representación binaria de ese valor en el codigo del PIC. En este caso, “U” sería el 85 decimal, es decir, 1010101 en binario. La pregunta es, al anteponer bin8 al nombre de la variable, ¿estoy diciendole al compilador que me guarde las dos variables como representaciones binarias? ¿Si no es así, como lo logro?
En la línea 2: Teniendo en cuenta la pregunta anterior, ¿la variable checksum obtendrá como valor un numero binario?
En la línea 3: Necesito enviar la variable checksum como la representación ASCII del valor binario obtenido anteriormente. ¿Está bien como lo coloqué yo?
Por ultimo, tengo esta linea:
bt6 = checksum & %00000001
bt6 la definí de tipo bit. Checksum es de tipo byte, y haciendo un AND con una calculadora en binario obtengo un único valor, que puede ser un 0 o un 1… ¿lo almacena bien como numero binario en bt6? Luego utilizo este valor para una decisón. Así:
if (bt6 = %0) then …
Estas son las dudas que me quedan para completar el codigo que necesito compilar… si bien compila bien, no se si tengo errores lógicos. Afectuosos saludos para todos.