Hola Amigos, me llamo Raul, soy recien llegado saludo a todos los integrantes.
Queria saber si me pueden ayudar a resolver mi problema.....estoy ya confundido y no se donde esta el error de mi codigo che es SIMPLE pero no funciona.
en la serie 16F lo hace bien ( 16F876), llevando el mismo a la serie 18F no...!!!
les adjunto il codigo.....
Hace poco que estoy con BASIC PROTON y casi estoy arrepentido de haber comprado el programa, el forun de proton NO ES LO QUE ESPERABA....!!!.....paciencia.......!!
les agradesco anticipadamente por el tiempo perdido con me....
GRACIAS
RAUL.
Queria saber si me pueden ayudar a resolver mi problema.....estoy ya confundido y no se donde esta el error de mi codigo che es SIMPLE pero no funciona.
en la serie 16F lo hace bien ( 16F876), llevando el mismo a la serie 18F no...!!!
les adjunto il codigo.....
Hace poco que estoy con BASIC PROTON y casi estoy arrepentido de haber comprado el programa, el forun de proton NO ES LO QUE ESPERABA....!!!.....paciencia.......!!
les agradesco anticipadamente por el tiempo perdido con me....
GRACIAS
RAUL.
Código:
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2016 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 25/01/2016 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device=18F4550
Xtal = 10
Declare PLL_Req=On
All_Digital = True
''config fuses''
@XT_OSC
@PWRTE_ON
@CPD_OFF
@WDT_OFF
@BODEN_OFF
@LVP_OFF
''''''''''''''''''
TRISA=%00000000
TRISB=%00000011
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
Symbol INTFf = INTCON.1 ' RB0 External Interrupt Flag.
Symbol INTEe = INTCON.4 ' RB0 External Interrupt Enable.
Symbol GIEe = INTCON.7 ' Global Interrupt Enable.
Symbol INTEDGg = INTCON2.6
On_Interrupt GoTo Interrupcion ' Interrupción por externa (es la más rápida).
GIEe = 1 ' Activa interrupciones generales.
INTEe = 1 ' Activa la interrupción externa RB0/INT.
INTEDGg = 1 ' Hace que inicialmente la interrupción se dispare por flanco de subida.
Dim x As Byte ' Variable X ---> contador de posición actual.
x = 0 ' variable puesta a "0"
''Programa Principal ------|
While 1 = 1
PORTC = x ' El contenido de X se visualiza en el Puerto C a través de los LED.
Wend
End
'//////////////////////////////////////////////
Interrupcion: '-------- Decodificador de Encoder --------------
Context Save ' Salva en contexto de los registros antes de operar con la interrupción.
If PORTB.0=1 Then ' Si RB0 se ha puesto a 1 (flanco de subida),
INTEDGg = 0 ' entonces activar la siguiente interrupción por flanco de bajada.
If PORTB.1=1 Then ' Si RB1 está a 1,
Inc x ' entonces incrementar el contador X.
End If
End If
If PORTB.0 = 0 Then ' Si RB0 se ha puesto a 0 (flanco de bajada),
INTEDGg = 1 ' entonces activar la siguiente interrupción por flanco de subida.
If PORTB.1=1 Then ' Si RB1 está 1,
Dec x ' entonces decrementar el contador X.
End If
End If
INTFf = 0 ' Borra el "flag" de la interrupción RB0/INT.
' para poder permitir la siguiente interrupción.
Context Restore ' Restablece el contexto de los registros tal como estaban antes de la interrupción.
''////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Adjuntos
Última edición por un moderador: