TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Chrisbaf en 21 de Mayo de 2009, 19:58:06
-
He hecho un pequeño programa el cual cuenta de 0 a 99 el programa va bien hasta que pasa por tercera vez por 55 regresa a 00 el programa puede ser utilizado como un turnero , alguna sugerencia :(
el codigo es el siguiente
include "bs2defs.bas"
@ DEVICE INTRC_OSC_NOCLKOUT' oscilador 4
@ DEVICE WDT_OFF '@ DEVICE BOD_Off ' Brown-Out Detect conectado
@ DEVICE MCLR_Off ' Master Clear Externo desconectado
@ DEVICE LVP_Off ' Low-Voltage Programming desconectado
@ DEVICE CPD_OFF ' Data Memory Code Protect desconectado
@ DEVICE PROTECT_Off ' Program Code Protection conectado
x var byte
y var byte
cmcon = 7
porta = 0
portb = 0
trisb = 0
trisa =%0010010
symbol timer = porta.1
symbol tr1 = porta.0
symbol tr2 = porta.2
cont var byte
patron var BYTE
cont = 0
b1 = 0
b2 = 0
tr1 = 0
tr2 = 0
INTCON = %00100000
OPTION_REG = %00000111
TMR0 = 217
INTCON = %10100000
ON INTERRUpt goto isr
b2 = 0
control:
if timer = 1 then incre
goto control
incre
b2 = b2 + 1
pause 50
goto control
DISABLE
ISR:
TMR0 = 217
b1 = b2 dig 1
LOOKUP b1, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F], patron
portb = patron
tr1= 0
tr2= 1
pause 5
b1 = b2 dig 0
LOOKUP b1, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F], Patron
portb = patron
tr2 = 0
tr1 = 1
pause 3
resume
enable
end
alguna sugerencia
-
bueno ya encontre el problema estaba en el ultimo dato de la tabla y otra que no estaba limitando el conteo ademas use el comamdo button aqui se los dejo
el programa corregido y donde utilizo interrupcion por tmr0 para que entre todos sigamos aprendiendo. seguro les sera de utilidad ya que puede ser utilizado como un contador de eventos..Saludos 8)include "bs2defs.bas"
@ DEVICE INTRC_OSC_NOCLKOUT' oscilador 4
@ DEVICE WDT_OFF ' Watchdog Timer desconectado
@ DEVICE PWRT_on ' Power-On Timer conectado
@ DEVICE BOD_Off ' Brown-Out Detect desconectado
@ DEVICE MCLR_Off ' Master Clear Externo desconectado
@ DEVICE LVP_Off ' Low-Voltage Programming desconectado
@ DEVICE CPD_OFF ' Data Memory Code Protect desconectado
@ DEVICE PROTECT_Off ' Program Code Protection desconectado
x var byte
y var byte
cmcon = 7
porta = 0
portb = 0
trisb = 0
trisa =%0010010
symbol timer = porta.1
symbol tr1 = porta.0
symbol tr2 = porta.2
cont var byte
patron var BYTE
cont = 0
b1 = 0
b2 = 0
tr1 = 0
tr2 = 0
INTCON = %00100000
OPTION_REG = %00000111
TMR0 = 217
INTCON = %10100000
ON INTERRUpt goto isr
reset:
b2 = 0
control:
button timer ,1,255,0,b3,1,incre
goto control
incre
b2 = b2 + 1
pause 50
if b2 >= 100 then reset
goto control
DISABLE
ISR:
TMR0 = 217
b1 = b2 dig 1
LOOKUP b1, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $67], patron
portb = patron
tr1= 0
tr2= 1
pause 5
b1 = b2 dig 0
LOOKUP b1, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $67], Patron
portb = patron
tr2 = 0
tr1 = 1
pause 3
resume
enable
end