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
Szia ATtiny!
Már itt tartok a program átszerkesztésével, most ott akadtam el, hogy a kijelzés benn maradt a gombnézegető ciklusban és így gyors lett z egész. Valahogy ki kellene raknom külön és figyelnem a gombok állapotát csak még nem jöttem rá hogy hogyan. Valahogy megszakítással nem boldogulok.
Az optimalizációt vedd le -O0 -ra. Szerintem úgy fordítod a kódot, hogy be van kapcsolva az optimalizáció. Márpedig ez a kód úgy íródott, hogy ki kell kapcsolni.
A projekt beállításoknál. Az opciók között ott van az optimalizáció szintje. Ha jók az emlékeim akkor alapból O1-es szinten van, minden új projektnél.
Fogalmam sincs mik azok a fuse bitek!
Az stk200 leírást olvastam,de még a led villogtatót se sikerült megcsinálnom! Ezért kéne valaki aki megmutatja!
Az adatlapban a "System Clock and Clock Options" fejezetben, le van írva minden.
(most az jön, hogy nem tudsz angolul?!) Lehet kéne már egy cikk erről... elég gyakori kérdés.
Üdv mindenkinek.
Ne haragudjatok meg ha nagyon láma problémával zaklatlak titeket. Próbáltam keresni a fórumon 8na meg gugli), de igazi megoldást nem találtam. Lehet csak azért mert nem tudom mit kellene igazán keresni. Kezdő (nagyon kezdő) vagyok AVR programozásban és nem boldogulok egy mega8-assal. Tudom, hogy a fenti idézet poén, de nekem ezt dobja a gép. Sőt minden olvasásra csak csupa 0xFF jön ki. USB-s AVR ISP programozóm van, opto leválasztással. AVRprog (1.37,1.4) és AVROSP-II .543-al próbáltam. Mindkét progi felismeri és 19600bps-en küldi is át a hex-et, csak vissza már FF jön mindenhonnan. MISO, MOSI és SCK lábakra raktam LED-et 330-as ellenállásonon keresztül, szépen villognak ha megy a program vagy a read, ezek szerint az optocsatolók átviszik a jelet. Nem tudom számít-e, de a MOSI és RESET láb alapból magasan a MISO alacsonyan van, ha rajta van a programozó. Programozás vagy olvasás alatt a RESET alacsony. A fuse/lock biteket nem is tudom állítani mert arra is FF jön vissza egyből. Egyelőre nincs több ötletem, hogy mitől lehet a dolg. Más programozóm nincs így nem tudom kipróbálni. 3db mega8-om van 2-vel próbáltam ki, a 3.-at nem akarom még el..ni, megvárom míg találok valakit aki okosabb a témában. Előre is köszönöm a segítségeteket.
Sziasztok valaki legyen szives megmondani h mi a külömbség az atmega 32-16pi és pu között nem jövök rá .
Köszönöm
Az egyik SMD a másik furatszerelt és max 16MHz-en járnak.
A HQ Elektronik keresőjében meg tudod nézni, hogy melyik az SMD.
Utánna néztem a pi és pu az dip40 nem smd az au smd
PI és PU, a hőmérséklettartományt jelenti. Adatlap kitér rá bővebben.
ok, de mivel a kijelzés a te kódodban multiplexer üzemben van még mindig gyors.
Hát akkor növeld meg a GOMBCIKLUS -t. Valahogy így:
A main elején ezt:
Át kell írni erre:
És végül a define -k között át kell írni ezt:
Valami nagyobb számra. Nagyságrendileg 200...400 -at írnék bele próbaképp. Neked kell kitapasztalnod melyik a kényelmes sebességű gomb kezelés.
Üdv!
Előre elnézést, ha már kérdeztek hasonlót, de nem találtam. Ez valami olyan,h 8 jumperrel lehet majd beállítani egy értéket amit a procinak be kell olvasnia. Atmega 8 lenne a kiválasztott. Az elképzelés az,h a program PC0-ra kirak 5 voltot és ha jumperelve van, akkor PD7-en logikai 1-van. Ezután nagy ellenállású állapotba kapcsol PC0 és PC1-re ad 5 voltot. Megnézi PD7-et. Nagy ellenállásúra kapcsolja PC1-et.... Szóval van erre valami egyszerű módszer,h nagy ellenállásba rakja a kimenetet? Vagy nem tud ilyet? Ha nem akkor lehetne azt,h megfordítani a logikát az ellenállás pedig nem lehúzna, hanem fel és akkor nyitott kollektoros kimenetekkel végig menne minden jumperen,h eldöntse 1 vagy 0. Nyitott kollektoros kimeneteket tud? A lényeg itt 7 db ellenállás megspórolása. Üdv: Márió
Mivel az AVR-ek esetében minden lábra be lehet kapcsolni a beépített felhúzó ellenállást, így semmilyen külső ellenállásra nincs szükség. Szépen be kell konfigurálni a portot bemenetnek és egyidejűleg bekapcsolni a felhúzó ellenállást. Majd ezt az AVR által 5V-ra felhúzott lábat lehet egy jumperrel a földre kötni. Mivel a port bemenetnek van konfigurálva, így könnyedén ki lehet olvasni a láb állapotát, hogy magas vagy alacsony. Egyszerű, mint a faék. Nem kell elbonyolítani.
Valahogy nem értem ezt a megszakítást.
erre a próba kódrészletre ezt a jibát kapom: ../sajatnixi.c:214: error: static declaration of '__vector_4' follows non-static declaration
Szia!
Annyit még hozzátennék, hogy 8 lábon 256 féle állapotot tudsz felvenni! Ha csak 8 különböző beállítható állapot kell, akkor arra elég 3 láb is.
Sziasztok!
Letöltöttem a gtk cikkében szereplő drivert, de kidob fordításkor pár figyelmeztetést. Ezeket figyelmen kívül hagyhatom, vagy nem? Ezeket a hibákat mindet a driverben találta. Idézet: „../simple_driver.c:28: warning: return type defaults to 'int' ../simple_driver.c: In function 'lcd_put_custom_char': ../simple_driver.c:145: warning: initialization discards qualifiers from pointer target type ../simple_driver.c: In function 'lcd_vertical_scroll': ../simple_driver.c:187: warning: initialization discards qualifiers from pointer target type ../simple_driver.c:191: warning: unused variable 'd' ../simple_driver.c: In function 'lcd_putstr': ../simple_driver.c:265: warning: initialization discards qualifiers from pointer target type ../simple_driver.c: In function 'lcd_delay_ms': ../simple_driver.c:33: warning: control reaches end of non-void function ” Akkor most én vagyok a béna, vagy tényleg hibás lenne?
Sziasztok!
Valaki meg tudná mondani, hogy milyen c fordítók és programozó szoftverek léteznek linuxra?
AVR-GCC
Kontrollerlab AVRDUDE Ugyan az a GCC használható, mint windows alatt. Csak WinAVR helyett az eredeti nevét kapta: AVR-GCC... Vagy csomagként gcc-avr. Ez a fordító. Programozó: avrdude. Dragont is kezel, STK-kat is... Kontrollerlab: Sokszor ajánlott IDE. Én jobban szeretem a külön editort.
Üdv mindenkinek!
Van egy kis problémám: adott egy 20 fordulatos poti, és ennek az poziciójának függvényében kellene állítanom egy változót 0...3000 tartományban. Ez csak egy külső hangolás lenne a sw részére. A problémám az, h síma AD-vel nem tudom egyszerűen leolvasni mert ugye az csak 10bites. Szerintetek hogyan lehet ezt orvosolni ezt a problémát Atmega8, vagy Atmega16 van itthon) ? Előre is köszi!
Szoftveresen szorozd meg 3-mal.
Sajnos az nem jó, mert akkor oda a felbontásom.
Ezért van a 20 fordulatos poti, hogy be lehessen lőni a pontos paramétert.
Erre megoldás lehet a gyorsulás elvű léptetés.
Lassú változtatás +- 1, gyors változás +-10. Ez végállásos potméternél elég furcsa lehet, de így még meg tudod valósítani a "lehetetlent". Egyéb módokon nehezebb. 3000 osztást, más módon esetleg mérhetsz oszcillátorral. Csinálhatsz vele egy impulzust, amit teljesen analóg módon állítasz elő. Ha ez az impulzus megfelelően hosszú (pár ms elég) akkor Timer Capture megoldással "bedigitalizálhatod". A timer 16 bites, a "potméter -> impulzus" átalakítód analóg tehát végtelen felbontású. Így akár még 65000-es felbontást is elérhetsz. Kell egy pontos kristály, és mondjuk egy schmitt triggeres oszcillátor. Vagy egy műveleti erősítős, fűrészjeles generátor. (Fűrészjel komparálási szint = potméter állás... Komparátorod kimenete = Potméter állásnak megfelelő kötöltési tényezőjű négyszögjel.)
Hello !
Valakinek nincsenek meg a C programozásban használatos parancsok és azok leírása? Szeretnék elkezdeni programozni de ha nem tudom a parancsokat és azt hogy hogyan kell őket használni addig nem nagyon tudok hozzáállni. A 8 lábbal c. kapcsolásokat már elolvastam és valamit értettem is belőle mivel már programozok PASCALBAN ami a C elődje. Esetleg nem tudtok valami magyar leírást az AVR studio-ban való C programozásra? Esetleg mit javasoltok hogy tervezzek egy konkrét kapcsolást amit szeretnék megépíteni és ahhoz ahogy tanulok úgy írom a programot vagy először a parancsokat magoljam be próbálgassak ilyen LED villogtató programokat írogatni és csak utána álljak neki bonyolultabb programok írásának? A választ és a segítséget előre is köszönöm.
A Pascal nem a C elodje! A Pascal Algol alapu nyelv, a C tulajdonkepp teljesen uj -- azota vannak C szeru nyelvek, mint Java, JavaScript, C++, C# es meg egy valag mas.
Erdemes elolvasni a Kernighan & Ritchie konyvet, az a C alapja. Vagy ha meg tudod szerezni, anno a Petho Adam fele konyv is nagyon jo alapot adott C-bol. Meg biztosan talalsz rengeteg C tutorial-t angolul ha ra googlizol... |
Bejelentkezés
Hirdetés |