buen dia muchachos espero esten bien, tengo una pequeña duda con el siguiente codigo es algo sencillo pero no encuentro la falla, estoy usando un pic16f874 y el proton ide como compilador, la cuestion en si es que cuando puldo en la entrada RB1 o RB0 se me incrementa un contador que va activar unas salidas en el puerto D segun lo indique el select case, pero este no trabaja, ya lo he corrido en frio en la simulacion del proteus y veo que aun asi indique por ejemplo CONT1 = 2 a la hora de entrar en el CASE 2 no lo hace sino que sigue de largo como si nada..
Código:
Device = 16F874A
Declare XTAL 20 'Cristal de 20 Mhz
TRISB=%1100000
TRISD=0
Dim cont1 As byte
cont1 = 0 'detalle: inicializacion puede ser muy al azar de donde este ubicado el rotor
BUCLE:
DelayMS 200
'CONTROL DE LOS DEDOS
If PORTB.0 = 0 Then
cont1 = cont1 + 1
If PORTB.0 = 0 And cont1 > 4 Then
cont1 = 1
EndIf
Call DEDOS
EndIf
If PORTB.1 = 0 Then
cont1 = cont1 - 1
If PORTB.1 = 0 And cont1 = -1 Then
cont1 = 4
EndIf
Call DEDOS
EndIf
GOTO BUCLE
'Rutina de pausa
pausa:
DelayMS 150
Return
DEDOS:
Select Case cont1
Case 1:
PORTd=%00001010 'energizar bobina A
GoSub pausa 'temporiza
Case 2:
PORTd=%00001001 'energiza bobina C
GoSub pausa 'temporiza
Case 3:
PORTd=%00000101 'energiza bobina B
GoSub pausa 'temporiza
Case 4:
PORTd=%00000110 'energiza bobina D
GoSub pausa 'temporiza
End Select
Return
End
Última edición por un moderador: