Try this out. If it works, it's up to you to figure out what's different...
(and your English is fine, not perfect, but fine...and certainly a lot better than my ___________(<-insert language here).)
DEFINE OSC 4
DEFINE I2C_HOLD 1
Define LCD_DREG PORTB 'LCD definialasa
Define LCD_DBIT 4 'kezdo adatbit
Define LCD_RSREG PORTB 'PORTB.3:RSbit
Define LCD_RSBIT 3
Define LCD_EREG PORTB 'Ebit:PORTB.2
Define LCD_EBIT 2
Define LCD_BITS 4 'LCD bus meret
Define LCD_LINES 2 '2 soros
buttontemp var byte : h var byte : b var byte : c var byte : t var byte : m1 var byte : m2 var byte : m3 var byte : m4 var byte : mb1 var byte : mb2 var byte
mt1 var byte : mt2 var byte : d1 var byte : i2cdev var byte : sda var portc.4 : scl var portc.3 : goto skip_on_int
On interrupt goto delay_5s 'megszakitasi rutin
disable 'megszakitas felfüggesztese
delay_5s: d1=d1+1 : INTCON.2=0
if d1>77 then '5s=5000ms=65ms*77
d1=0 : INTCON=0 : goto kiirhe 'hangero kiirasa
endif 'ha nem,vissza
resume
enable
skip_on_int:
m1=0 : m2=$40 : m3=$80 : m4=$c0 : trisc=$e7 : trisd=$f : trisa=0 : trisb=0 : i2cdev=$50 : h=0 : b=0 : c=31 : t=31 : porta=63 : high portd.4 : adcon0=0
adcon1=7 : cmcon=7 : sspcon=0 : pause 500 : lcdout $fe,1," Udvozollek" : pause 200 : i2cwrite sda,scl,i2cdev,[$1f,$5f,$9f,$df] : pause 100 : option_reg=7
intcon=$a0
main: button PORTC.1,0,0,0,buttontemp,1,novelhe : button PORTC.6,0,0,0,buttontemp,1,csokkenthe : button PortC.5,0,0,0,buttontemp,1,bemnov
button PORTd.3,0,0,0,buttontemp,1,bemcsokk : button PORTC.0,0,0,0,buttontemp,1,bassn : button PORTD.1,0,0,0,buttontemp,1,basscs
button PORTc.7,0,0,0,buttontemp,1,tren : button PORTd.2,0,0,0,buttontemp,1,trecs : Goto main
novelhe: if h<63 THEN h = h + 1
if ( h < 16 ) OR ( h > 31 and h < 48 ) then
portA = h + 16 : goto kiirhe
endif
if ( h > 15 and h < 32 ) OR ( h > 47 and h < 64) then
porta = h - 16 : goto kiirhe
endif
Goto kiirhe
csokkenthe: if h>0 then h= h - 1
if ( h < 16 ) OR ( h > 31 and h < 48 ) then
portA = h + 16 : goto kiirhe
endif
if ( h > 15 and h < 32 ) OR ( h > 47 and h < 64) then
porta = h - 16 : goto kiirhe
endif
Goto kiirhe
bassn: if c<63 THEN c = c + 2
mb1=c & m1 : mb2=c & m4 : i2cwrite sda,scl,,i2cdev,[mb1,mb2] : pause 200 : goto kiirmely
basscs: if c>1 then c= c - 2
mb1=c & m1 : mb2=c & m4 : i2cwrite sda,scl,i2cdev,[mb1,mb2] : pause 200 : goto kiirmely
tren: if t<63 THEN t = t + 2
mt1=t & m2 : mt2=t & m3 : i2cwrite sda,scl,i2cdev,[mt1,mt2] : Pause 200 : goto kiirmely
trecs: if t>1 THEN t = t - 2
mt1=t & m2 : mt2=t & m3 : i2cwrite sda,scl,i2cdev,[mt1,mt2] : Pause 200 : goto kiirmely
kiirhe: lcdout $fe,1," Hangero: ",#h : pause 250 : b=b+1 : lcdout $fe,$c0," Bemenet: ",#b : pause 250 : b=b-1 : goto main
kiirmely: mb1=0 : mb2=0
LOOKUP c,[0,20,0,15,0,9,0,8,0,7,0,6,0,5,0,4,0,4,0,3,0,2,0,2, 0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0, 5,0,6,0,7,0,8,0,9,0,15,0,20,0,20],mb1
LOOKUP c,[0,0,0,0,0,8,0,4,0,3,0,3,0,5,0,6,0,0,0,4,0,8,0,2,0, 6,0,0,0,5,0,0,0,5,0,0,0,6,0,2,0,8,0,4,0,0,0,6,0,5, 0,3,0,3,0,4,0,8,0,0,0,0,0,0],mb2
if c<32 then kiirmep 'pozitiv ertek eseten
if c>32 then kiirmen 'negativ eseten
kiirmen: lcdout $fe,1," Mely: ","-",#mb1,",",#mb2,"dB":goto kiirmag
kiirmep: lcdout $fe,1," Mely: "," ",#mb1,",",#mb2,"dB":goto kiirmag
kiirmag: pause 250 : mb1=0 : mb2=0
LOOKUP t,[0,20,0,15,0,9,0,8,0,7,0,6,0,5,0,4,0,4,0,3,0,2,0,2, 0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0, 5,0,6,0,7,0,8,0,9,0,15,0,20,0,20],mb1
LOOKUP t,[0,0,0,0,0,8,0,4,0,3,0,3,0,5,0,6,0,0,0,4,0,8,0,2,0, 6,0,0,0,5,0,0,0,5,0,0,0,6,0,2,0,8,0,4,0,0,0,6,0,5, 0,3,0,3,0,4,0,8,0,0,0,0,0,0],mb2
if t<32 then kiirmap
if t>32 then kiirman
kiirman: lcdout $fe,$c0," Magas: ","-",#mb1,",",#mb2,"dB" : pause 250 : TMR0=0 : d1=0 : INTCON=%10100000 : goto main
kiirmap: lcdout $fe,$c0," Magas: "," ",#mb1,",",#mb2,"dB" : pause 250 : TMR0=0 : d1=0 : INTCON=%10100000 : goto main
bemnov: if b<3 then b=b+1
goto new1
bemcsokk: if b>0 then b=b-1
goto new1
new1: low portd.7 : low portd.6 : low portd.5 : low portd.4 : high portd.0[bem+4] : goto kirrhe
End
Bookmarks