¡Dios santo, qué sensibilidad!
Como muchos de ustedes sabéis ahora estoy enredado con el proyecto
Ponga un teclado PS/2 en su PIC (vida) y para él pieso utilizar el PIN RB0
como señal de clock, haciendo uso de su función de interrupción externa.
Como la RRBOARD1 es realmente una inmensa chapuza he tenido la precaución
de testear la conexión que le he puesto del RB0 para detectar dicha señal.
En RA0 tengo un Led y la RRBOARD1 conectada al PC vía RS232 ...
Lo he hecho con el siguiente código:
Codigo:
...
ext_int_edge(L_TO_H);
flanco_subida=1;
...
#int_EXT
EXT_isr() {
if(flanco_subida){
output_high(PIN_A0);
flanco_subida=0;
ext_int_edge(H_TO_L);
putc("H");
}
else{
output_low(PIN_A0);
flanco_subida=1;
ext_int_edge(L_TO_H);
putc("L");
}
}
Y cuál no ha sido mi sorpresa al ver que por la rs232 recibía constantemente
HLHLHLHLHLHL hasta el infinito, con solo un cable al aire conectado.
Sólo cuando el otro extremo del cable lo ponía a Vcc entonces se quedaba la
RB0/INT en L esperando el flanco de subida y cuando lo tiraba a Vss se quedaba
en H esperando el de bajada ...
Sin conectar a Vcc o a Vss es una autentica antena y está constantemente detectando
flancos de subida y bajada.
¿Es esto realmente así? ¿Habeis pasado por tan traumática experiencia?
¿Será una rosa, será un clavel?