Buenas, estoy intentando hacer correr un codigo programado en Pic Basic Pro con la IDE Pic Simulator Ide. La idea es que reconozca dos tipos de interrupciones y mediante estas modifique un contador que va a determinar s va a salir un nivel por RA0 o por RA1. En el simulador me funciona perfectamente pero en la realidad (cuando programo el chip con IC-Prog) no hay caso, me hace cualquier cosa, tengo salidas de nivel por las 2 salidas alternadas lo cual es imposible si no hay entradas de interrupcion.
En fin, ¿tendre algo mal en el manejo de las interrupciones?
Desde ya mil gracias al que pueda opinar sobre el tema!
Saludos
Codigo:
'---Definicion de puertos y registros----------------------------
ANSEL = 0x00 'los pin I/O digitales (no analogicos)
OSCCON = 0x7e 'set intrc To 8mhz, se usara reloj interno a 8Mhz
CMCON = 0x07 'comparador a off
'---------------------Inicio-------------------------------------
TRISA = %00000000
TRISB = %11111111
Dim cont As Byte
cont = 100
INTCON.RBIE = 1
INTCON.INTE = 1
Enable
loop:
If cont > 100 Then
PORTA.0 = 1
WaitMs 200
PORTA.0 = 0
Endif
If cont < 100 Then
PORTA.1 = 1
WaitMs 200
PORTA.1 = 0
Endif
PORTA.2 = 1
WaitMs 100
PORTA.2 = 0
Goto loop
End
On Interrupt
If INTCON.RBIF = 1 Then
cont = cont + 1
INTCON.RBIF = 0
Else
cont = cont - 1
INTCON.INTF = 0
Endif
Resume
En fin, ¿tendre algo mal en el manejo de las interrupciones?
Desde ya mil gracias al que pueda opinar sobre el tema!
Saludos
Codigo:
'---Definicion de puertos y registros----------------------------
ANSEL = 0x00 'los pin I/O digitales (no analogicos)
OSCCON = 0x7e 'set intrc To 8mhz, se usara reloj interno a 8Mhz
CMCON = 0x07 'comparador a off
'---------------------Inicio-------------------------------------
TRISA = %00000000
TRISB = %11111111
Dim cont As Byte
cont = 100
INTCON.RBIE = 1
INTCON.INTE = 1
Enable
loop:
If cont > 100 Then
PORTA.0 = 1
WaitMs 200
PORTA.0 = 0
Endif
If cont < 100 Then
PORTA.1 = 1
WaitMs 200
PORTA.1 = 0
Endif
PORTA.2 = 1
WaitMs 100
PORTA.2 = 0
Goto loop
End
On Interrupt
If INTCON.RBIF = 1 Then
cont = cont + 1
INTCON.RBIF = 0
Else
cont = cont - 1
INTCON.INTF = 0
Endif
Resume