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
Sziasztok!
Jelenleg építgetem Topi AVR-es Akkutöltőjét Már majdnem minden kész, de én csak 2 cellát töltenék vele.. Azt nem tudom hogy az AVR programján módosítani kell e a leírtakon kívül? Vagy az osztó ellenállásokat (R2, R5) kell megváltoztatni? Ha ezt mekkorára? Bocsi hogy ezt is ide írtam de tudomásom szerint nincsen ennek a töltőnek külön topicja.. Üdv! Köszönöm!
Üdv!
Szeretnék létrehozni egy potival állítható időzítőt, de valahogy nem megy. Atmega8-at használom a leggyakrabban. Csakhogy nem igazán akar működni. Készítettem egy külön tesztprogramot is rá. A tápfeszültség megadásának pillanatában tökéletes, és jól jelzi ki az értéket, de utána nem reagál. Szerintem valamit rosszul értelmeztem adatlapból. Kérnék egy kis segítséget a tapasztaltabbaktól! Köszönöm!
Bocsi, lemaradt: az analóg-digital konverter az amivel szenvedek!
Hali!
C-hez nem értek. Kiválasztod, hogy melyik csatornán akarod mérni a jelet ? Beállítod, hogy mi legyen a referencia ? Módbeállítás is megvan ? ( gondolok arra, hogy freerun,interrupt engedélyezés ?) Globális interrupt engelyezve van ? Kiborg avrbeginners.net -en találsz egy jól kommentezett leírást, igaz hogy ASM-hez, de a kommentből tudsz fordítani
Az volt a gubanc, hogy bit szinten kiválasztottam, hogy melyikről akarom leolvasni az értéket, viszont a programban már másikat jelöltem meg.
Köszönöm!
Sajnos még mindig szenvedek az időzítéses programmal.
Cél: potival állítható legyen az időzítés. Jelenlegi állás: poti a táp és a föld között van, ADC működik, időzítést is állítja (azt, hogy a 16 bites időzítő meddig számoljon) Jelenlegi hiba: poti tekerésére azt csinálja amit várok tőle, csakhogy 4-szer is: Mintha 4 fordulatot tenne meg, azaz a poti negyedét tudom csak használni. Külön programban képes jól működni az ADC, így a segítségeteket kérném, hogy mit hol ronthattam el megint, vagy ha van egyszerűbb megoldásotok, akkor várom szeretettel. Köszönöm!
Hali!
Azt ki tudom nézni a programodból, hogy az ADLAR bitet 0-ban hagyod. Ekkor ADCH ban 2 bit, ADCL ben 8 bit, így jön ki a 10 bitnyi pontosság. Ha ADLAR =1 akkor ADCH 8 bit, ADCL 2 bit. Eddig nekem elég volt a 8 bit pontosság, így én csak az ADCH-t olvasom ki, ADLAR = 1 mellett. Hátha segít. Próbáld ki, hogy adlar = 1. Tudsz debugolni ? Ha igen, tegyél be a break pointot a megszakítás végére, és akkor rögtön látni fogod, hogy milyen értékkel térne vissza. Üdv Kiborg
Hy! ADLAR-t próbáltam, én is gondoltam erre a 8+2 bites elrendezésből adódó problémára, viszont ha ADLAR=1, akkor abszolút semmit nem csinál. Ennek a uProcinak van még két darab 8 bites ADC-je, azzal is próbáltam, és sajna azzal is ugyanez a helyzet.
Viszont a külön ADC-re írt program működik, így lehet hogy a logikát rontom el, esetleg valahol valami túlcsordul, és emiatt látszik az, hogy 4-szer ismétlődnek a poti állásai, csakhogy sajna erre még nem jöttem rá, hogy hol lehetne. Debuggolást még nem csináltam, Avr Studio 4-ben lehet? Szerk: Lehet debuggolni, de nem tudom hogy melyik melyik regiszter, hogyan tudom hogy melyik az adc, vagy pl. a b változóm?
Mivel programozol ?
Meg milyen uC-t ? Én mega16-t használok és ott JTAG-on programozom. Igaz, hogy lefoglal 4 lábat (ez néha nagy hátrány), de cserébe lépésenként tudom nézni, hogy hogyan módosulnak a uC regiszterei. Ha jól emlékszem mega8-at használsz ? Az nem tudja a JTAG-t. A legkisebb a mega16 (ezért erre esett a választásom tanuló procinak) Üdv Kiborg
Jaja :yes:
Atmega8, mert olcsó, van belőle most már rengeteg itthon, lábszáma bőven elég, és Topi AVR-ISP-jével programozom. Debuggoláson még soha nem törtem a fejemet, mert a logikáját átlátom egy ilyen programnak (még), max ezekkel van bajom, hogy egyszer működik valami, aztán meg nem, de ez is általában az én hibám szokott lenni, pl. bithiba, lefelejtett beállítás. De most ezzel elakadtam. Tervezem, hogy nagyobbra váltok, de egyenlőre még maradok ennél, mert sokmindent nem próbáltam még. Szerintem ezt az időzítést átrakom dip kapcsolókra, azzal biztos hogy működik, csak sok lábat emészt fel, de mint látható volt, nem kell sok láb nekem most kimenetre. Legközelebbi dolog amibe belevágok, az az I2C vagy SPI kommunikáció. Ez majd egy főiskolás projektbe is kelleni fog. Ebben tudsz majd segíteni? Köszönöm! Most nézem, hogy mega16-nak milyen kis sexy praktikus lábkiosztása van, csábító
Igazából én is ismerkedem a procival, ezt-azt már csináltam.
Segíteni szivesen segítek, ha tudok. Bár az a baj, hogy én nem értek C-hez. Csak ASM-ben programozok. Árak: ATMEGA8-16PU 8-Bit AVR, 8K Flash, DIP 450 Ft ATMEGA16-16PU 8-Bit AVR, 16K Flash, DIP 810 Ft Igaz, kétszer drágább. Cserébe kétszer akkora tárhely, több lábszám,kicsivel több periféria és számomra a felbecsülhetetlen: JTAG! Itt volt egy cikk, ahol egy mobiltelefon USB-s adatkábelét alakították át egy modemhez. Én ezt a kábelt a JTAG-omra adoptáltam, így van egy USB-s JTAG-om, amit már laptopon is tudok használni, nincs szükségem soros-portra. Nem is feltétlenül az elvvel van baj, hanem, hogy te elgondolod, hogy egy-egy utasítás mit csinál és végül kiderül, hogy nem is azt csinálja, nem úgy csinálja amit/ahogy te gondoltad. A megszakítások tudnak belekeverni a dolgokba. pl: döntések/ugrások összehasonlítások alapján történik. Ha megvagy az összehasonlítással, és jönne a döntés/ugrás és PONT akkor jön egy interrupt, ami módosítja az SREG-et, a megszakítás után visszatéréskor már nem jó/nem az eredeti feltétel alapján történik az ugrás. Sok galibát okozott már nekem ez a dolog és elég nehéz rájönni. Üdv Kiborg
Sziasztok!
Egy TRULY MSC-C164DYLY-2N 4x16 karakteru (adatlap) hd kompatibilis kijelzot probalok meghajtani a gtk fele driverrel. Atmega32-ot hasznalok, a programozo pedig STK500-as. Amint felprogramozom az LCD mind a 4 sora izzik(sotet) es mast nem mutat. probalkoztam a delay es toggle_e fuggvenyekben allitgatni az idoket de semmi valtozas. Mit nem csinalok jol? Idézet: „Amint felprogramozom az LCD mind a 4 sora izzik(sotet) es mast nem mutat. probalkoztam a delay es toggle_e fuggvenyekben allitgatni az idoket de semmi valtozas.” Probaltad allitani a kontrasztot? Lehet ott van amit szeretnel csak tul eros a kontraszt es igy minden pont feketenek latszik...
igen, potmeterrel allitom a kontrasztot, igy ez kizarva.
Sziasztok!
Szeretnék megtanulni AVR-eket programozni. Egy AVR STAMP, 1.3F USB 3.3V starter kitet néztem ki (EPOSZ-féle), úgy gondolom kezdésnek ez jó lesz. Szerintetek is megfelel ez? Illetve van olyan aki ilyet, vagy hasonlót használ s tud majd nekem segíteni a tanulásban?
Sziasztok,
Ez az uj ATtiny10 egeszen megmozgatta a fantaziam. Ez valoban egy jo lepes volt az Atmeltol. A PIC-ek ilyen kis meretben ugyan mar 5 eve a piacon vannak, azonban az csak a baseline core-t tartalmazza, ebben viszont benne van a szokvanyos AVR core, igaz csak 16 regiszterrel, viszont interruptokkal es 16 bites timerrel.
És sajnos egy újabb TPI eljárással programozható, amit se a Dragon, se az mkII nem támogat. Tehát emellé újabb problémát kapsz, a programozást.
6 vagy 8 láb... ez már szerintem olyan mindegy, nem ?
Mit nyersz azzal, hogy kettővel kevesebb a lábszám ? Kiborg
1. ez egy SOT23 tokozasu cucc, ennel kisebbet ebben a kategoriaban mar nem lehet talalni.
2. Az ar -- nyilvan egy hobby alkalmazasra tok mindegy, azonban mikor 100ezres nagysagrendben gyartasz ott tipikusan mar minden filler szamit. A PIC10F es az ATtiny10 olyan 38 centes nagysagrendben vannak, mig a 8 labuak 50-60. UI: Nezd meg az oldalamat, az a mutyurke ott a panel kozepen az egy PIC10F. A 2x6-os 'normal' 0.1" csatlakozo egy batar a chip-hez kepest
Sziasztok!
Egy atmega128-as projektet valósítok éppen meg és annyi lenne a kérdésem, hogy miképpen kell a VCC, AVCC, AREF lábakat a tápra csatlakozni? (ezzel a procival még nem volt dolgom) A netről már letöltöttem egy-két rajzot, de mindegyik más és más módon rajzolja. Köszönöm!
Ugyanúgy, mint a többinél.
Én így szoktam: VCC - direkt +5V AVCC,AREF összekötve, és ellenállásal felhúzva tápfeszre és szűrőkondi a föld és a közös pont közé. Eddig megfelelt általános célra jó. De ha specifikusat akarsz, akkor természetesen lehet módosítani(pl ha nem 5V-t akarsz referenciának). Üdv Kiborg
ATTiny45-öt szeretnék üzemeltetni 2db 3V-os CR2016-os elemről. (sajnos nincs itthon új és most a 3db sorba kötve 5.5V-ot produkál ami pont határeset az adatlap szerint).
Ha esetleg 6V-os kap az mekkora probléma? (azt már kiderítettem, hogy szinte érzéketlen a taposásra, földbe elásásra és fűteni is jól lehet vele egy darabig ).
Először is: nézd meg az adatlapot! Az absolute maximum ratings-nél le van biztos írva, hogy a Vdd értéke mennyi lehet, ha jól tévedek, 7V körül szokott lenni. Addig az értékig nem fog tönkremenni az IC, viszont garantáltan jól az adatlapban megadott határok között fog működni. Ez lehet (csak hasra ütök) pl. 2-5.5V, azaz 6V-nál már kiesik a garantált működési tartományból, de nem megy tönkre. Több mint valószínű, hogy hibátlanul fog egyébként dolgozni, csak ha valamiért mégsem, akkor nem szabad csodálkozni, és nem lehet nyaggatni a gyártót, hogy miért nem. Mellesleg a CR2016 szerintem egyáltalán nem képes akkora áramot leadni, amitől károsodhatna egy AVR.
Én "jobb a békesség" címszóval ilyen esetekben be szoktam tenni egy Si diódát a tápágba, akkor a 6V máris 5.4V körülire leesik, ami meg már benne van mindenféle katalógustartományban. Vagy lehet használni pl. a Microchip nagyon jó kis low-drop stabilizátorait, én az MCP1702 3.3V-os verzióját használtam már ilyen helyen, akkor a telep merülésétől függetlenül elég stabil marad a tápfeszültség is.
Köszönöm akkor jól értemeztem az adalapot.
Nekem elég annyi, ha nem megy tönkre, de majd kiderül, hogy két új elemmel mekkora feszt. érek el. Lehet nem is tudja átlépni az 5.5 V-ot. Az adatlapban én is kerestem, de amit néztem abban sajnos nem szerepelt csak annyi, hogy 2,7-5,5 V-ig lehet ezért is voltam bizonytalan. "Mellesleg a CR2016 szerintem egyáltalán nem képes akkora áramot leadni, amitől károsodhatna egy AVR" Ezt hogy érted? Nem értetlenkedni akarok csak most tettem fel egy kérdést ezzel kapcsolatban ami kiverte a biztosítékot a kezdők topicjában.
Szerintem bármilyen aksit/elemet zárunk rövidre vagy rövidzár közeli terhelésnek tesszük ki, akkor is képes nagy áramot produkálni, DE csak rövid ideig a méretéből adódóan. Akkora áramot meg biztos tud, hogy egy AVR tönkremenjen.
Üdv Kiborg Idézet: „"Mellesleg a CR2016 szerintem egyáltalán nem képes akkora áramot leadni, amitől károsodhatna egy AVR" Ezt hogy érted? Nem értetlenkedni akarok csak most tettem fel egy kérdést ezzel kapcsolatban ami kiverte a biztosítékot a kezdők topicjában.” Minden elemnek es akksinak megvan a sajat belso ellenallasa. Gyakorlatilag ez hatarozza meg, hogy mekkora aramot tud maximalisan leadni.
Értem és ezt az értéket ki lehet valahogy deríteni? Vagy nagyon változó ez az adat?
Mert ha ki lehetne akkor gondolom meg lehetne tudni mekkora a maximum amit le tud adni.
Igen, pl. kis értékű ellenállással (pártíz ohm) megterhelve megméred a kapocsfeszültséget. Innen már csak Ohm törvényét kell használni és ki lehet számolni a belső ellenállás értékét is.
Egyébként rákerestem gugliban, belső ellenállást nem, de egyéb érdekes adatokat azért lehet megtudni a CR2016-ról. Pl. hogy a normál, folyamatos kisütési árama 200uA és a maximális folyamatos 3.5mA, az egész cella 80mAh kapacitású. Nem tudom, milyen felhasználásra tervezted az AVR-t, de ezek elég kicsi számok, érdemes figyelni erre is. Bővebben: Link
Köszönöm, hogy utánanéztél én egyszer elkezdtem, de valószínűleg rosszul kerestem.
Helyzetjelző fénynek kellett folyamatosan 7mA-t vesz le (ez az AVR waitms-ben) és amikor villan akkor kb 40mA-t. Élettartamra jó mert 100Ft/db és jó sok repülést kibír. (2 óra repülés az legalább 3-4 nap) |
Bejelentkezés
Hirdetés |