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
Végül is nem sikerült az USBASP-t AVRDUDE-al 89s51-re rábírnom, de valami japán prg (ISPPROG) kezelte, így meg tudtam írni meg tesztelni a programokat. Jelentem, ötöst kaptunk az egyetemi feladatsorra
![]() ![]()
ATTiny45-el szeretnék egy kis modellmotort vezérelni. A probléma az, hogy semmi más nem fér el csak maga a chip.
A helyzetet bonyolítja, hogy a motor egy AAA elemmel van meghajtva míg a procit egy 3V-os lapos gombelemszerűvel hajtanám meg, hogy megkapja a szükséges feszültséget. Egy kis mozdony az áldozat amit szeretnék kicsit "okosabbá" tenni. És a csavar amit gondolom elsőként kellene megoldanom, hogy nem tudok áramerősséget mérni gondolom a mérőműszeremmel van a baj csak feszüktséget és ellenállást. Ha lenne több helyem akkor nem gond, de így necces viszont nagyon örülnének neki, ha nem siklana ki minden indulásnál. A proci annyit csinálna, hogy amikor áramot kap vár 3 mp-t majd elindítja és megy kb 2 percig majd leállítja. Előre is köszönöm a válaszokat
Végül is mi a kérdés, ha az hogy a proci képes-e akkora áramot elviselni ami kell a kis vonatnak, ez mérés nélkül is borítékolható, hogy nem, tehát egy tranzisztor bázis-ellenállással és védődiódának szoríts helyet.
Ha minden kimenetet párhuzamosítasz, akkor szerintem mehet. Legrosszabb esetben buktál egy AVR-t.
Szerintem meg nem kell kockáztatni, mert a vonat ugye 1.5Voltról menne, az AVR meg megkívánja a 3Voltot. Így a dupla feszültséggel járó többletteljesítményt is számolni kellene, és kár is kísérletezni vele, ha borítékolható a kudarc. - sot-23 tokban komoly kis kapcsoló feteket lehet venni- bontani.
Van lithium ion cella AA méretben, talán AAA méretben is, aztán használható az AVR közvetlenül, párhuzamosítva a kimeneteket (mivel van bennük áramkorlát), és PWM-mel hajtva a motort, így nem 3.7V jutna rá, hanem csak 1.5V, vagy amennyit szeretne freechat. SOT-23 FET-ek is nagyon jók, de ha nem fér be, nincs mit tenni.
Igazad van, csak akkor ki kellene mérnie, hogy a lehetséges maximum 200mA elég e valamire.
Ha ennél többet venne fel a motor, az elem gyorsan lemerülne. Ezek a motorok max. 50mA-t vehetnek fel, úgy saccolom.
Igazából az a kérdés, hogy hogyan kössem össze, hogy a lehető legkevésbé merítse a 3V-os elemet mivel az nem újratölthető
![]() Most kb 4x gyorsabban megy, mint kéne csak úgy robot a "kisvonat" ![]() Vagyis röviden van két elemem egy motorom meg egy AVR-em. Ezt kellene valahogy összekötni. Ha minden kötél szakad lehet összekötök két kocsit, akkor végül is minden meg van oldva, de az nem túl jó megoldás sajnos ![]()
Sziasztok!
Lehet, volt már kérdés, de nem találok rá választ sehol. Egy Attiny24 lábait szeretném kapcsolgatni alacsony-magas szint között egy for cikulssal. A csavar a történetben, hogy a lábak nem egy PORT-on vannak és ráadásul nem sorrendben. Tehát valami ilyesmi lenne: 1. PORTB 3.bit, 2.PORTA 2.bit, 3.PORTA 1.bit, stb. Hogyan tudom ezt kivitelezni esetleg még a deklarációknál, hogy később már csak végig kelljen lépkedjek rajtuk? Jelenleg egy switch-case felállással van összetákolva a programkód, de gyanítom, hogy ennél egyszerűbb (elegánsabb) megoldás is létezik, csak addig sajnos nem terjed a tudásom.
Ilyesmire gondoltál?
Lehet-e 4.65V -os tápfszültségnél programozni egy ATtiny10 -et?
Köszönöm, igen, valami ilyesmire gondoltam! Hamarosan ki is fogom tudni próbálni
Az a problémám, hogy amikor visszaszámol, és a 3. karakter 0-ra vált, akkor azt nem törli, hanem marad ott egy "0". PL.: 100 990 980 ... Mi itt a jó megoldás? Most azt csinálom, hogy egy szóközt beírok, de gondolom van korrektebb megoldás is.
Szia! Az első setCursor előtt töröld le a teljes kijelzőt, vagy azt a részt ahová írni fogsz.
Egy rész hogyan lehet törölni? Azaz egy sort például?
Szerintem csak úgy, hogy beleírsz x darab szóközt.
![]() ![]() KÖSZÖNÖM!
Jó programozónál, ami nincs, azt meg írja!
[code=c] // LCD törlő rutin. Param: LCDx, LCDy, Szóközök száma void deletingRow(byte col, byte row, byte num ) { lcd.setCursor(col, row); for (byte space = 0; space < num; space++) { lcd.write(" "); // annyi * szóköz amennyit törölni akarsz } lcd.setCursor(col, row); // Még kényelmesebb ha vissza teszed a curzort elörre? } A hozzászólás módosítva: Dec 20, 2016
Szia. az ilyeneket el kellene menteni valahova itt a fórumon,mert remek ötlet és megoldás egyben. Én most mentem is,és köszönöm ezt a remek példát.
Sziasztok!
Egy fontos és viszonylag sürgős segítségre lenne szükségem: Arduinoval szeretnék beégetni egy ATMega8A típusú vezérlőt. Múltkor (kb. fél éve) már beleraktam a kívánt programot, de "lassú" a mikrovezérlő, meg furcsán reagál. Amikor feltettem a kérdést itt a fórumon, mi okozhatja a gondot, azt mondták, ki kell kapcsolni a fusebiteknél a div8-at, és 8x gyorsabb lesz a vezérlő. Na, nekem ez annyi érthetőt rejt, mint kínainak az Anyám tyúkja, szóval kérném a segítségeteket. Tegnap próbáltam valahogy beégetni, de nem sikerült a kapcsolatot sem létrehoznom, stb. Viszont ami nagyobb gond volt, hogy nem tudom, majd hol keressem ezt a fusebit beállítást. A tutorial videót ha megtalálom az égetésről, akkor az valószínűleg nem lesz gond, viszont a beállításra nem találtam semmi hasznosat az interneten.
Én nem próbáltam még a fenti módszerrel beállítani fusebitet! A saját felelőségedre játsz vele.
![]() Itt egy cikk arról, hogy indítsd el az avrdude-t az arduinoval, mint programozóval. A példában linuxon futtatják. Ha windows-t használsz, akkor a -P után COMx et írj, ahol az x a soros port száma, amin az arduino csatlakozik a PC-dhez. Itt pedig egy segédprogi a fusebitek kiszámításához, ami mindjárt avrdude paramétereket is megad. Vigyázz, hogy ne kapcsold ki az SPI programozást és a reset lábat se tiltsd le, mert többet nem programozod az eszközt különben (legfeljebb spéci eszközzel). Ne állíts be külső kristályt se ha nem csatlakoztattál egyet! A hozzászólás módosítva: Dec 22, 2016
Üdv!
Létezhet olyan, hogy egy ATtiny2313-al akarok egy epromot lapozni, de egy idő után megbolondul a 2313 és össze vissza kapcsolgat. Az az érdekes, hogy ha az epromot kiveszem, tehát csak a 2313-van egymagában akkor nem bolondul meg. Már arra gondolok, hogy kellene tenni ellenállást az eprom lábai és a 2313 vezérlő lábai közé? A 2313-at már belső órajelről és kvarcról is próbáltam járatni, de ugyanúgy hülyéskedik. Reset lábon felhúzó ellenállás megvan, 100nF kondi az eprom és a 2313-nál is. Akkor tapasztaltam ilyen rosszalkodást, amikor kihagytam az ellenállást egy fet vezérlésénél és minden ment, csak nem rendeltetés szerűen. Köszi!
Az eprom 27c512 és 3 lábbal (A13, A14, A15) kapcsolódik a 2313-as PB5,6,7-es lábakra.
Hacsak el nem írtad az eprom típust, akkor az attiny2313-as valószínűleg kevés lesz. Ehhez egy atmega8515-ös és egy latch IC i kell. Már ha az egész 64KB-os területet ki szeretnéd használni.
A többi láb az EPROM-on mire van kötve? Mekkora feszültséget adsz neki?
Az epromban 8db. program van. attiny2313 kapcsolja be a 8kb-s lapokat. A többi láb az epromon a megfelelő helyre van kötve és működik is a prototípus. De a legyártatott nyákon nem akarja az igazságot. Az még hozzátartozik, hogy a prototípus áramkörben egy régebbi(2006)-os attiny2313 van, a gyártatott nyákon meg nemrég vásárolt. Lehet ennek köze hozzá?
Ezen nem kellene segitsen a harom ellenallas. De eleve jonak kellene lennie, nem normalis, hogy megbolondul az AVR a valtastol. Jok a tapok? Meg az osszekotesek? NYÁK-on van? Meg persze, ha az EPROM rossz es valamiert aram folyik a fent nevezett cim labakon, az nyilvan problemat fog okozni.
|
Bejelentkezés
Hirdetés |