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
köszi mindkettőtöknek. leesett hogy maximum mekkora lehet.
és igen ha max 255 akkor az 500 tulcsordulás, vagy nemérti. JÓnagy papírra fel kell írnom a változók méretét. ![]() következő kérdés: " WARNING: FLASH byte addres 0x0011 is 0xFF (should be 0x94(.. FAILED! " azért sem értem mert közben meg jól megy a mit ráraktam az ic-re... ???
Megnéztem. Én igazából összekötném rendesen, mivel ő sima stk200-al programozott és lehet, hogy itt meg nem tetszik az avr studionak valami. Azt a pár vezetéket ideiglenesen is rá lehet forrasztani az IC-re és a programozóról táplálni az áramkört a programozás alatt, nem pedig, ahogy a leírásban van.
Én örülnék a legjobban, ha azt mondhatnám ez volt a baja, de nem. Azaz, hogy valamit csinált, mert mostmár csak 10-ből 2 DeviceID rossz.
A biztonság kedvéért a tápot is átkötöttem az USB-ről a programozóéra, hogy az se zavarja, hogy közben egy számítógép akar hozzá csatlakozni a másikoldalról, ha ez lenne a baja.
Az, hogy "jol mukodik", vagy, hogy "meg eddig nem jott elo a hiba" ket kulonbozo dolog... Sot, ott van meg a "nem venni eszre a hibat" is...
Szia! Köszönöm a segítséget, a hiba a változókban volt DE azért mert a gcc okoskodik és ki optimalizálja a változómat és procceszor regiszterébe tárolja és nem memóriába!
C-ben hogyan lehet 16 bitet kétfelé "szedni"?
Pl.: xy = 0b1010101010101010; Azt szeretném, hogy legyen két új változóm, amiben az xy 16 bitje 8-8 bitben van jelen, így: x = 0b10101010; és y = 0b10101010
Eredmeny: low == 0x34; high == 0x12; Megjegyzes: Ez csak little endian (LSB) tarolasnal mukodik helyesen!
Köszönöm!
Nem tudom milyen a little endian tárolás. ATmega8-ban az SPI-vel egyszerre csak 8 bitet küldhetek el, mert a regiszter maximum csak akkora értéket vehet fel. Azt szeretném megcsinálni, hogy először elküldöm az első 8-at, majd az utolsó 8-at. Pl.:
Így működhet?
Mukodnie kell. Az unsigned-et egyedul, alapbol nem int-nek forditja?
Köszönöm!
De, int-nek fordítja.
Más procinál nem csinál ilyet? Esetleg kivett procira rákötni a programozót és úgy programozni.
![]() Idézet: „Nem tudom milyen a little endian tárolás.” Olvass utana, es lehet akkor a szamabrazolasnak is mint kapcsolodo temanak. Ezek nelkul nagyon nehez a kesobbiekben.
Egy megjegyzest ha szabad: Kodot mindig ugy irdd, hogy az konyen olvashato legyen. Sajnos a C szintaktikaja eleg laza, igy sok felekeppen le lehet benne irni ugyanazt. Ugy is lehet forrast benne irni, hogy kesobb alig lehet megerteni a kodot mit is csinal. Itt pl. nem egyertelmu, hogy a shile egy ures ciklus, ill. hogy a "SPDR = ..." az benne van-e a ciklus magban vagy sincs. Azonkivul egy pontosvesszo hiba es maris hibasan mukodik a programod, holott szintaktikailag helyes marad. Tehat szerencsesebb lenne valahogy igy irni:
Ambar en igy irnam:
Azonkivul ha igy kell neked, akkor erdemesebb a valtozok helyett inkabb makrokat letre hozni, es igy meg olvashatobb lesz a kod:
Tehat igy mar a kodod eleg jol olvashato es karbantarthato... Pl ha a HIGHBYTE vagy LOWBYTE nem jo akkor eleg egyetlen helyen modositani a kodot es az osszes helyen ahol hasznaltad automatan megjavul a kod... Idézet: „Mukodnie kell. Az unsigned-et egyedul, alapbol nem int-nek forditja?” int-nek? Az nem lenne szerencses, mert az int az elojeles, mig az unsigned elojel nelkuli... Vagy arra gondolsz az "unsigned"-et "unsigned int"-nek veszi -- mert arra a valasz igen.
Hello,
Szeretnék 10 bites PWM-et beállítani egy Attiny2313-ason.
Ez így mégsem működik. Valami kimaradt, vagy rossz?
Szia!
10 biteset nem fogsz beállítani, mert csak 8 bites van benne. Az adatlap 75. oldalán láthatod a regiszter címzéseket. Ha megírtad, nullázd a Timer Counter 0-t a regiszterek beállítása után.
Az AVR-es próbapanel ismertetése jól indul, de nekem azért hiányérzetem van, miután a cikk végére értem. A kapcsolási rajz szerintem lehetne egy kicsit precízebb, annak ellenére, hogy a szerző azt írja, ennek nincs jelentőssége. A panelen látható egy rövidzár sorozat ( jumperek ), ami a rajzon nem szerepel és emiatt a kijelző vezérléséhez vagy végigolvassa a cikket a felhasználó, vagy a panelrajzon kibogarássza, hogy a kijelző vezérlőlábai hogyan is kapcsolódnak a mikrovezérlőhöz. Jelenlegi állapotában a cikk arról sem győzött meg, hogy ez egy működőképes eszköz, mivel az életjeleket semmi sem mutatja. Jó lenne látni, hogyan is lehet például egy sor szöveget kiírni az LCD kijelzőre vagy esetleg egy LED-et villogtató kis példaprogram segíthetné a kezdő lépést.
Hello!
Nem biztos hogy értem a -remélem építő- kritikád. A kapcsolási rajznak itt több okból sincs szerepe: egyrészt mert nem lehet megrajzolni ( mindenki úgy drótozza be az adott feladathoz ahogy akarja, másrészt az értékek mindenhol változhatnak, nagyon kevés dolog van amihez ragaszkodni kell, azt viszont részletezem. ) Igen, a kijelző vezérléshez valóban végig kell olvasni a cikket, de nem merült fel bennem hogy az első oldal után akarja valaki megépíteni. Ha használni akarod, hasznos lehet amit írok róla, és akkor nem kell kibogarászni semmit, mert leírtam részletesen. HA végigolvastad a cikket láthattad hogy a végén leírtam hogy készül egy következő írás, ennek a cikknek a folyatása, ahol példákon keresztül bemutatom a működést. És végül: egyáltalán semmiről nem akartalak meggyőzni a cikk megírásakor! Aki úgy gondolja hogy segíthet neki a mikrovezérlők alkalmazásának elsajátításában, az megépíti, vagy átalakítja saját ízlésére, aki pedig nem lát benne fantáziát, az gyakorol máshogy. Üdv: V.Peti
A 110. oldalon lévő táblázatból gondoltam, hogy lehet 10 bites is.
Egy DC motor fordulatszám szabályozásához kellene és a 8 bites nem elég.
Természetesen lehetséges akár 16bites Fast PWM üzemmód az ATtiny2313 -as AVR-el. Az adatlap mindent leír. A sebességre érdemes figyelni, hogy elég lesz-e. Pl. 8Mhz-es belső osc. -ról a 16bites PWM alap frekvenciája 122Hz -re adódik. Ami kb. semmire nem elég. Természetesen a megfelelő TOP érték beállításával lehet csökkenteni a 16 bitet, így meg lehet találni a kompromisszumot a felbontás és a sebesség között.
Üdv!
Problémába ütköztem. Újra. Az 5-ös külső megszakítást próbálom használni atmega128-on. Szimulátorban próbálgattam mert a valóságban nem ment. Az történik,h érzékeli a megszakítást elugrik a címére bebillenti a "megszakitas" változót de amikor az ifhez ér mégse megy bele. Ráviszem a kurzort és írja,h az értéke 1, de nem megy bele. Ha a kezdeti értékére vizsgálok ( if(!megszakitas) ) akkor bemegy. Mintha mégse változna meg... Előre is köszönöm, ha valaki segít! Üdv: Márió
Már nem is tudom hányszor lett leírva itt a fórumban, hogy KELL a volatile előtag a megszakításban használt változók dekralárásához.
Hello.
Kérdés: A "AVR-Doper, USB-s ISP programozó"-n van egy CLK nevü láb a TARGET nevü alkatrészen. Mire szolgál? Ez egy órajel? Lehet használni külsö oszcillátornak, vagy csak akkor van szerepe, ha ic-t éget az ember? peti
Azt össze kell kötni az AVR-el.
Bocs. Nemértem.
Hogy összekötni? Szoftveresen? Hárdveresen?
Helló !
Van az AVR doperen egy csatlakozósor. Amikor valamilyen AVR-t rá akarsz csatlakoztatni a doperre mindig legyen előtted az adott AVR adatlapja melyen megnézheted hogy melyik lábnak mi a neve és arra rácsatlakoztatni a csatlakozósor adott lábát például próbapanelen. Remélem érthető voltam ![]() Sok sikert a kötözgetéshez.
Hali mindeninek végre sikerült összetennem a topi féle programozót és abban szeretném segitségeteket kérni hogy ponyprogban valaki fotoza már le a fuse bitek beálitásait mert ott ugyebár sajna valahogy máséppvan és nem szeretném magam izárni belöle
Az adatlapot elolvasva be tudod állítani őket. Arra figyelj, hogy ha jól emlékszem a Pony Prog-ban a Fuse bitek pont invertálva vannak.
jaja invertálva vannak és ez véget már egy pár avr böl ki is zártam magam azért szeretnék 1 biztosat ami 1000% hogy müködik.
Az a biztos, amit az adatlapból kiolvasol.
Gondolom még nem néztél bele, hogy ne kelljen keresned itt van: http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf A Memory Programming Fuse bit fejezetben találod.
De belenéztem de ponyprog invártálós marhsága végett kértem egy képet róla.
|
Bejelentkezés
Hirdetés |