Hi;
It's Working just like the way i want, just made this change in the Main loop, from the code above;
Thanks Again.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
Bookmarks