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   755 / 837
(#) rascal válasza killbill hozzászólására (») Dec 11, 2016 /
 
Na, ezt eddig nem én sem tudtam...
(#) wbt válasza wbt hozzászólására (») Dec 16, 2016 /
 
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 Mondjuk akkor is cseszi a csőröm, mi lehet a baja, mikor AVR-el minden megy, ezzel a cuccal meg furcsa hibajelentéseket tesz. Arra jó volt dolog, hogy 10 év után kicsit visszarázódtam 8051 ASM-be (nosztalgia ON). Nagyon köszönöm mindenkinek a segítő hozzászólásokat; arra gondoltam még, hogy az én PC-men már annyi USB-vacak driver van fenn, hogy ütik egymást, de nem látványosan. Van itt FTDI-től a CH340-en keresztül minden és szerintem a libusb nagyon nem szeret mást maga mellett. Ami még érdekes, az 1998-as assembler által értett 1-2 utasítást nem értett az általuk használt ASM fordító. Pedig aztán a nagykönyvben ami meg van írva, az meg van írva. Felsőoktatásban érdekes segédprogramokat használnak...na, de az már más téma. Most majd kezdjük az AVR-eket. Azt hiszem, sokszor fogok kérdezni Mégegyszer nagyon köszi mindent!
(#) freechat hozzászólása Dec 17, 2016 /
 
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
(#) pont válasza freechat hozzászólására (») Dec 17, 2016 /
 
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.
(#) Kovidivi válasza freechat hozzászólására (») Dec 17, 2016 /
 
Ha minden kimenetet párhuzamosítasz, akkor szerintem mehet. Legrosszabb esetben buktál egy AVR-t.
(#) dokidoki válasza Kovidivi hozzászólására (») Dec 17, 2016 /
 
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.
(#) Kovidivi válasza dokidoki hozzászólására (») Dec 17, 2016 /
 
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.
(#) dokidoki válasza Kovidivi hozzászólására (») Dec 17, 2016 /
 
Igazad van, csak akkor ki kellene mérnie, hogy a lehetséges maximum 200mA elég e valamire.
(#) Kovidivi válasza dokidoki hozzászólására (») Dec 17, 2016 /
 
Ha ennél többet venne fel a motor, az elem gyorsan lemerülne. Ezek a motorok max. 50mA-t vehetnek fel, úgy saccolom.
(#) freechat válasza Kovidivi hozzászólására (») Dec 17, 2016 /
 
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ő és működjön is úgy, hogy akár PWM-el megoldom a motor sebességét.
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 .
(#) yohnsee hozzászólása Dec 18, 2016 /
 
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.
(#) Sick-Bastard válasza yohnsee hozzászólására (») Dec 19, 2016 /
 
Ilyesmire gondoltál?

  1. for(unsigned char i = 0, kimenet = 0b00000100; i < 3; i++)
  2. {
  3.         PORTB   = kimenet & 0b00000100;
  4.         PORTA   = kimenet & 0b00000011;
  5.         kimenet = kimenet >> 1;
  6. }
(#) Hp41C hozzászólása Dec 19, 2016 /
 
Lehet-e 4.65V -os tápfszültségnél programozni egy ATtiny10 -et?
(#) yohnsee válasza Sick-Bastard hozzászólására (») Dec 19, 2016 /
 
Köszönöm, igen, valami ilyesmire gondoltam! Hamarosan ki is fogom tudni próbálni
(#) szili83 hozzászólása Dec 19, 2016 /
 
  1. if (heating_start_time > 1)
  2.   {
  3.     heating_start_time = heating_start_time - 1;
  4.     lcd.setCursor(7, 2);
  5.     lcd.print(heating_start_time);
  6.     lcd.setCursor(10, 2);
  7.     lcd.print("s");
  8.     delay (900);
  9.   }


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.
(#) Ivan93 válasza szili83 hozzászólására (») Dec 19, 2016 /
 
Szia! Az első setCursor előtt töröld le a teljes kijelzőt, vagy azt a részt ahová írni fogsz.
(#) szili83 válasza Ivan93 hozzászólására (») Dec 19, 2016 /
 
Egy rész hogyan lehet törölni? Azaz egy sort például?
(#) Ivan93 válasza szili83 hozzászólására (») Dec 19, 2016 /
 
Szerintem csak úgy, hogy beleírsz x darab szóközt.
(#) szili83 válasza Ivan93 hozzászólására (») Dec 19, 2016 /
 
Akkor jó, mert én is úgy csináltam, azt hittem van sortörlési parancs, de így is jó.

KÖSZÖNÖM!
(#) kapu48 válasza szili83 hozzászólására (») Dec 19, 2016 / 1
 
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
(#) vyky válasza kapu48 hozzászólására (») Dec 19, 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.
(#) janikukac hozzászólása Dec 21, 2016 /
 
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.
(#) Hp41C válasza Hp41C hozzászólására (») Dec 21, 2016 /
 
Lehet.
(#) csatti2 válasza janikukac hozzászólására (») Dec 22, 2016 /
 
É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
(#) gerry hozzászólása Dec 24, 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!
(#) killbill válasza gerry hozzászólására (») Dec 24, 2016 /
 
Milyen EPROM, hany lab vezerli?
(#) gerry válasza killbill hozzászólására (») Dec 24, 2016 /
 
Az eprom 27c512 és 3 lábbal (A13, A14, A15) kapcsolódik a 2313-as PB5,6,7-es lábakra.
(#) Sick-Bastard válasza gerry hozzászólására (») Dec 24, 2016 /
 
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?
(#) gerry válasza Sick-Bastard hozzászólására (») Dec 24, 2016 /
 
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á?
(#) killbill válasza gerry hozzászólására (») Dec 24, 2016 /
 
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.
Következő: »»   755 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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