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
Hű, köszi hogy szóltál, programozó csatlakozó az áramkörbe lesz integrálva, sokat bosszankodtam volna emiatt...
Tudom, ez csak egy apróság. Egyébként a legtöbb esetben 10k-t alkalmaznak felhúzü ellenállásként,
és nem csak a reset, hanem rendes portra kötött nyomógombos megoldásoknál is. Kisebb áramköröknél még ezt is le szokták hagyni, elég a belső felhúzó ellenállást(~47k) beállítani.
Közben találtam egy teljesen más ENC28J60 libary-t. Bővebben: Link
Érdekessége, hogy a WizNet chippel szerelt panelhez hasonlóan, itt is bejön az egyszerűbb függvények sora, mint pl.:
És az igazán ficsőrös benne az, hogy szintaktikailag megegyzik a használata a Serial.print utasítással, így amit sorosra ki tudok iratni (lásd korábban byte alapú adat HEX formában), azt ide is:
Ilyenek összetákolása után pedig (Zsom Gyula után szabadon) egyenesen megkönnyezi az ember Ezt ilyen egyszerűen is lehet, ráadásul lebegőpontos értéket is zokszó nélkül kiprintel negatív előjellel is:
Az egész ethernek kezelés néhány sor, a teljes lefordított kód szűk 1 kbyte-tal lett nagyobb (13.5->14.5k), mely csökkenthető még, a Dallas include-ra nincs nagy szükség, onewire modullal is 1:1 megoldható. Ha hamarabb rátalálok, nem szívok (és nem tanulok) emmyit az elmúlt 3-4 nap alatt
Byte tomb char tombbe alakitasahoz nezd meg a stdlib.h -t. Ott talalsz egy itoa() fuggvenyt.
Köszi megnézem, bár google szerint elég necces a téma, mert ráadásul a byte tartalma csak HEX formában értelmezhető az ember számára, tehát 8 byte-ot 16 karakteren tudom csak letároln
Jájj de imádtam az Öreget!
Nyamanyama
Sziasztok
csatlakoztam hozzatok mint AVR használó megvagyok vele elégedve.Csak pár kérdésem lenne első: Error Settings USBASP ISP Clock ez mitöl lehet?? (a program rairodik ettöl független meg minden) de nem tudom szabalyozni a sebesseget a Khz elvileg 80000 ra kene tennem de nem tudom mert nem fer hozza a Clock hoz ezek szerint Attiny45 - AVR Studio 6 ban irom a programot es Khazama AVR Programerrel egetem ra. elöre is köszönöm a segitséget.
Mivel nem kaptál választ, ezért javaslom, hogy kérdezd attól akitől vetted. Biztosan tud valamit erre mondani neked.
Szerintem külföldről vehette, normális ember itthon nem gyárt USBASP-t...
Sziasztok!
ATmega16-ra írom a következő kódot:
AVRStudio-t használok, feltelepítettem a WinAVR-t. Fordításkor a következő hibát kapom: ../tpanel.c: In function 'Konfig10bitADC': ../tpanel.c:72: error: 'ADATE' undeclared (first use in this function) ../tpanel.c:72: error: (Each undeclared identifier is reported only once ../tpanel.c:72: error: for each function it appears in.) Ez a programrész egyszer már működött, nem tudom, hogy most miért nem. Tudtok segíteni? Valamit nem include-oltam? Vagy valamilyen könyvtár hiányzik? Előre is köszönöm!
Közben rájöttem, elég banális hiba volt.
A Project->Configuration Optionsben rossz eszköz volt beállítva. Bocs...
MI a baj az USBASP vel? szerintem tök korrekt kis kütyü csak ez az egy hibaja hogy a CLOCK ot nem tudom allitani vagy a bekötes rosz nem tudom de legalabb müködik amire kell nekem.
---EDIT---- Valaki tudna segiteni egy kis kodreszlettel? szeretek egy Csipogo hangot ellöallitani egy Piezo val ami eprcenkent csipog es egy ledet ami szinten villog külön mind a 2 meg van de hogyan tudnam egybe gyurni?? a kod meg talalhato a AVR nyolclabbal cimü leirasban a Csipogo keszites. csak ott sajna a led nem villog hanem vilagit meg kikapcsol. A hozzászólás módosítva: Szept 2, 2012
En azt hittem meg szeretned tanulni az AVR programozasat. Ha igy van, akkor kezdd el modositgatni azt a programot amit abban a nyolc labu cikkben talaltal, es ha elakadsz, akkor tudunk segiteni. De megirni helyetted nem lenne ertelme, mert akkor egyreszt nem tanulod meg masreszt minden alkalommal ha valami mast szeretnel a programodba, akkor ujra meg kell majd kerj minket, hogy irjuk meg helyetted -- mi pedig ezt nem szeretnenk
eabaj hogy elakadtam benne.
tul bonyolult. a ledet megoldottam nagyabol de a dallamot nem tudtam kivenni es valamivel egyszerübb re gondoltam nem ien bonyolultra :/ amit meg neten talaltam egy külön .h filebol olvasta be a dallamot de nekem csak csipogas kene :/ probaltam modositani de hiaba adtam meg a labot amin csipogna semmi sem törtent vagy ERROR :/ probaltam azt is hogy külön .h filebol beolvasatni vagy valami de error . Programozo AVR Studio 6 - Égető Khazama AVR - Attiny45 20PU A hozzászólás módosítva: Szept 3, 2012
En azt javasolnam, hogy a tanulasi fazisban ne probalj meg egyszerre tobb dolgot megerteni, es, hogy kezdd az alapoknal, ne rogton bonyolultabb dologkkal. Csecsemo sem rogton gatfutassal kezdi, hanem elubb hasrol hatra, majd hatrol hasra fordul, aztan elkezdi negykezlab hintaztatni magat, majd kuszik hatra meg elore is, szoval jo par fazison atmegy mire egyaltalan felall, es akkor meg hol van a futas kozbeni ugralgatasoktol! De ha rogton a vegen kezded akkor szinte torvenyszeru a sikertelenseg!
A hozzászólás módosítva: Szept 3, 2012
külön külön megtudom irni ez a vicces hogy ha egybe szeretnem tenni nem tom h kene na mind1 akkormeg annyit kerdeznek hogy LED nel lehet definalni hogy off-on mast is lehet?
pl: #define C4_ON() PORTB |= (1< a csipogast is lehet igy megoldani? vagy azt kimondottan kodreszbe kell irni?>>>>
Nem teljesen latom a kododat, mert valamiert ugy tunik a HE levagta -- rakatintottal a Kod gombra alul es ugy tetted be?
Na mindegy, ha jol sejtem mit csinaltal akkor az mukodhet igen. De ezek elemi muveletek. A csipogas is es a LED villogtatas is idozites vegeredmenyeben. A csipogasnak hallhato frekvenciaval ki-be kapcsolgatod a port labat ami egy vegtranyo segitsegevel egy piezora vagy hangszorora van kotve. A LED-nel meg ennel joval lassabban kell villogtatnod. Pszeudo koddal a csipogas valahogy igy nezhet ki:
Ugyanez LED villogtatasnal:
Remelem erzekelheto a ketto kozotti eros osszefugges? Namost a kettot osszetenni sem bonyolultabb, csupan a LED idozitesebe kellene valahogy a csipogast bele izzitani, valahogy igy:
A CSIPOGAS() makro vagy fuggveny lehet a fentebb leirt csipogo algoritmus. Ugye abban 100*2*1ms az idozites, azaz 200ms -- ez a 10Hz-hez kepest (100ms) ketszer hosszabb ideig tart. Tehat ha ez nem tetszik akkor ott a 100-at leveheted 50-re, avagy a frekvenciat megemelheted, tehat a varakozast 1ms-rol lecsokkented 500us -re amitol magasabb hangot fogsz hallani. Hangsulyozom, hogy ez a megoldas annyira "baba hasrafordulos eset", hogy a korabbi absztrakcional maradjak, hogy ezt csak tanulasra javasolnam -- hiszan ahogy mar feszegettuk a LED pislogasi ideje tul sok mindentol fog fuggeni, nehez jol beloni egy ilyet, es ha kesobb valtoztatni kell, akkor nehez karban tartani. De most egyenlore remelem megteszi, es ha ez megy, akkor nezegethetned a billentyuzet kezelest mielott megszakiasokkal folytatnad. A hozzászólás módosítva: Szept 3, 2012
En pedig arra kernelek meg, hogy hasznalj a mondataidban irasjeleket, illetve nagybetuket. Ennyi erofeszitest tan megerdemlunk toled, hogyha mar segitsegere szamitasz tolunk. Koszonom!
Szevasztok!!! Kérdésem a következő lenne: STK200-as http://blog.savel.org/stuff/stk200.png programozóval lehet Attiny45-öst programozni??
Kérlek áruld el nekünk, hogy miért nem tudsz rákeresni erre neten?
Rákerestem, de nem kaptam SZÁMOMRA egyértelmű választ sehol... ezért tettem fel itt a kérdést, gondolhattad volna, hogy nem jövök minden kis aprósággal, előbb rákeresek és ha nem hoz eredményt akkor jön a fórum....
Hát pedig hidd el, nem egy ember esik ide be, mert nem képes használni a keresőt.
Íme:http://lmgtfy.com/?q=stk200+attiny45 Az első két találat szerintem eléggé egyértelmű. A harmadik nem olyan egyértelmű, ellenben a negyedik találat konklúziója igencsak az. A hozzászólás módosítva: Szept 3, 2012
Bocsánatot kérek és figyelni fogok rá.
Köszönöm szépen a segitséget este írok, hogy sikerül-e.
Sziasztok
Ha analóg jelet szeretnék beolvasni és a VREF-nek a belső 5V-os VCC-t választom, akkor az avr-től kapott ADC értéket a következő egyenlettel alakítom át? 5/1024 *ADCout Az így maximálisan kapható 1023-as érték 5 [V] / 1024 * 1023 = 4,9951171875 V ? Melynek magyarázata az, hogy az 0-1023-ig tudja 10 biten felbontani a VREF-et és folyamatos közelítéssel összehasonlítani a bemenő jellel és legutolsó (1023) értéket rápakolva már nem tudja összemérni a VREF-fel, mert túlcsordulna? Egy visszaigazolást szeretnék kérni, mert több helyen (szerintem tévesen) 1024 helyett 1023-mal osztják le a VREF-et, mert szerintük így az 5V tényleg 5V kiértékelés után is. Megfeledkezve arról, hogyha VREF alatti feszültséget mérnek, egy bitnyi hibát bevittek. Előre is köszönöm.
Sziasztok!
Egy fejlámpa fejlesztésébe fogtam és van egy kis problémám. A mellékelt kapcsolást két power leddel elkészítettem, és a mellékelt kóddal hajtanám meg. Szimulátorban jól is megy, viszont mikor összeépítettem nem hajlandó megfelelően működni a két led nem világít egyszerre. Ha bekapcsolom az egyik ledet és utána lenyomom a másik ledhez tartozó nyomógombot akkor csak villan az eddig világító led és másikkal nem történik semmi. A kapcsolást úgy csináltam meg hogy elem helyett egy tápegységet használtam és groundokat mind a tápegység negatív ágához kapcsoltam. Szerintetek mi lehet a hiba?
Először is a belső referencia 2,56V. Amúgy olvasd el ez: http://www.hobbielektronika.hu/cikkek/will-i_v20_robotika_es_avr_ke...2.html
0-1023 az pontosan 1024 bit. Ha tévedek akkor elnézést! De Google-be bepötyögve mindenre ott a válasz is: http://www.google.hu/search?client=opera&rls=hu&q=avr+adc&sourceid=...uggest A hozzászólás módosítva: Szept 3, 2012
Igen, hat ha bele gondolsz, a max ertek amit kiolvasol az ugye 1023. Ez lesz a maximalisan merheto feszulyseg, jelen esetben 5V. Hogy hogyan kapod meg a szamot?
Ezzel csak annyi a gond, hogy elobb kapsz egy 0-1 erteket, amit majd felszorzol a meres tartomannyal. Ehhez pedig float kell. Hogy elkeruljuk probalkozhatunk ezzel is:
Ezzel meg az a baj, hogy ha nem float-okat hasznalsz, akkor pontatlan lehet a dolog, meghozza meglehetosen pontatlan (1023 / 5 = 204.6, tehat kerdes 204-re vagy 205-re szeretned-e kerekiteni ezt a szamot... 205 nekem szimpatikusabb, de igy is 4.99 -et kapsz ami neked szepen 4-re le lesz vagva, tehat nem vagy ki a bilibol)
Na ez mar jo, pontosan 5-ot kapsz ha 1023 a mert ertek (mily meglepo, igaz? ) Azonban mivel nem float-ot hasznalsz a tort resz igy is elveszik. Ha elegendo egyetlen tizedes, akkor lehetne igy is csinalni:
azaz
Akkor 1023 eseten 50-et, 511 eseten 25-ot kapsz eredmenyul -- kijelzes kerdese, hogy ebbol 5.0-t ill 2.5-ot kapj... Ezt esetleg optimalizalhatod:
meg igy is talan eleg pontos az eredmeny... Ha ket tizedes kell, akkor pedig:
Ami mar eleg pontatlan lesz, de az elonye, hogy optimalizalhato:
Ami persze 511 -et ill 255-ot ad 5 ill 2.5 eseten. Tehat nem pontos, de kompenzalhato:
Valoszinuleg meg igy is joval gyorsabb es kisebb kodot kapsz, mintha float-okkal szamolnal.
Üdvözletem mindenkinek.
Történt egy apró galiba.Konkrétan szegény AVR -emre (Attiny45 re egy Fuse and Lock ot nyomtam) de nem tudta Írni. gondoltam semmise történt mert akk nem error lett volna.Hát de nem sajna most nem tudom kiolvasni az ID jét se írni rá.Kuka az egész Chipem?Le ellenőriztem a kábeleket minden a helyén van. csatoltam a hibát is hátha valaki tud segiteni. ------------------------Új Kérdés------------ Előbb nem rég feltettem egy kérdés hogyan tudnám szinkronba hozni a Ledet és a csipogást. Kaptam egy választ és próbáltam felhasználni.Erre jutottam de nekem úgy kéne hogy percenként majd 5 perc után egyre gyorsabban. ha kiveszem az IF,Else függvényt részt akkor hogy tudom megadni hogy a csipogás az adott lábon jöjjön ki? akárhogy átírtam kivettem beraktam mindig vagy hiba fordításnál vagy nem működött. Mielőtt valaki rosszra gondolna egy Airsoft Játékra készíteném-e szerkezetet. -----EDIT------ Attiny45 helyett a Attiny13 megfelel? ilyen kisseb dolgokra? bar aza 300ft nem szamit sokat nekem csak megis ha veletlen elfüstöl miattam akkor olcsobb a potolasa (kivéve ha feltudom eleszteni szegeny Attiny45 ömet) elöre is köszönöm a segitséget.
A hozzászólás módosítva: Szept 3, 2012
Ha lockoltad, akkor búcsút inthetsz neki. Ha csak a CLOCK-ot állítottad volna akkor van még remény, de így már nem, mert hardveresen lockolja saját magát.
Ha azt szeretnéd, hogy egyre gyorsabb legyen, akkor a végtelen ciklusban a delayek helyére egy iterációval felszorzott értéket tegyél. Attiny13 egy végtelenül lecsupaszított jószág. Ha 1 kB ROM-ba beleférsz, akkor oké. Kérlek mondd, hogy még nem érettségiztél le! |
Bejelentkezés
Hirdetés |