Hi Again;
I made this code, however is not working like i wont, only sometimes, can somebody tell me why;
ThanksCode:'********************************************************************* ' INCLUDE's e FUSES ' ==================================================================== DEFINE OSC 4 ' CONFIGURAÇÃO DAS INTERRUPÇÕES ' ==================================================================== ' VARIÁVEIS ' ==================================================================== VAR1 var byte VAR2 var byte I var byte var1=0 var2=0 ' 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: if botao = 1 then 'Button presse pause 80 'debounce for 80ms If Botao = 0 then BotaoClick 'Button Unpressed -> Only Click else if Botao = 1 then 'Button Still pressed for i = 1 to 6 pause 486 If Botao = 0 then Main 'Test if was unpressed in the mean while next If Botao = 1 then BotaoClickHold 'IF Still pressed after 3s -> Click&Hold endif endif GOTO MAIN ' SUB-ROTINAS ' ==================================================================== BotaoClick: if var1 = 0 then high led1 var1 = 1 pause 500 else low led1 var1 = 0 pause 500 endif Goto Main BotaoClickHold: if var2 = 0 then high led2 var2 = 1 pause 500 else low led2 var2 = 0 pause 500 endif Goto Main END
Bookmarks