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
Látom a $hwstack, $swstack, $framesize nem tetszik neki hogy a programban van definiálva, úgyhogy valami régi verziód lehet Bascom-ból. Ebből adódóan lehet más nyűgje is..
Nálam 1.11.9.3reg, tehát a legújabb van, hiba nélkül lefordul. Régebbi verziót most nem rakok vissza.. Kipróbálni nem tudtam(ugye), de elméletileg működnie kell a prociba beégetve mindkét verziónak. Feltéve ha az eredeti működött rendesen.
Annyit még megpróbálhatsz hogy a $hwstack, $swstack, $framesize sorokat kiveszed a programból, és az IDE alatt állítod be. Igaz ezek kb. az alap beállítások..
Anyira nem megy az AVR -ezés ,de probálkozom . Nem tudsz valami jó tanulási lehetőséget , könyvet ,olvasnivalót az alapoktól ,mert hogy olvasgatom a Bascomot az a kérdésekre nem válaszol vissza és nem fejti ki a Bascomon belüli parancsszavakat .
Bascom beépített súgója.
Kifejti... Sőt: www.webforditas.hu es itt a http://avrhelp.mcselec.com/ oldalról az oldal linkjét másolod be... Pl. printre: http://avrhelp.mcselec.com/print.htm
Van valakinek egy egyszerű midi-s kapcsolása amivel egy szintit tudok vezérelni?
Találtam a neten egy csomót, de mind túl van bonyolítva és meghaladja az én tudásom. USB meg mindenfélét építettek bele. Pedig, ha jól láttam csak egy sima soros kapcsolat. Nem szeretném leégetni a drága szintim ezért kéne egy jó kapcsolási rajz és, hogy milyen AVR-el induljak el. (ATTiny45 és ATMEGA8-am van most itthon). A midi kódokat majd kiötlöm, ha már megvan a kapcsolat . (az eredeti terv szerint egy felvevő-lejátszó kis áramkört akarok építeni)
Tudtommal a MIDI áramhurkos soros kommunikáció, ráadásul optocsatolókkal el szokták választani az eszközöket egymástól. Emellett még a soros kommunikációban nem elterjedt, 31250 bps sebességet alkalmazza, amúgy az UART-ok használhatók a MIDI-hez. Tehát ha ezeket a feltételeket megoldod, akkor természetesen tudsz AVR-rel MIDI-zni.
Ilyet találtam, ez szerintem használható (a felső részen látható optocsatoló elvileg a hangszerben van):
Bővebben: Link
Vettem egy HE-s AVR-Doper, USB-s ISP programozót. AVR studió és AVRDude programok segítségével (windows Xp Sp2 alatt) tudom vele is az ATtiny45-t programozni (5 V stabil, 20 cm égető szalagkábel, proci egymagában, belső 4 MHz). Ugyanakkor ATtiny2313 esetében a programozás nem megy (sem az AVR-studióban, sem az AVRDude-ben - ezek mostani verziók), sőt a chip azonosítását, a fuses-eket legtöbbször sem tudja kiolvasni. Itt a proci-t szeretném használni belső 8 MHz mellett.
Kínomban megépítettem a lehető legegyszerűbb Lpt-s programozót (pár vezeték + néhány ellenállás) és csodák csodájára a meglévő hardverek mellett az új programozóval stabilan tudom mind a 2 proci-t programozni, fuses-eket beállítani, tartalmat kiolvasni mind az Avrdude-ben, mind a Ponyprog2000-ben. Ahogy olvasgattam itt a fórumon másoknak is voltak gondjai a HE-s AVR-Doper, USB-s ISP programozóval, amiben lehet, hogy CSAK TOPI tudna segíteni egy újabb hex programmal. Szeretném azt használni (kétségtelen vannak előnyei) de egyelőre amire kellene, nem működik. Nem tudom, hogy topi szokott-e Attiny2313-t egymagában égetni és voltak-e gondjai? Esetleg egy másik számítógépen is kipróbálta-e?
Szia!
Abból lehet gondod, hogy nem vetted figyelembe a programozás órajelét. Sokszor írtam már le, hogy tessék a write -ot nyomkodni az ablak első lapján a helyes sebességgel. A baj nálad ott van, hogy nem állítottad be rendesen a programozás órajelét, így a programozó túl gyors. Egy LPT-s programozó jócskán lassabb, így azzal szót ért a proci. A tiny2313-at azért nem tudod programozni, mert azok 1MHz-ről járnak alapból (8MHz belső RC + CLKDIV8 fuse) Vedd le 115K körülire az órajelet és programozd úgy! Szerk: Most piros betűkkel beleírtam a cikkbe.
Nos sikerült elrontanom egy chip-et vagyis valószínűleg csak rosszul állítottam be a fusebit-et (vagy mit).
Eredetileg külső kristály-t akartam hozzá illeszteni. Fogtam a 4mhz-s kristály-t raktam rá két 27pF-os kondit (mondjuk 22-est ajánlottak, de az nem volt) És ucco neki. Utána megpróbáltam átállítani a Lock and Fuse bits alatt (Bascom) a Fusebit FEDCBA-t és innentől nem ismeri fel a chippet. Vissza lehet valahogy állítani?
Szia!
Köszönöm a gyors válaszodat és mivel írtad, hogy nálad működik, ez további kísérletezéshez ad kedvet. A lényeg, hogy megvan nálam a Doper-hez a megoldás (de nem az, amit javasoltál). Programozó-informatikus létemre természetes, hogy észreveszem és beállítom a programozói jelet. Kísérleteztem az összes programozás jellel, 3 db Attiny2313-mal, eredménytelenül. Úgy tűnt, amikor megírtam az előző hozzászólást itt a fórumon, nálam a Doperrel t9rténő égetés nem sikeres egyik programozás jel mellett sem. De most tovább kísérleteztem és a CLKDIV8 fuse-t a 4 khz jel mellett sikerül tényleg kikapcsolnom ( 2 dolog miatt nem nagyon kísérleteztem eddig ezzel: először is az AVR-studió azt mutatja, hogy már ki van kapcsolva, a valóságban nem, másrészt üzeni hogy, ezzel nem lehet programozni!). Ezután már programozható a proci (mind a 3 tiny2313-t), igaz 1.8 MHz mellett (115 kHz mellett nem megy a dolog). Tehát nálam a stabil megoldás: CLKDIV8 fuse kikapcsolása 4 khz mellett, utána égetés 1.8 MHz mellett! Topi, ha helytálló a dolog nálad is (úgy tűnik szerencsésebb az égető-környezeted, hogy nem kellett így tapasztalnod) és ha gondolod, beírhatod a cikkedbe az általam tapasztaltakat, hátha mások, akik hasonlóan járnának, mint én, hamar megtalálnák a megoldást.
Sziasztok!
Ez egy elég hülye kérdés lesz sokatoknak biztos, lehet, hogy nem pont ide való, de máshol se találtam választ rá. Szóval megépítettem a Topi féle AVR programozót (KITből), minden ment simán, egészen addig amíg el nem akartam kezdeni összerakni az első kapcsolást... Nem tudom, hogy hogy kell bekötni rendesen azt a szalagkábel csatlakozót... Rendeltem ilyen szalagkábel csatlakozót is hozzá, de arra meg nem tudok rájönni, hogy hogy kell használni. :S Kell azt forrasztani, vagy csak simán rá kell nyomni? Nem akarom kontárul megcsinálni, szóval légyszi magyarázzátok már el hogy hogy kell ezt normálisan megszerelni. Köszi
A csatlakozót egy fogóval vagy ha nincs kis kézügyességgel rá kell nyomni a kábelra. A pici kések pont annyira fogják átvágni a szigetelést, hogy létrejöjjön egy jó kontaktus. A kilógó részt egy éles szikével levághatod.Forrasztani nem kell. Ha van kedved a végén még azt az extra darabot is rápattinthatod ami a kábelt átvezeti a túloldalra és tehermentesíti a csatlakozótüskéket.
A piros csík az 1-es lábnál legyen!
Szia ! Olyan kérdésem volna ,hogy az ékezetes betük beírhatók -e a következő képpen ?
Helló! olvastam az oldalon AVR-Doper, USB-s ISP programozó cimű cikket. A programozót megépitettem, és az volna a kérdésem hogy hogyan kell elvégezni az ATmega8-as proci felprogramozását STK200-al?? próbáltam már ponyprog2000-el de semmi.Van még eggy progim amivel nem próbáltam még AVR8Burn-O-MAT ezzel el lehet végezni úgy a programozást hogy működjön az áramkör??És hogyan kell?? Mit és hol kell ennél a procinál álltiani??
Válaszokat előre is köszönöm.
Sziasztok!
At89S4051-es eszközhöz tudna valaki javasolni egy programot és linket, ami bin file-ból hex-re konvertál? Előre is köszönöm.
Persze, néztem előtte guglit. Itt kerestem először. De mikor a parancssort megnyitom és beütöm a fájlnév.bin-t, nem konvertál.
Hát nem tudom... Én most leszedtem és kipróbáltam. Minden gond nélkül működött.
Figyelj oda, hogy jó helyen nyisd meg a cmd-t, vagy később mászkálj el a könyvtárba. A progi működik.
Nem tudom, nem akarja a jót. Egy ablak ugrik fel, hogy nem tudja megnyitni és válasszak neki egy másik szoftvert. Megkérhetlek, hogy ezzel is ki tudnád próbálni?
Köszönöm előre is.
Nagyon köszönöm, nem tudom miért nem csinálta meg nekem. Mind1, a lényeg, hogy sikerült.
Köszönöm még egyszer!
A HE-s AVR ISP kompatibilis a BASCOM-AVR-el?
Szeretnem azzal felprogramozni a kontrollert AVR studio helyett, de eddig nem sikerült.
Ha STK500-ként használod, akkor a Bascom 1.11.9.3 verziótól igen (jelenleg csak a regisztrált), illetve a Bascom 1.11.8.3 óta a STK500Extend módban (feltelepített AVRStudióval együtt ) használható.
Szia!
A hivatalos MIDI honlapon van kapcsolási rajz. http://www.midi.org/techspecs/electrispec.php Magyar nyelven egy nagyon jól érthető könyv a MIDI alapjairól (Ebben nincs elektro csak a protokoll ismertetése): Gerényi Gábor: MIDI http://www.antikvarium.hu/ Gyorstalpaló angol leírás az AVR freaks-től: ITT Bár ha azt a könyvet elolvastad, akkor ezen a PDF-en csak nagyokat bólogatsz. Rádiótechnika évkönyvekben is szokott lenni MIDI rész. Nem tudom megmondani melyik számban, talán 1990 és 2000 között volt egy sor kapcsolás, ami shift regiszterrel meg mezei logikai áramkörökkel valósított meg MIDI átviltelt. Pl. volt benne egy egyszerű szinti teszter, ami C4 billentyűleütést küldött ki MIDI-n beállítható erősséggel. Ezekből a kapcsolásokból könnyen meg lehet érteni a dolgot. Ajánlom még a MIDIOX nevű kis programot, ami MIDI tanulmán yozáshoz egy jó kis svájcibicska. http://www.midiox.com/ Amúgy nincs a MIDI-ben semmi bonyolult. A fenti áramkört építsd meg, a kódokat meg nem kell kiötlened, olvasd el a könyvet, vagy kapcsold be a MIDI-OX-et, és nézd meg mi történik, ha lenyomsz egy billentyűt a szintiden! -- Nem vetted észre, hogy a link teljesen széttolta az oldalt?! Moderator. Javítva: Prédikátor
1.11.9.0-as verziom van. STK500Extend modban allitottam be.
Olvasni kiolvassa az adatokat eeprom, flash, Fusebit-ek... Irni is beirja, meg ugy nez ki elsőre hogy müködik is, de a Do .. Loop köze beirt parancsokat csak 1x futtatja utanna megall abban az allapotban. Ha ugyanezt a HEX-et AVR Studioval irom be akkor rendesen mukodik, 1mpkent loopolja a parancsokat. Kezd erdekes lenni az egesz..
Ha már MIDI a téma:
Foglalkozott már itt valaki analóg szintetizátor digitális modellezésével? Mindezt mikrovezérlővel? A múltkor kíváncsiságból rákerestem az AVR és szintetizátor szavakra. Meglepődtem, hogy egy mezei ATMegával lehet analóg szintetizátort 16bites felbontással modellezni. http://www.elby-designs.com/avrsynth/avrsyn-about.htm (A Sound samples résznél tudsz hangmintákat letölteni) Szóval szeretném elkészíteni én is a saját virtuális-analóg analóg szintimet. Leírom, amire eddig jutottam, bár ennek még nincs köze az AVR-hez. Kezdésnek elkezdtem kísérletezni asztali gépen, PHP nyelven. Ebben a programnyelvben tudok gyorsan és hatékonyan programozni, mivel ezzel foglalkozom, főállásban. Egyébként programozott működésű honlapokat lehet vele gyártani, C szintaxisú, használata Basic egyszerűségű, de mint a példa is mutatja mindenre jó. Szóval fogtam egy wav fájlt, levágtam belőle az adatot, maradt a fejléc. A programommal pedig mögé raktam a saját hangmintasorozatomat. Futtatás után a wav fájlt le lehet játszani. Pár alapvető dologra már rájöttem, amit most megosztok veletek. Kezdjük ott, hogy megpróbáltam előállítani szimmetrikus négyszögjelet. Ez nagyon egyszerű, néztem a ciklusváltozót, és mondjuk minden 1000. ciklusban a kimenetet 0-ról 255-re kapcsoltam vagy fordítva. Hurrá, működött. Gyártsunk szinusz jelet! Gondoltam misem egyszerűbb ennél. Tanultuk a suliban, hogy Uki=sin(2pi*f*t) F a freki, t értéke legyen a ciklusváltozó. (Pontosabban t=1/44100*i, ahol i a ciklusváltozó, 44100 a mintavételi freki.) Na ez is oké. Csak hát: hohó! A szinti az valós időben, akár végelen ideig fog futni, a ciklusváltozó előbb utóbb túl fog csordulni és akkor akár hol is tartok a szinuszomban, az bizony 0-ról indul újra. Valahogy ettől függetleníteni akartam a dolgot. A megoldást az adta, hogy készítettem egy függvényt, aminek bemenő paramétere az egy periódusból eltelt idő. Hívhatjuk talán fázisszögnek is. Példa négyszögjelre (fázisszög 0 és 1 között lehet. 0=0fok, 0.25=90fok ... 0.5=180fok stb
Na ez már alakul. A progam valahogy így néz ki:
A for ciklus most már lehet egy végtelenített ciklus is. A periódusidőt azért kell minden egyes ciklusban kiszámítani, mert az f vlátozhat. Pl. ha moduláljuk, hogy szép vibrato effektet kapjunk. Ez eddig tök jó. Most jött az, amitől mindig is féltem, akár hányszor csak az analóg szinti modellezésére gondoltam. Hogyan fogok én szűrőket modellezni, mikor ahhoz Fourier transzformáció meg DSP meg matematika tudás és miegymás kell. Nahát nem kell. Legalább is egy egyszerű rezonáns szűrőhöz elegendő az alábbi egyszerű képlet: a+=f*((be-a)+q*(a-b)); b+=f*(a-b); ki=b; Ahol f a szűrő levágási frekvenciája 0 és 1 között megadva. (0=0Hz, 1=végtelen Hz) q pedig a rezonancia mértéke 0 és 2 között. A képletet a neten találtam. A hangja nekem megfelel. Szóval így áll a dolog, remélem a kis mesémmel nem unttam azt, aki elolvasta. Ha lesz egy kis időm, akkor jönne a folyt köv. Ezek az elméleti elkézeléseim: Beállítok egy timer-t, ami a mintavételi frekvenciának megfelelő ütemben generálná a megszakításokat. Egy-egy megszakítás alkalmával lenne kiszámolva egy-egy hangminta (sample). UART kezelné a MIDI bemenetet. Gondolom UART is tud megszakítást kérni, ha adatot kap. Ez a megszakítás rutin dekódolná a midi üzenetet. Végső soron egy tömbben tárolnám, az utojára leütött billentyűk paramétereit. (Hangmagasság, hangerősség). Ez a rutin "nullázná" vagyis indítaná a burkológörbe generátorokat. A hangminta generáló interruptnak a hangmintát kívül még a burkológörbékkel és az LCD vezérléssel kellene foglalkoznia. Ja, a cuccot polifónikusra szeretném elkészíteni. Nem tudom, hogy az AVR bírni fogja-e, ki kéne számolni. Hogy is van? 16MHz-en futna a proci, 44,1Khz lenne a mintavétel, akkor egy-egy mintavételre 16M/44,1k=362 órajelciklus jutna. Hajaj, azt hiszem ebbe se LCD se polifónia nem fér bele, örülhetek ha a potiállásokat le tudom olvasni a hanggeneráláson felül. Analóg szintiről van szó, egyszerű kiépítésben is lenne minimum 10 poti, 10 kapcsoló, de inkább mindkettőnek a duplája. De lehetne alkalmazni több AVR-t is nem? Lenne egy központi AVR, ami a MIDI-it, meg a kezelőszervek leolvasását végezné, és minden egyes szólamhoz lenne egy-egy külön AVR. A DAC ellenálláslétra lenne, a keverést is meg lehet oldan ellenállással meg egy műveleti erősítővel. Végül is se árban, se fizikai méretben nem okozna problémát. (Vagy körül kellene még néznem processzor ügyben, hátha találok erősebbet.) Mellékeltem egy mintát, amit a PHP-s generátorommal készítettem. Ez két fűrészfog, és két PWM jel, mind a négy modulálva és a PWM is modulálva, amit a szűrő jó rezonánsra állítva végipászáz.
Kedves Moderátor!
Én nem vagyok igénytelen, ám a fórummotor az! Ahelyett hogy ismeretlenül sértegetsz, kérlek jelezd a fórummotor programozójának, hogy szívesen elkészítem azt a függvényt, ami a hozzászólások megjelenítése előtt megkeresi a hosszú linkeket és mondjuk a 80. karakter után kipontozza. Csak jelezzétek! Ha ilyen morcosan írsz, bizonyára nem ez az első eset. Nincs is annál roszabb, mint olyan dolgon mérgelődni, amit a mérgelődésre szánt idő felhasználásával meg is lehetne oldani. Firefox 3.0.4-ben a hozzászólásom után és most sem látszódik széttoltnak az oldal. Ha észrevettem volna javítottam volna, mert én sem szeretm, ha pl. egy nagy kép széttolja az oldalt. Üdv, Sallala
Kedves M(m)oderátor!
Nem tudom szó nélkül megállni a bunkóságod. "-- Nem vetted észre, hogy a link teljesen széttolta az oldalt?! Ne legyél már ennyire igénytelen. Moderator." -- Nem vetted észre, hogy egy emberrel beszélsz?! Ne legyél már ennyire bunkó! Topi itt prédikál nekünk a "mindenki írja be a nevét, hogy személyes legyen az oldal" és erre a moderátorai meg név nélkül szólják le azt aki semmi olyat nem tett ami a fórum szabályzatába ütközne. Ez már azért túl megy minden határon.
Nagyon jó lett a hang.
Anno még C64-en kísérleteztem hangok előállításával meg a kis Casio CZ1000-esemmel. A C64 közelebb állt a mostani AVR-hez. Ott 3 csatorna volt, ha jól emlékszem és 4 féle hullámforma plusz mindegyikhez burkológörbe. (négyszög, háromszög, fűrészfog és fehér zaj). Namost az anno 1Mhz-es volt és 64k memóriával rendelkezett ugye amiből jó, ha 40-et ki tudtunk használni. Igaz a SID megoldott egy csomó mindent a hangokkal kapcsolatban. (54272 és társai...). Én is gondolkodtam egy hasonó szintin és akkor arra jutottam, hogy legalább 2 AVR kéne hozzá. Az egyik ami a hangot generálja. Ez kívülről kapja a jelet, hogy mit csináljon. (ahogy pl a C64-en az egyes memória rekeszek írásával lehetett programozni). A másik pedig a vezérlést, midi és a többit oldaná meg. Így szerintem az AVR-ek számát szépen fel lehetne nyomni, ha kell 8 csatornára is. Főleg, ha egy-egy tudna 2-3 csatornát... A Casio-m anno 4 billentyűt kezelt és 2 csatornát tudott összekeverni, de nagyon szép hangokat lehetett vele készíteni. A programozással kapcsolatban pedig: A szinuszt mi annak idején táblázatból vettük és csak egész számokkal dolgoztunk: 0-65535 így sokkal gyorsabb bár szerintem Topiék ennél jobb módszert is tudnak a sebesség növelésére. |
Bejelentkezés
Hirdetés |