Fórum témák
» Több friss téma |
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
Arduino-val nem fogsz megtanulni "AVR-t programozni", legfeljebb csak "programozni". Nem mindegy!
Egy AVR csomó perifériából állhat, amit az Arduino nem, vagy csak nagyon korlátozottan fog kihasználni. Ja igen, a felhasználható típusok száma is korlátozott. Modellezőknek találták ki, nem programozni vágyóknak. A T-Bird2 kb. mint Arduino, csak egy kicsit nagyobb memóriával. A lényegen ez sem változtat. Ahhoz hogy valóban programozz is vele, kiegészítő paneleket kell gyártanod/venned hozzá. Addig marad a LED-villogtatás meg nyomógombhasználat, meg USB és kifújt... Én azt tanácsolom hogy nézz szét a neten, sok-sok érdekes kapcsolást meg mintapéldát találsz. A legtöbb projektnél megosztják a forráskódot, ezekből lehet sokat tanulni. Főleg ha kommentálják is! A Bascom meg hasonló hókuszpókuszt felejtsd el! Kezdésnek lehet hogy nehezebb a C a sok szimbólum meg hasonlók miatt, de átláthatóbb, követhetőbb kódot tudsz vele írni. Talán láthatod azt is, hogy a neten fellelhető projekteknél a kódot majdnem mind C nyelven írták, illetve némelyiket assemblerben. Nem véletlenül! Persze biztos vannak nívós projektek Bascom alá is, csak ezekkel nem találkozom túl sűrűn. Lehet hogy a marketingje kicsi, vagy a C-maffia tünteti el őket?
Szerintem nyugodtan kezdj a T-Bird-el. Sok mindent meg lehet tanulni vele. Ha a kiegészítő panelt is megveszed, akkor azon még több dolgot megtanulhatsz, de ha ez sem elég készíthetsz hozzá te is kiegészítő panelt és azt csatlakoztathatod a T-Bird-höz.
Én mint abszolút kezdő nem akarok vitát idítani csak a tapasztalatom írom le.
Én költöttem Arduino-ra és pár kiegészítő panelre meg programozóra anyagi lehetőségeimhez képest nem keveset. Kb. két hét alatt rájöttem, hogy hiba volt kb. amikor saját igényeim szerint akartam használni a kimeneteket LCD használatával. Azóta vettem egy méretes DIL tokozású AVR-t és próba panelen bármit összerakok és tesztelem nem kell alkalmazkodnom mások agyszüleményeihez csak a sajátomhoz. Ja és C-ben. Ha komolyan gondolod az AVR-t és valóban szeretnéd kihasználni akkor Bascom felejtős. Egy darabig jó, de rájössz, hogy valami más kell. Akkor inkább kezd a mással vagyis C-vel.
De egyéni panelekkel ugyanúgy bővíthető, mert ki vannak vezetve a lábak. Az ardunioval meg csak a programozási korlátokkal van problémám. Mondom persze ezt úgy, hogy nincs túl nagy tapasztalatom benne..
Én is pont így gondoltam. Gondolom az arduino led villogtatáshoz és falnak nemütköző robotnak tökéletes illetve még sok másra is, de én olyannal szeretnék kezdeni, amivel lehet magasabb szintre fejlődni. Programozási nyelvből én is C párti vagyok, asm-et nem szeretem, bascomot meg sosem használtam
Az Arduino _nem csak_ arduino nyelven programozható!
C, Bascom-AVR, Arduino, ASM, FastAVR.... De a fő szabály: Olyan nyelven és olyan hardware-rel kezdj, amihez _részletes_segítséget kapsz, ha elakadsz...
Ardupilot, Spectruino - csak hogy pár "egyszerű" projektről beszéljünk....
Illetve _modellezésként_ az Ardusat projekt Bővebben: Link De tetszik: az Arduino belül elég szépen C, ahhoz képest hogy sikerül leszólni...
Sziasztok!
ATMEGA32-re tervezem a kapcsolásom és elfogyott a hely. Kevés az I/O lábak száma. Tudom valahogyan bővíteni a bemenetek számát? Kimenetet megoldanás Shift reister-el, de nekem a bemenet sok. 18db opto, 5db ADC, 6db LCD-nek, 4db gomboknak És akkor ott van ugye a 3db a programozáshoz, 3db az RS485-nek. Kimenetnek csak 4db láb kell.
Van erre a célra "port expander" ic, vagy egy sima multiplexerrel is megoldható a dolog. pl 74HC4067 - 16 csatornás és 5 láb kell a használatához(ha mindet csak bemenetként vagy csak kimenetként használod akkor 4 is elég).
Ez nem kapcsolgatját az órajel függvényében az AVR bemeneteit?
Pl. ha a 8. és 4. opto értéke változott akkor a frekvencia függvényében kapja az AVR az állapotokat binárisan. 1000 0100 Itt amikor azt mondja, hogy a 8. van magas szinten akkor 4-re alacsonyat ad. És fordítva ugyan ez. Vagy szoftveresen kell ezt lekezelnem, hogy nem okozzon problémát?
Programozó lábakra is lehet tenni perifériát. Csak figyelj arra, hogy a programozót ne terhelje nagyon.
Többire meg már válaszoltak.
A demultiplexer úgy működik, hogy az S bemenetre ráadsz egy bináris számot pl. 12, akkor jobb oldalt az Y bemenetek közül a 12-es láb értéke fog megjelenni a Z kimeneten. Ha 7-et teszed rá, akkor a 7-es láb fog megjelenni a Z kimeneten.
Vagyis nincs más dolgod, mint írni egy függvényt, amiben egy ciklussal végig szaladsz 0-tól 15-ig és egy 16 bites unsinged int-ben letárolod helyiértéknek megfelelően -> 0. bemenet 0. bit legyen, amivel a végén visszatérsz, és utána szabadon maszkolható.
Jól értelmezem, hogy az attiny45 nem tud két különböző Fast Pwm jelet megjeleníteni? Mert szeretnék egy kis alkalmazást amelyben két ledet, két nyomógombbal szeretnék vezérelni PWM segítségével.
Igen 4067-ot használtam már arra, hogy bináris értéket decimálisan kezeljek.
Itt most nekem pont fordítva kellene, hogy működjön a dolog. 16 bemenetet szeretnék a lehet legkevesebb AVR láb felhasználásával.
Teljesen függetlent nem, csak olyat, hogy azonos frekvencia mellett két különböző kitöltési tényezőjű PWM jelet tudsz. OCR0A és OCR1B személyében.
De akkor elő tudok állítani két különböző fényerőt és ezeket külön vezérelni?
4067-es lehet demultiplexerként is használni , mivel transmission gatek vannak benne. Bár így hirtelen az adatlapon nem igazán tudok kiigazodni, hogy hogyan is működik ez most itten.
Igen, csak a frekvencia lesz azonos (TCNT0), de a kitöltési tényező elméletileg szabadon változtatható és független egymástól.
Tipp:
I2C busz és ha adatváltozás van, akkor az INT lábat az AVR fele. Ez így 3 AVR lábat foglal. I2C buszra portbővítőből felmegy 8 db. (vagy AVR oldalon folyamatos polling és az is megoldja - így elég 2 AVR láb: SCL/SDA) Ha MCP23017-et használsz, az 8*16 db láb. elég?
Ha jól látom akkor egy ilyen IC-vel kapok 16-3 db lábat. Ez lég jól hangzik. Pollingot nem szeretnék mert csak "lassítja" a programot és plusz hibalehetőség.
Köszönöm az ötletet. stg Korábban próbáltam a CD4067-et DMX ként használni, de beletört a bicskám. 2 IC-t is elfüstöltem így feladtam a dolgot. Én sem igazodtam ki az adatlapon.
Hello
Talán már nem annyira aktuális, de csak most olvastam a a gondolataidat, és azt hiszem én is hasonló cipőben voltam. Igazából viszont azt kell mondjam, hogy nem fogsz találni olyan univerzális panelt amit kényed-kedvedre majd akésőbbiekben is előszeretettel használsz. Sztem ugyanolyan jó az arduino, mint egy T-Bird. Arduino-m nem volt - nem is lesz - de a T-Birdről tudok nyilatkozni: Ellentmondásos kis fejlesztő eszköz, bár kétségtelen, hogy megéri az árát - a T-Bird1 legalábbis mindenképp megérte. Kiegészítő panel nélkül viszont meg se vedd. Az a szegényke 8 LED meg 5 gomb nem sokra elég. Bővíthetőségével vitatkoznék, mert legalább van rajta egy teljes szélességű port, ami úgy van kivezetve, hogy vezetékekkel azonnal elérhetjük a lábait. Tehát ha van egy próbapaneled akkor már lehet mit ügyeskedni. De érződik benne a "csak T-Birdnek használd és mindenképp vedd meg a kiegészítőt" hozzáállás, hiszen igazán használható akkor lett volna ha minden port IDC10-es csatlakozóra lett volna kivezetve. Ekkor olyan paneleket tudnál csinálni hozzá amelyek mindegyike ilyen csatlakozós és szabadon cserélhetnéd a portokat az adott panelekre. Magyarán a hangsúly az univerzalitáson lenne, ami sajna nem a a T-Bird erőssége. Használod, kitanulod, örülsz, vállon veregeted magad, majd szépen félrerakod az egészed. Én sajnos nem is tudom mire vélni pl. a Timer/Analog csatlakozót sem , hiszen mindkét panelra el lehetett volna helyezni a külön 8 bites portokat. De ha a kedves felhasználó saját panelt akar, akkor alkalmazkodnia kell ugye a Timer/Analog lábkiosztáshoz, amivel az életben sehol máshol nem fog találkozni... Én legalábbis az olyan paneleket kedvelem amit ugyanúgy könnyen rá tudok kötni egy PIC 8 bites mikrokontrollerre, mint az AVR-re, vagy egy 8051-esre. A másik bőkkenő, hogy én már jártam úgy, hogy programozás közben az áramkör megszakadása miatt - áramszünet - a beépített JTAG programozó megölte az Atmega128-amat, csak azért mert össze-vissza programozta a fuse biteket. De mindezek ellenére azt kell mondjam, hogy megéri az árát, mert kezdő panelnak tökéletes. AZ ATmega 128 végülis egy nagyon jó ár-érték arányú chip, bőven lesz mit olvasni hozzá és mire minden T-Bird funkciót kitanulsz már lesz tapasztalatod a multipllexerről, 7 segmens meghajtóról meg a többiről is. Bár mindenképp nézz szét a neten, mert sok más, nagyon jó panel is van. Ha jól emlékszem a tme-n is egész klassz AVR panelek vannak amelyek nem erőszakolják rád a szalagkábeles csatlakozókat, hanem külön vezetékelni lehet az összes port lábat. /Ez a vezetékelés mizéria talán őrültségnek tűnik, de minél több dolgot akarsz majd megtanulni annál több panelt kell majd építened, és elég macerás dolog folyton forrasztgatni ha valamit ösze akarsz majd kötni./
OCR1B nem a TCNT1-hez van hasonlítva?
Nem. 16 lábat kapsz és az AVR-en beáldozod az egyik INT-et, és az I2C buszt.
Ha a PCF8574 (?) chipet rakod, sima I/Oként kezelhető. És ebből _azonos_ 3 lábas porton 8 db is felfűzhető....
Ízlések és pofonok... AKár ez is jó lehet neki. Bár ehhez még ugye kell valami debugger vagy ISP programozó is, akkor meg lehet, hogy majdnem akörül az ár körül van az egész. De ugye úgyis a szimpátia fog dönteni első panel vásárláskor. Sztem a legfontosabb, hogy majdnem mindent kézhez kapjon egyetlen váráslással - ha elhúzódnak a dolgok, meg készíteni kell saját paneleket, hibákat kell keresni már első nekifutásra, az szerintem végérvényesen is elveheti a kedvét az egész mikrokontrollertől.
Talán ez az érv szól csak a T-Bird mellett..... úgy ahogy van egy bő 20.000Ft-ért mindent megkap ami egy adott környezet problémamentes fejlesztéséhez kellhet.
Nem feltétlen akarok senkit buzdítani, hogy ezt vagy azt vegye meg, inkább csak a tapasztalataimmal próbáltam érvelni, de ha Arduinora adja a fejét akkor ez is jó választás lehet. Az Arduino 60 nap alatt-ot mindenesetre kár lenne kihagynia én is feliratkoztam rá, még ha nincs is szándékomban, hogy Arduinozzak. Sok mindent lehet tanulni még így is belőle.
Sziasztok,
Kis segítséget szeretnék kérni. Először próbáltam volna attiny2313-as mcu-t kristállyal meghajtani. Annak rendje és módja szerint beszereztem egy 8 MHz-es kristályt, és két darab 15 pF-os kondenzátort, és bekötöttem. A fuse biteket átállítottam hogy Ext. crystal oscillator 8.0- Mhz és start-up time: 14 ck + 65 ms. Na úgy látszik ezt valamiért nem szerette, innentől kezdve nem lehet programozni, nem is működik. Egyik kérdésem nyilván az lenne, hogy mit rontottam el? Másik pedig, hogy hogyan lehetne visszahozni az élők sorába. Ezt HVSP programozót nézegettem, de míg ez kitünően működik mondjuk egy attiny45-ösel, addig a 2313-assal sehogy sem tudom működésre bírni. Ötletek?
AVR Fusebit Doctor. Keress rá, hamar megtalálod a választ!
|
Bejelentkezés
Hirdetés |