Impulzusgenerátor +LCD
Impulzusgenerátor +LCD
Kedves fórumozók!
Most kezdek ismerkedni az AVR-el és szeretném a segítségeteket kérni
az alábbi project megírásában.
Billentyűzeten megadom az impulzus darabszámát és az LCD kijelzi majd
egy "enter" gomb megnyomása után végrehajtja.
Tiny2313-ba gondolkozom 4x4-es billmátrixal.
Ha tudtok segíteni azt nagyon megköszönöm!
Tibi
Most kezdek ismerkedni az AVR-el és szeretném a segítségeteket kérni
az alábbi project megírásában.
Billentyűzeten megadom az impulzus darabszámát és az LCD kijelzi majd
egy "enter" gomb megnyomása után végrehajtja.
Tiny2313-ba gondolkozom 4x4-es billmátrixal.
Ha tudtok segíteni azt nagyon megköszönöm!
Tibi
-
Hooligan01
http://hu.wikipedia.org/wiki/Frekvencia
A frekvencia szó szerint egy „ismétlődés gyakoriságát” jelenti, azaz hogy egy esemény hányszor ismétlődik meg egységnyi idő alatt.
Tehát az impulzusok közötti idő állítgatásával lövöd be a kívánt frekvenciát.
De ha kifejtenéd bővebben mi az amire gondoltál, nem a wikiből idéznék....
A frekvencia szó szerint egy „ismétlődés gyakoriságát” jelenti, azaz hogy egy esemény hányszor ismétlődik meg egységnyi idő alatt.
Tehát az impulzusok közötti idő állítgatásával lövöd be a kívánt frekvenciát.
De ha kifejtenéd bővebben mi az amire gondoltál, nem a wikiből idéznék....
oksa értem a célzást!
Adott egy encoder ,1 bcd peremkerekes kapcsoló .
Peremkerekesen beállítod a freki szorzóját (0.1-1-10-100-1000)
Encoderrel beállítod a kimenő frekit 0.1-1....... lépésekkel.
ez a része már tesztelve vagyon , de a timers résszel nem vagyok tisztába !
Arra gondolok hogy tmer1 fut 1 es osztással és valahogy figyelem hol jár - ha elérte értéket akkor toggle .
Nem tudom hogy is van az hogy ha túlcsordul a timer megszakítást generál ??
Hová mit?
Vagy ezt meg lehet adni ?
Adott egy encoder ,1 bcd peremkerekes kapcsoló .
Peremkerekesen beállítod a freki szorzóját (0.1-1-10-100-1000)
Encoderrel beállítod a kimenő frekit 0.1-1....... lépésekkel.
ez a része már tesztelve vagyon , de a timers résszel nem vagyok tisztába !
Arra gondolok hogy tmer1 fut 1 es osztással és valahogy figyelem hol jár - ha elérte értéket akkor toggle .
Nem tudom hogy is van az hogy ha túlcsordul a timer megszakítást generál ??
Hová mit?
Vagy ezt meg lehet adni ?
-
Hooligan01
Azt hogy hol jár, nem igazán tudod figyelni, nem is az a megfelelő módszer arra amit szeretnél.
A kézenfekvő megoldás ha mindig feltöltöd x kívánt értékkel, ezáltal finoman szabályozhatod mikor csorduljon túl. Igy lehet pontos frekvenciát előállítani.
faék program:
Config Timer1 = Timer , Prescale = 1
on Timer1 timer_int ' timer_int az interrupt cimke, túlcsorduláskor oda ugrik a program
dim ertek as word
do
...
ertek = 60000 '60000-től fog számolni a timer
...
loop
timer_int:
Toggle Portb.0 vagy ami jólesik
...
timer1 = ertek
return
A kézenfekvő megoldás ha mindig feltöltöd x kívánt értékkel, ezáltal finoman szabályozhatod mikor csorduljon túl. Igy lehet pontos frekvenciát előállítani.
faék program:
Config Timer1 = Timer , Prescale = 1
on Timer1 timer_int ' timer_int az interrupt cimke, túlcsorduláskor oda ugrik a program
dim ertek as word
do
...
ertek = 60000 '60000-től fog számolni a timer
...
loop
timer_int:
Toggle Portb.0 vagy ami jólesik
...
timer1 = ertek
return
-
Hooligan01
-
Hooligan01
-
Hooligan01
ezt nem hiszem el.....
2 byte bináris (16 bit) : 1111 1111 1111 1111 = decimális 65535
Minden tiszteletem a tiéd, de miért írsz ide ha az ALAPVETŐ matematikai fogalmakról (mint pl. számrendszerek) még elképzelésed sincsen
1 byte bináris (8 bit) : 1111 1111 = decimális 255Még mindig nem tudom Hogy is számoltok.
2 byte bináris (16 bit) : 1111 1111 1111 1111 = decimális 65535
Minden tiszteletem a tiéd, de miért írsz ide ha az ALAPVETŐ matematikai fogalmakról (mint pl. számrendszerek) még elképzelésed sincsen
Veled nem fordult még elő hogy este fáradtan mellégépeltél valamit ?
Aztán azt mondják neked nem jó???
Egyébként a számolást az utasítás végrehajtási időkre értettem!
65 helyett nem tudom miért 16 ot írtam .
Bocsánatot kérek a mindenkitől !!!
de én is csak ember vagyok.
De egyébként tisztában vagyok vele , régebben programozási versenyt is nyertem (hi)
C64 -el .
Rég volt , nagyon , aztán semmi programozás .
Újra kell tanulnom , más a program utsításkészlet is meg eltelt 18 év is.
Köszi a helyreigazítást .
Aztán azt mondják neked nem jó???
Egyébként a számolást az utasítás végrehajtási időkre értettem!
65 helyett nem tudom miért 16 ot írtam .
Bocsánatot kérek a mindenkitől !!!
De egyébként tisztában vagyok vele , régebben programozási versenyt is nyertem (hi)
C64 -el .
Rég volt , nagyon , aztán semmi programozás .
Újra kell tanulnom , más a program utsításkészlet is meg eltelt 18 év is.
Köszi a helyreigazítást .
Egyet értek .
Mindig lehet valamit tanulni!!
Most a megszakításokkal kapcsolatos dolgokat keresgélem , bár a súgóban nem is tudom hol-milyen utasításokat keressek.
Ami most érdekelne : Több nyomógomb (kontakt) tud e megszakítást generálni ?
Pl : 2313-nál 4 nyomógomb + a-b enkóder .
Az enkóderes rész az nagyjából meg is lenne.
Mindig lehet valamit tanulni!!
Most a megszakításokkal kapcsolatos dolgokat keresgélem , bár a súgóban nem is tudom hol-milyen utasításokat keressek.
Ami most érdekelne : Több nyomógomb (kontakt) tud e megszakítást generálni ?
Pl : 2313-nál 4 nyomógomb + a-b enkóder .
Az enkóderes rész az nagyjából meg is lenne.
