Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Usa una variable...
Dim Var_PortX As Byte
Luego la cargas con el estado del puerto...
Var_PortX = PORTX
Para saber si un botón fue pulsado mientras corre el programa principal, puedes hacer uso de las interrupciones.
Suerte.
Algo así, para más botones (4 P.E) puedes usar la interrupción por cambio de estado en RB4<>RB7gracias, eso es exactamente lo que estoy buscando, pero no se como usar las interrupciones. se usa asi:
led=1
on interrupt
boton==1
resumen
led=1.
jeje espero ir por buen camino. . de ante mano gracias
On_Hardware_Interrupt GoTo MyInt
INTCON = %11010000 ; Configurar la Interrupción solo por RB0
OPTION_REG.6 = 0 ; Activar la interrupción por flanco de bajada en RB0
MainProgram:
; Aquí tu código principal (Esto es un ejemplo)
PORTA.0 = 1
DelayMS 100
PORTA.0 = 0
DelayMS 100
GoTo MainProgram
; Esta parte es el controlador de la interrupción.
Int_Sub_Start
; Aquí se llega al ejecutarse la interrupción.
MyInt:
Context Save ; Guardar el contexto de los registros.
INTCON.1 = 0 ; Limpiar la bandera de interrupción por RB0
; Aquí el código que se ejecutara durante la interrupción del programa principal.
PORTA.1 = 1
DelayMS 1000
PORTA.1 = 0
Context Restore ; Restaurar el contexto de los registros.
End
Device = 16F877A
Declare Xtal = 4
Dim Duty As Byte
Duty = 128
Symbol PIN = PORTC.6 'IN1 L293D
TRISA =%11111111
TRISC =%00000000
PROG1:
High PORTC.5 'Enable L293D
If PORTA.0 = 0 Then Duty = Duty + 32 'Aumenta la Vel.
If PORTA.1 = 0 Then Duty = Duty - 32 'Disminuye la Vel.
DelayMS 5
PWM PIN,Duty,20
GoTo PROG1
OK.GRACIAS me sirvio mucho la ayuda! ahora el incoveniente es que si dentro de la interrupcion utilizo un while o if, se detiene completamente la secuencia del programa, te paso el programa para que lo veas con tus propios ojos, jeje. ah bueno y la finalidad o la idea de lo que quiero hacer es que el semaforo tenga un control remoto IR con el cual yo encienda el sonido dependiendo del color en el cual se encuentre, mas que todo con el estado verde y rojo peatonal.
[B]Disable[/B]
ESTADOAUDITIVO:
[B]Context Save[/B]
[COLOR=SeaGreen]INTCON[/COLOR].1 = 0
[B]If[/B] verdeP = 1 [B]Then[/B]
[B]FreqOut[/B] Buzzer,100,1000
[B]DelayMS[/B] 1000
[B]FreqOut[/B] Buzzer,100,1000
[B]DelayMS[/B] 1000
[B]FreqOut[/B] Buzzer,100,1000
Buzzer = 0
[B] EndIf
Resume
Context Restore
Enable[/B]
hola que tal amigos les cuento que llevo mas de 1 año trabajando con proton IDE y es de lo mejor en la actualidad trabajo con Glcd samsung y toshiba y han respondido muy bien, hay un par de cosas q aun no he logrado con ellas pero estoy seguro que mas adelante lo lograre que rico encontrar este foro y sobretodo encontrar gente de Colombia, bueno amigos en unos días voy ha postear unos ejemplitos para el manejo de las Glcds felices Pascuas.....
Tienes que tener instalado MPLAB®, lo puedes descargar desde aquí --> Microchip MPLAB IDESaludo muchas gracias por su pronta respuesta , ya descargue el programa lo instale pero no me compila he visto algunos tutoriales en la red donde dice que ha que configurar con un compilador pero no me funciona , muy seguramente sabes de lo que estoy hablando porque parece que es un paso para que funcione , si me puedes ayudar me seria de mucha utilidad.espero atento.
device= 16f877a
Config XT_OSC,CP_OFF,CPD_OFF,WDT_OFF,PWRTE_ON,BODEN_OFF,LVP_OFF
xtal 20
Dim VEC As Byte
DIM NUM AS BYTE
ALL_DIGITAL= TRUE
portb_pullups=false
trisc =%00000000
'PORTC=%11111111
VEC=0
num=0
INICIO:
PORTC=%11111111
for vec=0 to 9
lookupl vec,[191,134,219,207,230,237,253,135,255,239], ' o [0,1,2,3,4,5,6,7,8]
portc=num
delayms 1000
next vec
goto inicio
y la segunda simulacion asi:
device= 16f877a
Config XT_OSC,CP_OFF,CPD_OFF,WDT_OFF,PWRTE_ON,BODEN_OFF,LVP_OFF
xtal 20
Dim VEC As Byte
DIM NUM AS BYTE
ALL_DIGITAL= TRUE
portb_pullups=false
trisc =%00000000
'PORTC=%11111111
VEC=0
num=0
INICIO:
for vec=0 to 9
lookupl vec,[191,134,219,207,230,237,253,135,255,239], ' o [0,1,2,3,4,5,6,7,8]
portc=num
delayms 1000
next vec
goto inicio