10-19-2014, 10:12 PM
Pozdrav svima.Evo prvog pitanja u ovoj oblasti pa ako i nebude odgovora nema veze,bar da probijemo led pa da krene malo prica i o piconjama.Potrebna mi je pomoc u vezi ovog koda.Hteo bih da postavim da se pritiskom na taster upise u eeprom koliko puta je pritisnut taster i pritiskom na drugi taster da mi taj broj ispise u drugom redu displeja.Na pr pritisnim taster-brojac 5 puta i na displeju u prvom redu pise 5 , tad pritisnem drugi taster i taj broj 5 se upise u eeprom pa brojac moze da broji dalje a kad pritisnem treci taster u drugom redu da se pojavi br 5 koji je upisan u eeprom bez obzira do kog broja je brojac stigao u prvom redu displeja.Ovo sto stoji u kodu da se pojavi "kraj" u drugom redu to cu da izbacim.Ako neko ima vremena zamolio bih za pomoc jer neide mi nikako,mozda je problem i do proteusa ali neverujem,mislim da ipak ja gresim.
brojac var byte
provera var byte
taster var bit
TRISA = %11111101
brojac=0
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100
cekaj0:
lcdout $FE, $80, "BROJ ="
gosub proveri_ulaz
if taster = 0 then cekaj0:
cekaj1:
gosub proveri_ulaz
if taster = 1 then cekaj1
brojac=brojac + 1
lcdout $FE, 2
lcdout "BROJ ", #brojac
if brojac = 10 then
porta.1 = 1
LCDOUT $FE, $C0
lcdout " KRAJ"
endif
goto cekaj0
proveri_ulaz:
taster=0
for provera = 0 to 100
if PORTA.0 = 1 then return
pauseus 100
next provera
taster = 1
return
end
brojac var byte
provera var byte
taster var bit
TRISA = %11111101
brojac=0
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100
cekaj0:
lcdout $FE, $80, "BROJ ="
gosub proveri_ulaz
if taster = 0 then cekaj0:
cekaj1:
gosub proveri_ulaz
if taster = 1 then cekaj1
brojac=brojac + 1
lcdout $FE, 2
lcdout "BROJ ", #brojac
if brojac = 10 then
porta.1 = 1
LCDOUT $FE, $C0
lcdout " KRAJ"
endif
goto cekaj0
proveri_ulaz:
taster=0
for provera = 0 to 100
if PORTA.0 = 1 then return
pauseus 100
next provera
taster = 1
return
end