Hi;
It's Working just like the way i want, just made this change in the Main loop, from the code above;
Code:
' INCLUDE's e FUSES
' ====================================================================
DEFINE OSC 4
' CONFIGURAÇÃO DAS INTERRUPÇÕES
' ====================================================================
' VARIÁVEIS
' ====================================================================
VAR1 var byte
VAR2 var byte
I var byte
counter var byte
' REGISTOS PINOUT 1 = IN; 0 = OUT
' ====================================================================
'76543210
TRISA = %00000001
TRISB = %00000000
TRISC = %10000000
TRISD = %00000000
TRISE = %00000000
ADCON1 = 7
' NOMES PINOUT
' ====================================================================
LED1 VAR PORTC.0
LED2 var PORTD.0
Botao var PORTA.0
' DEFINIÇÕES
' ====================================================================
DEFINE LCD_DREG PORTB ' LCD Data bits on PORTB
DEFINE LCD_DBIT 0 ' PORTB starting address
DEFINE LCD_RSREG PORTB ' LCD RS bit on PORTB
DEFINE LCD_RSBIT 4 ' LCD RS bit address
DEFINE LCD_EREG PORTB ' LCD E bit on PORTB
DEFINE LCD_EBIT 5 ' LCD E bit address
DEFINE LCD_BITS 4 ' LCD in 4-bit mode
DEFINE LCD_LINES 2 ' LCD has 2 rows
DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us
DEFINE LCD_DATAUS 50 ' Set data delay time in us
' INICIO PROGRAMA
' ====================================================================
low led1
low lED2
LCDOUT $fe, 1
lcdout " Teste Botoes "
lcdout $FE,$C0," Por Hugo Oliveira "
Main:
while botao = 1
pause 100
counter = counter + 1
if counter = 30 then BotaoClickHold
Wend
if counter>0 and counter<=5 then BotaoClick
counter=0
GOTO MAIN
' SUB-ROTINAS
' ====================================================================
BotaoClick:
counter = 0
if var1 = 0 then
high led1
var1 = 1
pause 500
else
low led1
var1 = 0
pause 500
endif
Goto Main
BotaoClickHold:
counter = 0
if var2 = 0 then
high led2
var2 = 1
pause 500
else
low led2
var2 = 0
pause 500
endif
Goto Main
END
Thanks Again.
Bookmarks