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
Belső órajelről megy. Zárlat nincs már 2X végigmértem mindent. Másik uc-vel is ezt csinálja pedig az is új.
Akkor rakj fel sima villogó programot, és teszteld. Nézd meg, hogy mikor nem villog a LED-ed.
Igen most a programban keresem a hibát, az a vicc hogy ez is működött eddig a próbapanelen, most összeforrasztgatva meg nem megy.
Megvan hol akad meg a kód, amikor SPI-on adatokat küldenék a rádiós adóvevőnek.
A reset lábat ha rövid időre földre zárom akkor elindul, de ez így nem normális...
Úgy néz ki a DC DC konverter környékén kell keresgélni. A program elejébe tettem egy sec várakozást mielőtt adatokat küldözgetnék a rádiónak és most megy, nem akad meg, de csak az avr égetőről tápolva (ez ugyebár a DC DC konverter mögött van). Ha elemről menetném a DC DC konverterről akkor nem megy. 9V-os elemről nem illik konvertert hajtani?
Miért ne lehetne? Viszont az nem nagy segítség, hogy DC-DC konverter. Rengeteg fajta létezik. Milyen IC van a tieden? Esetleg valamilyen monolitikus cucc?
Most megy a DC DC-ről is, nem tetszett neki hogy az égető is rá volt dugva meg elemről DC DC-vel is hajtottam volna. Pedig az égető ekkor nem volt USB-ről tápolva csak rá volt dugva a uc-re. Egyébként ez a konverter.Most 2 secet várok mielőtt elkezdeném az adást, megpróbálom ezt lecsökkenteni és megnézem továbbra is működik e.
Valószínűleg túlterhelted. Ezek a pici készre gyártott állítható cuccok sokkal rosszabb hatásfokkal rendelkeznek, mintha te terveznéd meg. A feedback körbe tett potméter is gyakran változó kimeneti feszültséget okozhat különböző terheléseknél. A 9V-os elemből sem lehet őrületes áramokat kifacsarni.
Most úgy vagyok az egésszel hogy kiveszem ezt a konvertert és megy a helyére egy 7805 még ha rosszabb is lesz a hatásfok, de legalább stabilan működjön.
Sziasztok!
Van egy Atmega328p AVR-rel felépített óra, mely órakvarcról megy. Egy olyan jelenség lépett fel, hogy miután tápot adok neki a kvarc rezgése nagyon sokára (~10-15mp) indul el, és utána is nagyon pontatlan, és ha csak megközelítem az ujjammal a kvarcot a rezgés lelassul vagy teljesen le is áll. Hogyan tudnám ezt a problémát megoldani? A panel rezonátorra lett tervezve, így az óra kvarc két lába 5mm távolságra van és a "középső láb" felé testre egy-egy 33pF 0805 kondenzátor van kötve.
Ha van szkópod, akkor érdemes megnézni a kijövő feszültséget. Ha szükséges be lehet rakni egy LC szűrőt és az elsimítja az esetlegesen csúnya kimenetet (szkópon a DC-DC konverter frekvenciája is látszik, ami szükséges az LC méretezéséhez).
Ha hosszútávra szánod, akkor nem érdemes a 7805-el pocsékolni az energiát.
A konverter nem lehet túl gyenge mert szervó motort is hajtok egy ilyennel és gond nélkül elmegy vele! Egyébként kiderült hogy mért megy jól az égető tápjáról és miért csak néha néha megy a konverterről. Itt a ludas, a leg gyengébb láncszem ami megszivatott: Bővebben: Link
![]()
Valóban viszonylag nagy áramot képes kezelni ez az IC (ez nem meglepő, ennél kisebb tokozással is csinálnak 1A+ konverter ICket). A gond az, hogy a külső alkatrészeit is illik a feladathoz méretezni különben a hatásfok hátrányára válik (ami meg melegíti az IC-t, így égse lehet akkora áramot átküldeni rajta).
Ha nem válik be érdemes beszerezni LiPo akkut és step-up konverterrel előállítani az 5V-ot. A legtöbb hobbitávirányító mostanában azt használ. Kisebb kapacitású (a 9V-os elemhez képest így is óriási) példányok kifejezetten baráti áron kaphatóak.
Köszi, utánanézek milyen lehetőségek vannak. Milyen kapacitású és feszültségú LiPo-t érdemes nézni?
A kapacitás az attól függ mennyit eszik a távirányítód (és hány cellás LiPo-t veszel). Amire figyelni kell ha rácuppansz a témára és a hajód is LiPo-val hajtod meg, akkor szerezz be egy LiPo safe bag-et is, amiben az akkukat tárolhatod amikor nem használod őket (ez egy tűzálló zsák, ami a LiPo akkuk óriási energiatárolási képessége miatt lehet érdekes). Ha több cellás akkut veszel, akkor kell venni egy LiPo töltőt is, ami a cellák balanszírozott töltésére szolgál (ez nagyon fontos), illetve karban is tartja az akkukat és nem is engedi túltölteni. A névleges feszültsége a LiPo-nak a cellák számától függ, 4 cellásnál többet ne nagyon vegyél.
Sziasztok!
Tudom, hogy nem AVR téma,de mivel nem találtam C kezdőknek topicot ezért itt kérdezem meg,mert AVR-t programoznék.
A fenti kód arra szolgál, hogy egy-egy gombra egy-egy ledek kapcsol fel és le. Külön külön működik (piros vagy zöld) de ha együtt szeretném használni, akkor nem. Mit csinálok rosszul? A hozzászólás módosítva: Okt 21, 2015
Megoldottam így:
Amikor a while(1) ciklusod először lefut és először vizsgálod benne a buttonWasPressed váltózókat akkor szerinted mennyi az értékük? Te sem tudod igaz?
![]()
Én valami ilyesmit csinálnék, az a két int változó meg nem is kell.
Elvileg összehegesztettem egy AVR109 hexát ATmega168P-re. Fel is töltöttem a hexát az AtmelStudio 7-tel.
Viszont szeretnék valami programot is feltölteni az alkalmazás részre, de az avrdude-ban nem szerepel a 168p csak a sima 168. Bele lehet valahogy írni? Vagy van valami más módja a programozásnak? A hozzászólás módosítva: Okt 21, 2015
Az atmega168 és a 168p között nem találtam az adatlapon eltérést, a feszültségeket leszámítva. Tudomásom szerint használható az avrdude-ban a 168-as beállításaival.
Sziasztok!
a) eset: Kapcsolo 1 és kapcsolo 2 legyen zárt állapotban. CSatlakoztatom az USB-TTL konvertert->behúz a relé-> érzékelem a logikai 0 szintet és bontódik a K2 segédérintkező. Ha lecsatlakoztatom az USB-TTL konvertert, akkor az áramkör átvált akkura. Ekkor a DHT11 szenzorhiba jelenik meg az LCD kijelzőn, pedig a szenzor megkapja a tápot kb 4.1V. b) eset: Rx vagy Tx nincs bekötve. Kapcsolo 1 és kapcsolo 2 legyen zárt állapotban. CSatlakoztatom az USB-TTL konvertert->behúz a relé-> érzékelem a logikai 0 szintet és bontódik a K2 segédérintkező. Ha lecsatlakoztatom az USB-TTL konvertert, akkor az áramkör átvált akkura. Nincs DHT11 szenzorhiba . Miért van szenzorhiba ha Rx és Tx be vannak kötve?
Meg van a hiba, egy 100nF kondi kell közvetlen a szenzorhoz. Így már működik.
![]()
Sziasztok!
Van egy Atmega164PA típusú mikrokontrollerem, amin a timer2-es modult használom fast PWM üzemmódban. Miért lehet az, hogy amikor az OCR2A vagy OCR2B regiszterek 0-ra vannak állítva, akkor a hozzájuk tartozó lábon lévő LED/(közvetett módon LED-ek) nagyon halványan mégis világít(anak)? A timer beállítását ez a 2 sor végzi.
Teszt gyanánt mind az OCR2A, mind az OCR2B regiszterbe fixen beégettem 0-t, és ugyan ez a jelenség volt. (OCR2B invertált, de azon a lábon invertált bemenetű shiftregiszter van, ezért a beírt értéket tekintve kezelhető úgy is, mintha nem lenne invertálva.) A hozzászólás módosítva: Okt 24, 2015
A DDRx regiszterben be vannak állítva kimenetként ezek a lábak?
Igen, mindkettő kimenetre van állítva.
Úgy látom, a Fast PWM mód erre nem lesz jó. Az adatlap ezt írja:
Idézet: „The extreme values for the OCR0A Register represents special cases when generating a PWM waveform output in the fast PWM mode. If the OCR0A is set equal to BOTTOM, the output will be a narrow spike for each MAX+1 timer clock cycle. Setting the OCR0A equal to MAX will result in a constantly high or low output (depending on the polarity of the output set by the COM0A1:0 bits.)” Esetleg próbáld meg a Phase Correct PWM módot, vagy használd invertálva, és BOTTOM helyett MAX-ra állítsd. A hozzászólás módosítva: Okt 24, 2015
Adatlap:
Idézet: „The extreme values for the OCRnx Register represents special cases when generating a PWM waveform output in the fast PWM mode. If the OCRnx is set equal to BOTTOM (0x0000) the output will be a narrow spike for each TOP+1 timer clock cycle. Setting the OCRnx equal to TOP will result in a constant high or low output (depending on the polarity of the output set by the COMnx1:0 bits.)” Fast PWM-nél nem tudsz 0%-os kitöltési tényezőt elérni, csak ha invertált módban használod (de akkor meg a 100%-ot nem tudod elérni). Ha megnézed logikai analizátorral, akkor láthatod, hogy a kitöltési tényező 1/255, nem pedig 0. Megoldás: -amit az előbb írtam, vagy -fázishelyes PWM mód használata (ott nincs ilyen gond), vagy -a láb kikapcsolása, amikor 0-s kitöltési tényezőt akarsz |
Bejelentkezés
Hirdetés |