Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   632 / 840
(#) killbill válasza attti hozzászólására (») Dec 8, 2014 /
 
Sajnos ebbol a dokumentaciobol semmi nem derul ki a flow control-t illetoen. Tobbet ir a vindoz driver-ekrol, mint a nyomtatorol. Utananezek, hatha van meg valami elerheto info rola.
(#) Kovidivi hozzászólása Dec 8, 2014 /
 
Sziasztok!
Így van konfigurálva az SPI és a Timer2:

//SPI: master, [interruptos kezelés], MSB először, 2MHz (8MHz kristály mellett)
SPCR = (0<<SPIE) | (1<<SPE) | (1<<MSTR) | (0<<DORD) | (0<<SPR1) | (0<<SPR0);

//TIMER2 kb. 1ms-os megszakítás
TCCR2 = (1<<WGM21) | (1<<CS21) | (1<<CS20);
OCR2 = 249;
TIMSK |= 1<<OCIE2;

A TIMER2 megszakításban lábakat állít be, majd elindít egy SPI átvitelt (csak itt történik SPI átvitel!)
SPDR=egyváltozó;

Jól tudom, hogy az SPI megszakítás akkor lép életbe, ha kész az előző Timer2-es megszakításban elkezdett átvitel?
Köszönöm!
(#) Tertech hozzászólása Dec 8, 2014 /
 
Sziasztok!

Lenne egy lúzer kérdésem. Van egy adott fájl állomány, csatolok képet.
Milyen programot alyánlanátok hex be való fordításhoz....
Ezekból kiderülhet milyen programmal készültek..?

C.png
    
(#) csabeszq válasza Tertech hozzászólására (») Dec 8, 2014 /
 
Ez első ránézésre avr-gcc-nek tűnik.
(#) rolandgw válasza Kovidivi hozzászólására (») Dec 8, 2014 /
 
Szia !Ha interrupt-os SPI-t akarsz ,miért nem engedélyezed ?
  1. (1<<SPIE)

Amíg a Timer2 megszakítás fut,addig az SPI vár,csak a flag áll be,ha kész.
(#) Tertech válasza csabeszq hozzászólására (») Dec 8, 2014 /
 
Szia!

AvrStuidoval nyitható ?
Vagy Winavr-el..?
Találok valami leírást magyarul , hogy is kell ..?
(#) Kovidivi válasza rolandgw hozzászólására (») Dec 8, 2014 /
 
Szia.
Az engedélyezés később történik, amikor már minden konfigurálva van. Habár lehet már hamarabb is beállítható lenne.
Mikor fut le ez a függvény?
  1. ISR(SPI_STC_vect)
  2. {
  3. //parancsok
  4. }
(#) csabeszq válasza Tertech hozzászólására (») Dec 8, 2014 /
 
WinAVR-rel.

Belépsz a könyvtárba és beírod, hogy make.
(előtte állítsd be a PATH-t rendesen, hogy megtalálja a make.exe-t)
(#) csabeszq válasza Kovidivi hozzászólására (») Dec 8, 2014 /
 
Mesternél: ha elküldődött az adat
Szolgánál: ha érkezett adat
(#) Kovidivi válasza csabeszq hozzászólására (») Dec 8, 2014 /
 
Köszönöm szépen, Rolandgw-nek is!
(#) Tertech válasza csabeszq hozzászólására (») Dec 8, 2014 /
 
Magpróbáltam rákeresni.

De nem találtam hogyan. Ez a progi teljesen új számomra.
Tudnál további segítséget adni, link is megteszi, videó a youtubon...
(#) mikrofarad válasza csabeszq hozzászólására (») Dec 8, 2014 /
 
Bár nem most kezdem a mikrokontrollerezést , köszönöm a tanácsokat, van köztük pár amire jobban figyelnem kéne. Arduino nanot (klón) pedig most fogok venni. Azért inkább a nano, mert kettővel több analóg bemenete van az unonál.
Breadboard van, a kábelek pedig az atmega8-akkal együtt jönnek hozzá.
(#) Tertech hozzászólása Dec 8, 2014 /
 
Azt hiszem megtaláltam.
(#) csabeszq válasza mikrofarad hozzászólására (») Dec 9, 2014 /
 
Azt írtad 15 éves vagy. Bár ez mondjuk semmit sem jelent, mert én 12 évesen már jobban értettem a Commodore 64-hez, mint a pedagógusok, simán ütöttem vágtam a gépi nyelvet is.

Azidőtájt szerencsésebb helyzetben voltunk, mert rengeteg magyar nyelvű könyv volt, de ha valamelyest beszélsz angolul is, az előnyös lehet.

Talán azért is kedvelem ennyire a 8 bites mikrokontrollereket, mert kísértetiesen hasonlítanak felépítésükben a 30 évvel ezelőtti Commodore-okra és afféle nosztalgia érzése van az embernek. Azidőtájt az asztali gépek tudtak annyit, mint most ezek a 28 lábú chipek.
(#) mikrofarad válasza csabeszq hozzászólására (») Dec 9, 2014 /
 
Az angoltudásom elég ahhoz, hogy megértsem a dokumemtációt, de a c-vel még vannak gondjaim.

Mekkora lenne csinálni egy C64 klónt AVR-rel.
(#) killbill válasza mikrofarad hozzászólására (») Dec 9, 2014 /
 
Idézet:
„Mekkora lenne csinálni egy C64 klónt AVR-rel.”
Ahhoz egy kis HW cucc is kellene... A C64-ben a korahoz kepest igen komoly video chip volt, nem beszelve a hanggeneratorrol. De az kilencszazakarhany kilohertzes (<1MHz) processzort sem lenne egyszeru egy AVR-rel emulalni.
(#) Brian88 hozzászólása Dec 9, 2014 /
 
Sziasztok
A mai napon egy új fogalommal ismerkedem: Oversampling
Ezzel kapcsolatban tudnátok segíteni, hogy megértsem, hogy is működik ez?
Érdekes, hogy a leírások szerint, ezzel a technikával lehet 10bit ADC-ből nagyobb felbontást elérni. Minden ezzel kapcsolatos info érdekel, próbálkozott már ezzel valaki?

Itt található a gyári leírás:
Oversample
(#) csabeszq válasza Brian88 hozzászólására (») Dec 9, 2014 /
 
AnalógVonal = ADCbeolvasott + Kvantálási zaj + egyéb zaj

Amennyiben megfelelően zajos környezetben használod az ADC-t és a zaj fehérzaj szerű, akkor az alsó biteken az ADC össze-vissza elkezd ugrálni.

Ha pl. 11.7 lenne az ADC értéke, akkor 70%-ban 12-t, 30%-ban 11-et ad vissza az ADC.

Az oversampling (túl-mintavételezés) lényege, hogy kihasználod, hogy az ADC-hez egyenletes fehérzaj is hozzáadódik, többször mintavételezel és átlagolsz.

Én nem a pontosság növeléséhez használom az oversampling-ot, hanem simításhoz és a tüskék kiszűréséhez.
A hozzászólás módosítva: Dec 9, 2014
(#) mikrofarad válasza killbill hozzászólására (») Dec 9, 2014 /
 
Nem azt mondtam, hogy könnyű lenne, hanem, hogy jó móka lenne. Csak sajnos suli mellett nem sok idő jut ilyesmire.
(#) csabeszq válasza mikrofarad hozzászólására (») Dec 9, 2014 /
 
Később sem lesz több időd. Én terepasztal automatizálással foglalkozom. A két gyerkőc mellett még kevesebb idő jut rá. De nem is sürgős, csak arra kell ügyelni, nehogy felnőjenek, mire befejezem.

(#) Massawa válasza csabeszq hozzászólására (») Dec 9, 2014 /
 
Van esetleg egy müködö forditokorong vezérlöd?
(#) attti hozzászólása Dec 9, 2014 /
 
Sziasztok!
Ha ATMEGA1280 es MAX202-on keresztül tolom át az információkat soros porton az EPSON LQ300+II nyomtatómra akkor esetlegesen limitálva vagyok az információ hosszának terén? És tudom használni az összes ESC kódot, tudom, hogy a max202 nem limitál engem, mivel csak hw illesztő, az avr-ben valami limit van-e?
(#) csabeszq válasza Massawa hozzászólására (») Dec 9, 2014 /
 
Nincs fordítókorongom, kicsi az asztal.

A vonatérzékeléssel/irányítással foglalkozom. Nekem elsőre nem tűnt jó ötletnek telepakolni a terepasztalt optokapukkal.

Felosztottam 16 szakaszra a síneket és áramfogyasztást mérek 2x3 diódával. Ha esik feszültség a diódákon, akkor van vonat. Ha a vonat áll, akkor néha rövid ideig ráadom a kakaót, ami fogyasztásmérésre elég, de mozgásra nem.

Emellett a 16 különféle szakaszra különféle jelet tudok kirakni (0V, 12V). Egyelőre az analóg vonatokat fogom tudni külön-külön irányítani a különböző szakaszokon, de ha átírom a programot és bekapcsolok egy DIP kapcsolót, hogy 14V-ról menjen, akkor DCC-zni is lehet majd.

Érzékeli a rövidzárat és zenél, ha egy fogót ráteszel a sínekre. Gombokkal állíthatod a váltókat, automatikusan felkapcsolja a világítást. Mire minden kész lesz, még egy év eltelik, vagy több.

A lényeg, hogy a hardver menjen, utána jön a munka neheze: algoritmust találni, hogy megbecsüljem a vonat pontos pozícióját az idő és az előzőleg érzékelt sebességek alapján. Utána fényjelzők,...

Maga a tápegység-vonatérzékelés-vezérlés elkészítése több mint egy év volt a vakvágányok miatt. Rengeteg fölösleges dologra vertem el az időmet, ami később épületes baromságnak bizonyult.
(#) killbill válasza attti hozzászólására (») Dec 9, 2014 /
 
Nem vagy limitalva. Miert limitalna az AVR? Annyi adatot kuld ki, amennyit kikuldetsz vele. Ha a nyomtato nem tud tobb adatot fogadni, akkor megallit teged. Ez a flow control. A software flow control eseten a nyomtato kuld neked egy XOFF karaktert, ha mar nem tud tobb adatot fogadni, es majd kuld egy XON karaktert, ha ujbol kepes adatot fogadni. A hardware flow control eseten a printer a CTS kimeneten jelzi, hogy kepes-e adatot fogadni vagy. Ezt kell figyelni, es ennek fuggvenyeben kuldeni az adatot vagy varni. Azt, hogy az emlitett printer milyen flow control-t hasznal az szamomra nem derult ki az adatlapjabol. Sot, az EPSON weboldala szerint ez a nyomtato nem is rendelkezik sorosvonali bemenettel, bar ennek ellentmond, hogy az adatlapja szerint meg van neki.
(#) mikrofarad válasza csabeszq hozzászólására (») Dec 9, 2014 /
 
Nekem a nyári szünetben egy kicsit valószínűleg több időm lesz, és ott talán egy nagyobb projekt is összejöhet.
(#) Massawa válasza csabeszq hozzászólására (») Dec 9, 2014 /
 


Ez mindannyiunknál igy szokott lenni. Nekem is most egy vezérlést kéne csinálnom és ehhez keresek ötleteket ill. a lehetö legkisebb chipet. 2 fajtára van univerzálisabb NYÁKom, a tiny 2313 nak szerencsére minden portja ki van vezetve, sajnos a nagyobbik 644-s procin a portok majdnem hozzáférhetetlenek ( egy berendezéshez lett tervezve, ahova nem kellett a sok port csak a memoria).
(#) Massawa hozzászólása Dec 10, 2014 /
 
Ötleteket gyüjtök hogyan tudnák max 32 LED-t meg ugyanannyi nyomogombot kezelni és az eredményt 2 porton kiadni. ( ideális lenne ha ez a tiny2313-l menne - mert erre a procira van kész NYÁK-om amin minden port elérhetö.
A 32 LED-böl egyszerre max 2 világithat.
Kösz
(#) csabeszq válasza Massawa hozzászólására (») Dec 10, 2014 /
 
Hát, nálam a jelzővezérlő (4x30 LED) egyelőre csak tervezés alatt van.

Arra gondoltam, hogy az Atmega16-nak megfelelően sok portja van (és a legolcsóbb az ebay-en a kategóriájában), van 32 IO pinje és 200 mA-ig terhelhető. Ebből raknék be 4 db-ot.

Nézegettem IO expandert és shift regisztereket is, de kicsi a terhelhetőségük. Az 50-70mA az semmi. Ha úgy számolsz, hogy egy LED 10mA, akkor egyidőben 20 LED világíthat az Atmega16-on, ami jelzők esetében reális. Ha kisebb teljesítményű LED-eket használsz 5mA, vagy ULN-t, akkor lehetne IO expandert és shift regisztert is használni, de árban megint ugyanott vagy.

Egy csomó Atmega16-ot SPI-n bekötnék (IO expandernek, csak 200mA-rel), egy központi IC irányítja az Atmega16-okat. Ez képes lesz fel is programozni őket. A központi IC programja tartalmazni fogja az expanderek programját és ha azt veszi észre, hogy változott, akkor egymás után ISP-n feltölti őket (RESET + SPI).
A hozzászólás módosítva: Dec 10, 2014
(#) ktamas66 válasza Massawa hozzászólására (») Dec 10, 2014 /
 
Egy 4 digites kijelzőben pont 32 LED van és megoldják , nézz utána a megoldásnak.
(#) csabeszq válasza Massawa hozzászólására (») Dec 10, 2014 /
 
> A 32 LED-böl egyszerre max 2 világithat.

2 16 bites demultiplexer (74HCT154)?
A hozzászólás módosítva: Dec 10, 2014
Következő: »»   632 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem