He ido corriendo a cambiar el codigo!!!
Pensando en lo tonto que soy a veces, pero nada, funciona exactamente igual y me da el mismo problema! El programa queda asi:
#include <16f628a.h>
#fuses INTRC_IO,NOWDT,NOPROTECT,LVP,PUT,NOBROWNOUT,MCLR
#use delay(clock=4000000)
#use standard_io(b)
#define EN1 48
#define EN2 49
#define OA 50
#define OB 51
#define OC 52
#define OD 53
void delay_ss(int n) {
for (;n!=0; n--)
delay_ms( 1000 );
}
void main() {
disable_interrupts(global);
set_tris_b(0b00000000);
output_high(EN1);
output_high(EN2);
do {
output_high(OA);
delay_ss(2);
output_low(OA);
output_high(OB);
delay_ss(2);
output_low(OB);
output_high(OC);
delay_ss(2);
output_low(OC);
output_high(OD);
delay_ss(2);
output_low(OD);
} while (TRUE);
}
Y sigue funcionando igual, con los pines OA,OB,OD correspondientes a RB2,RB3,RB5 que funcionan correctamente y el RB4 correspondiente a OC sin funcionar.
NOTA: HE PUESTO PROBLEMA CON EL RB6 y RESULTA que era RB4!!! Perdón! Es muy temprano todavia y ayer sali de copas! Pero vamos, el orden de los pines no afecta al problema que tengo que es el mismo! Gracias por tu corrección Manofwa!
Espero que sea una tonteria, sino tendre que cambiar el pic...