avr-gcc ,hazudik az if:-)
Auth Gábor
auth.gabor at javaforum.hu
Fri Sep 8 08:47:22 CEST 2006
Halihó!
Pal Lukacs ezt írta:
> Az lcd_delay(1) 1 ms -t kesleltet,igy mar kiertekelodik az if
> rendesen. Lehet hogy kevesebb kesleltetes is elegendo lenne?
Szinte biztos, hogy prell okozza. Próbáld meg megszámolni végtelen
ciklusban a gomb lenyomását és írasd ki valahova (LCD, LED sor, stb).
Meg fogsz lepődni, a sima határozottan billenő mikrokapcsoló az ATmega
belső frekvenciájával 5-6-ot prellez, ha 16MHz-en megy az MCU, akkor ez
néha felmegy 20-25-re is. Érdemes erre külön TIMER-t indítani, amely
egy tömbbe beolvassa és prellmentesíti az összes bemenetet. És a
programodban már ebből a tömbből kezeled az értékeket, de itt is úgy,
hogy egy _külön_ változóba kiveszed a tömbből és azt olvasgatod, ha
többször is kell, mert aljas és galád módon az if kiértékelése közben
is befuthat a TIMER megszakítás, és akkor csalhat az if.
MCU esetén kicsit bele kell látni a háttérbe is, mert sok hibát
okozhatnak ezek... ha szoftveresen végképp nem tudom megoldani, akkor
én ilyenkor átrohanok az infó tanáriból az elektró tanárbia, és ott az
elektrós kollégák konzíliumot tartanak a probléma felett... néha ők sem
tudnak megoldást... :)
--
http://www.javaforum.hu -=- http://www.enaplo.hu
Auth Gábor -=- FreeBSD 5.4 -=- http://bsd.lap.hu
http://www.javaforum.hu/web/authgabor/
More information about the Elektro
mailing list