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
Erre meg olyan hülyeségeket is kiír, hogy 30. hó, holott ki van maszkolva a bcd kódnak a felső 3 digitje...
A 4. sorban lemaradt egy ures zarojel az fx2 utan.
Sziasztok.
Sokat hallottam már főleg a LED mátrixoknál, kockáknál, hogy a kiírandó szöveget- képet, a mikrokontroller EEPROM-jába mentik.Meg hogy azt a program futása közben is lehet változtatni.Nem tudom pontosan, hogy mire lehet használni, meg, hogy hogyan, úgy hogy szeretnék valami magyar nyelvű értelmes cikket vagy valami videót az EEPROM-ok használatáról. Előre is köszönöm.
Ez a pontosítás sem pontosít igazán. Nem látható belőle, hogy saját delayt függvényt vagy a beépítettet hívod meg - ha a beépítettet, akkor milyen a procid órajele, mert ugye a 100ms-ot nem is tudja biztosítani a beépített delay. Ha saját függvényt, arról sem tudni, mi a leghosszabb idő, amire használható, így aztán könnyen előfordulhat, hogy az 50ms-os késleltetés hosszabb lesz, mint a 100ms-os, mert az utóbbi érték már túl nagy, így csonkolás lesz belőle. Ezekről semmit nem írtál, de többféleképpen is el lehet hasalni miattuk.
Valahogy mégis az az érzésem, hogy a sima "make"-en kívül mást nem is használsz, így mivel "make clean" soha nincs, így ki tudja, milyen verziójú fordításokat olvasztasz egymásba...
Sziasztok!
Bascomnal próbálkozom a M88P Interruptal. De nem sikerül elérnem az EIFR regisztert. Szimulátorban jól működik de feltöltve az AVR-be duplán érzékel a prell miatt. Valakinek volt már ilyen problémája? És talált rá megoldást? Köszönöm. Stopbutton0: Waitms Debouncetime Print "Gomb1" Eifr = 1 'nem irja be az 1-t Print Eifr '0 ad eredmyénül Return
Eepromokról azért nem lehet túl sokat mondani.
Egy nem felejtő memória, ahova byte-onként tudsz írni/olvasni. Így tudod használni: Bővebben: Link
Ha az AVR-ek belső EEPROM-járól van szó akkor egy féloldalas cikk lenne belőle. Inkább adok C nyelvű forrást.
Hello!
A könyvtári delay-t használom eddig mindig jól megvoltam vele, hogy pontos volt-e azt le nem mértem de az biztos, hogy ha nagyobb szám volt a paraméter akkor hosszabb volt ha kisebb akkor rövidebb. Egyébként visszavettem időközben 100-ra de az sem segített semmit. Az órajel 12 MHz. Én azt tartom valószínűnek amit Te is mondtál, hogy összekavarodtak nálam a különböző fordítások, szóval inkább újraírom az egészet majd. Sajnos nem minden újrafordításkor használtam a "Make Clean"-t, gondolom kellett volna
Az éjféli válaszom írásakor nem volt energiám előkeresni az ide vágó részt, de Sikolymester megtette helyettem: 262.14 ms/12 ~ 22ms feletti időzítéseknél már csonkolva lesz az általad kívánt érték, pl az 50 ms helyett kb 6 ms lesz az időzítés (mert a 22ms kétszer fér el benne, azaz 2*22 = 44ms - marad 6ms, ezt fogja időzíteni. Az 50 ms-ot úgy időzítheted, hogy ötször hívod meg a delayt 10 ms-os időzítéssel.
Sziasztok!
Nincs köze az epromhoz. External Interrupt Flag Register amivel gondom van. Azért köszönöm segítséget.
Te nézted, hogy kinek válaszolt zombee?
Egyszerűnek tűnik, de sajnos nem ismerem a regisztereket, biteket.
Még annyit javítanék magamon hogy az "EEARL" regiszterbe a címet kell tölteni(0-255),
vagy az "EEAR"-be ha ennél nagyobb EEPROM van(0-65535). Egyébként a legegyszerűbb a GCC könyvtári függvényeket használni:
Sajnos másképpen nem fog menni, minthogy az ember előveszi az adatlapját a mikrokontrollernek, és megnézi mik a lehetőségek.
Vannak platformok, ahol ez nem szükséges. Ilyen pl a java nyelv, vagy a c# és társai. Aki hardver közel programoz, az nem kerülheti ezt el. De ha a válaszoddal arra gondoltál, hogy nyelvi hiányosságaid vannak, akkor viszont markolj fel egy C könyvet és olvasd el.
Sziasztok!
Nemrég sikerült beszereznem STK500 programozót és AVR Duino tesztpanelt kiegészítőkkel. Nem akarok nekiállni a Bascom-nak mert csak fölösleges időtöltés lenne. C -ben szeretném elsajátítani az eszköz programozását. Miért kell hozzá a WinAVR és AVRStudio együtt, ha C-ben programozzuk? Tudnátok segíteni az első lépések megtételében?
[off]
Azt nem mondtam, hogy soha nem fogok uC-hez nyúlni. Most még csak tanulni szeretném és közben bővíteni jelenlegi ismereteim.
A winavr egy jól összeszedett C környezet Windows alá.Az AVRStudio meg debug,letöltő, szekesztőfelületet ad hozzá (4.19 verzio)
Az 5.x AVRStudio beépítve mindent tartalmaz - de túl friss/új. És így nem tudni a hibáit, nyűgjeit még....
A winavr adja a gcc-t (c fordító). Az avrstudio adja a "keretrendszert". Külön is működnek, de winavr nélkül nem tud csak assemblyt fordítani az avrstudio.
Első nekifutásra kicsit zavaros az egész.
Feltettem mind két programot és első ránézésre mindkettővel lehet C-ben fejleszteni. Hogyan kapcsolódik a kettő egymáshoz? Egyenlőre "szűz" IC-t nem szeretnék programozni hanem a tesztpanelre feltölteni a szokásos kezdő progikat. LED Blink, LCD "Hello world!" Bascom-ban ez már sikerül, de mint írtam nekem az zsákutca mert C-t kellene tanulnom.
Jól láttom, hogy a WinAVR fenn kell, hogy legyen, de "használnom" nem kell mert az AVRStudo-ba szerepel a Plugin-ok között a gcc és innentől kezdve már csak a Studio keretrendszere kell nekem?
Idézet: „első ránézésre mindkettővel lehet C-ben fejleszteni” WinAVR tartalmazza a az avrgcc fordítót, ami a C forráskódot varázsolja át hex -re. Az Avrstudio is ezt hívja meg, amikor C-ben programozol benne. Ha nincsen WinAVR a gépeden, akkor az Avrstudio csak assemblyvel működik, mert nem tudja meghívni az avrgcc -t. Avrstudio 5 már tartalmaz C fordítót.
Oké!
Ez a része már tiszta. Most keresgélem, hogy hogyan lehet az ARDIUNO-van (168) használni az AVR Studio 4-et. Egyenlőre vakon tapogatózom.
Hali!
Van egy SPI-s hőmérőm, aminek a maximum feszültsége 6.0VDC, de az ajánlott működési feszültség 1,7-3,8V között van. Akkor hogy is van ez? 5V-ról használhatom vagy sem ? Erről az ICről van szó:MAX31723 Azért kellene 5V,mert van egy VFD is a rendszerben, ami ugyan 12V-s, de a kommunikációja meg 5V-s(az is SPI) és lesz még egy RTC (ami szintén menne 3,3-ról, de tudja az 5V-t is). A vezérlő egy ATMega16A. Üdv Kiborg
Arduinoval nem tudod használni az AVRstudiot.
Vagyis természetesen van rá lehetőség, de nem triviális. Az arduinokon ugyanis van egy bootloader, amivel meg kell etetned az avrstudioban fordított hex-et. Normális esetben ugye megírod arduinora a progit az arduino IDE -ben, majd a benne lévő valamilyen progi egyből feltölti a bootlaoder segítségével a programot az arduino plattformodra. Ezt a progit ami kezelni tudja az arduinokban található bootloadert tudtommal külsőleg is meg lehet hívni. De mivel te említetted, hogy van egy STK500 programozód, így én azt javaslom, hogy felejtsd el, hogy egy arduinot tartasz a kezedben, szépen kösd rá az stk500 programozó lábait és programozd fel az avrstudióból. Ami neked kell az a MISO, MOSI, SCK, Reset, Gnd Vcc lábak.
Hello!
Igazából nem is értem hogy miért ARDUNIO-t vettél ha AVR Studio-ból akarsz rá fejleszteni, és STK500-al programozni. A két eszköz árából már valami jobbfajta AVR fejlesztőpanel is kijön, programozóval. De ha már megvan akkor használd azt: lenni kell rajta egy ISP csatlakozónak, azon keresztül tudod programozni. Ha ugyanott vetted mindkettőt akkor alap. Majd fogsz pár LED-et és nyomógombot, rákötögeted a panelra és már mehet is a móka.
Szia!
Az AVRStudio helyett, mellet kipróbálhatsz más környezetet (IDE) is. Pl.: Az AVR-Project-IDE (Link), támogatja az Arduino-t lib-ekkel és azt hiszem fel is tölti a programot. Szintén az AVRGCC-t használja! Ráadásul van egyéb szerkesztés könnyítő funkciója is, ami a Studióban nincs, viszont nem debuggol. |
Bejelentkezés
Hirdetés |