attiny2313 - A+B csatornas encoder parositas
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
attiny2313 - A+B csatornas encoder parositas
Egy uj otletem van, amihez kernem a segitsegeteket!
A bascom leirasban megtalaltam az encoderekre vonatkozo reszt. Szeretnek modositani ezen a programon. Illetve lehet egy teljesen mas utat valasztanek (habar szemelyreszabhatosag szempontjabol nagyon kenyelmes a soros portos konfiguralhatosag lehetosege).
Arrol lenne szo, hogy egy A+B csatornas encoder jelet szeretnem feldolgoztatni a chippel. A kimenetre viszont nem LCD panelt kotnek, hanem 7 szegmenses led modulokat. Szam szerint 5db-ot. Egy ot szamjegyu szamot kellene majd megjeleniteni. A kis csavar ott van a dologban, hogy az encodertol kapott jelet at kellene alakitani. Elmozdulast szeretnek kijelezni a kis rendszerrel, mm mertekegysegbe atkonvertalva. Masik topikban emlitettem, hogy 500-as fizikai osztasu tarcsaim vannak (azaz 500cpr - 2000ppr). Ehhez az egyszeruseg kedveert vegyunk 5mm elmozdulast egy teljes korbefordulas alatt. Itt hogyan kell osszeloni a ket erteket? A chip mit iratna ki a kijelzore barmifele matematikai muvelet nelkul? 500-at, vagy 2000-t? Tehat a cpr, vagy ppr erteket?
A masik lehetoseg, hogy cel ic-ket hasznalok:
http://www.electro-tech-online.com/elec ... 4ls47.html
Csak nem vilagos, hogy ezt hogyan tudnam ugy beallitani, hogy a valos elmozdulast mutassa mm-ben. Kellene egy ic, ami a megfelelo osztast elvegzni?
Na, ezert lenne szimpatikusabb az AVR, ott azt irok bele, amit szeretnek (amit tudok...).
A bascom leirasban megtalaltam az encoderekre vonatkozo reszt. Szeretnek modositani ezen a programon. Illetve lehet egy teljesen mas utat valasztanek (habar szemelyreszabhatosag szempontjabol nagyon kenyelmes a soros portos konfiguralhatosag lehetosege).
Arrol lenne szo, hogy egy A+B csatornas encoder jelet szeretnem feldolgoztatni a chippel. A kimenetre viszont nem LCD panelt kotnek, hanem 7 szegmenses led modulokat. Szam szerint 5db-ot. Egy ot szamjegyu szamot kellene majd megjeleniteni. A kis csavar ott van a dologban, hogy az encodertol kapott jelet at kellene alakitani. Elmozdulast szeretnek kijelezni a kis rendszerrel, mm mertekegysegbe atkonvertalva. Masik topikban emlitettem, hogy 500-as fizikai osztasu tarcsaim vannak (azaz 500cpr - 2000ppr). Ehhez az egyszeruseg kedveert vegyunk 5mm elmozdulast egy teljes korbefordulas alatt. Itt hogyan kell osszeloni a ket erteket? A chip mit iratna ki a kijelzore barmifele matematikai muvelet nelkul? 500-at, vagy 2000-t? Tehat a cpr, vagy ppr erteket?
A masik lehetoseg, hogy cel ic-ket hasznalok:
http://www.electro-tech-online.com/elec ... 4ls47.html
Csak nem vilagos, hogy ezt hogyan tudnam ugy beallitani, hogy a valos elmozdulast mutassa mm-ben. Kellene egy ic, ami a megfelelo osztast elvegzni?
Na, ezert lenne szimpatikusabb az AVR, ott azt irok bele, amit szeretnek (amit tudok...).
Számolás vázlatban:
Elmozdulás balra-jobbra az elkóderes részsw lekezeli. Double vagy singla alapon légy. (10-es számrendszer és +/- sok.
Alapeset a 0-zás.
Egy elmozdulás zudod hány mm-t jelent a tengelyen. Innentől vagy osztáselmozdulást vagy mm-t tudsz írni a kijelzőre.
A 7szegmensesre meg multuplexelt kezelés, ahol a mm-eket íratod ki. Ezt a tizedestörtesből Formattal tudod leformázni.
Innen megvan TEXT/string alapon a számjegyek.
FONTOS!
Az enkóder INT alapon megy, és a 7szegmens kezelés is (pl. Timert ha használsz)! Én a 7szegmenst a főprogramban xsinálnám, max közben waitus részekkel. Ezt a enkóderelfordulás INTje ha megszakítja és rövid idejű, akkor max villódzik picit.
Vagy I2Cre 7szegmenses kijelzővezérlést, ami lehet MAX65xxx IC, vagy egy másik AVR. I2C-n meg ~30-40 msecenként átküldöd a pontos értéket (wordként vagy longként (ez ~8-10 I2C byte átvitele, ami mehet ~100kHz-n ez nem sok időben...)
Szóval a kiiratás ha LCDre megy (én vagy 7szegmenses kijelzést, vagy OLEDeset használnék (LCD)).
Elmozdulás balra-jobbra az elkóderes részsw lekezeli. Double vagy singla alapon légy. (10-es számrendszer és +/- sok.
Alapeset a 0-zás.
Egy elmozdulás zudod hány mm-t jelent a tengelyen. Innentől vagy osztáselmozdulást vagy mm-t tudsz írni a kijelzőre.
A 7szegmensesre meg multuplexelt kezelés, ahol a mm-eket íratod ki. Ezt a tizedestörtesből Formattal tudod leformázni.
Innen megvan TEXT/string alapon a számjegyek.
FONTOS!
Az enkóder INT alapon megy, és a 7szegmens kezelés is (pl. Timert ha használsz)! Én a 7szegmenst a főprogramban xsinálnám, max közben waitus részekkel. Ezt a enkóderelfordulás INTje ha megszakítja és rövid idejű, akkor max villódzik picit.
Vagy I2Cre 7szegmenses kijelzővezérlést, ami lehet MAX65xxx IC, vagy egy másik AVR. I2C-n meg ~30-40 msecenként átküldöd a pontos értéket (wordként vagy longként (ez ~8-10 I2C byte átvitele, ami mehet ~100kHz-n ez nem sok időben...)
Szóval a kiiratás ha LCDre megy (én vagy 7szegmenses kijelzést, vagy OLEDeset használnék (LCD)).
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
Koszi, hogy hozzaszoltal!
Kerestem egy kijelzot (conrad):
4 x 16 <- link
Ezt fogom tudni hasznalni? Nem kellene ehhez valami adatlap, labkiosztassal?
Letettem egyelore a szegmens kijelzorol.
Kerestem egy kijelzot (conrad):
4 x 16 <- link
Ezt fogom tudni hasznalni? Nem kellene ehhez valami adatlap, labkiosztassal?
Letettem egyelore a szegmens kijelzorol.
A Chipcad kft.-nél hozzájuthatsz ilyen kijelzőhöz jóval olcsóbban is. (www.chipcad.hu)
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
Atragtam magam az LCD topikon. Bekotesekkel, hasznalattal kapcsolatos a legtobb info.
Encoder A-B csatornat ra lehet kotni kozvetlenul a PC LPT portjara es ezt a jelet felhasznalni a BASCOM simulatorban? Igy latnam, hogy az alap program mit ir ki pontosan.
Egyelore ez nem tiszta. Egy inkrementnel van ugye negy jel - ketto felfuto, ketto lefuto. Ebbol mi kerul a kijelzore (LCD) a valosagban?
Egy inkrement az ekmozdulas - itt nem szamit az encoder felbontasa. Tehat egy inkrement - 1-et ir ki, vagy 4-et az LCD-re (a minta programot veve alapul).
Megepiteni meg nem tudom, mert nincs LCD kijelzom...
Encoder A-B csatornat ra lehet kotni kozvetlenul a PC LPT portjara es ezt a jelet felhasznalni a BASCOM simulatorban? Igy latnam, hogy az alap program mit ir ki pontosan.
Egyelore ez nem tiszta. Egy inkrementnel van ugye negy jel - ketto felfuto, ketto lefuto. Ebbol mi kerul a kijelzore (LCD) a valosagban?
Egy inkrement az ekmozdulas - itt nem szamit az encoder felbontasa. Tehat egy inkrement - 1-et ir ki, vagy 4-et az LCD-re (a minta programot veve alapul).
Megepiteni meg nem tudom, mert nincs LCD kijelzom...
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
- albinolynx
- Tranzisztorgyógyász
- Hozzászólások: 161
- Csatlakozott: 2007. október 28. vasárnap, 6:00
LCD megrendelve - http://www.chipcad.hu/letoltes/adatlapok/EW20400YLY.pdf
Ma este egetek egy chipet is.
16MHz-es kvarcom van, igy at kell irnom ezt a sort:
"$crystal = 4000000" erre "$crystal = 16000000"
Mast nem kell, ugye?
Ma este egetek egy chipet is.
16MHz-es kvarcom van, igy at kell irnom ezt a sort:
"$crystal = 4000000" erre "$crystal = 16000000"
Mast nem kell, ugye?