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
Toltsd teli a PIC programtarjat(azaz fejtsd ki a ciklust), es majd a PC tulcsordulasa miatt ismet 0x0000-rol fog folytatodni a program. Igy meg lehet sporolni az ugrast. De termeszetesen nem akarlak eltantoritani az AVR-ektol, sot csak javasolni tudom!
Hasonló csavaros gondolataim nekem is voltak.
De ezzel az a gáz hogy akkor hova rakjam a konfigurációs programrészt. Amire meg szükség van
Valoban erre nem is gondoltam. Mondjuk beszurhatod egy olyan sor moge, ahol a w erteke pont megfelelo. Igy lesz ott es kis kesleltetes, de nem annyi mint gotonal. Viszont ettol mar nem 2 hatvanya lesz a felhasznalhato hely, igy azert, hogy ne legyen majdnem egy ciklusnyi szabad hely, ezert NOP-okat kell elszorni a kodban megfelelo helyekre. Ha meg belefer ennyi kesleltetes akkor megfontolando.
Nem lehet késés. Sőtt olyannyira nem hogy még a kavics frekvenciáját is stabilan kell tartani. Finomrahangolni a frekvenciáját trimmerrel. Azon is gondolkodtam hogy termosztátba rakom. de ahhoz már kell a méret.
Mondjuk egy sztereo encoderhez csak eleg a kvarc ~50ppm pontossaga. Viszont a kondival valo hangolassal az a gond, hogy a kondi homerseklet fuggese nagyobb mint a kvarce, tehat csak egy adott homersekleten lesz pontosabb.
De a temahoz visszaterve: marad az AVR. Az ATtiny2313 adatlapjan az 50. oldalon talalsz peldat a port kezelesehez assemblyban. Label ugyan ugy van mint barhol mashol, ugrashoz pedig az rjmp utasitas kell neked.
CKDIV8 a fuse neve(ez leosztja az orajelet 8-cal), de elvileg meg eppen alatta vagy(ugyanis igy a max megengedheto 125KHz-re jon ki).
Látom belátod hogy hajthatatlan vagyok Igen kétségkívül a kondenzátornak nagyobb a hőmérsékletfüggése. De : Már eleve a kristály beindításánál is szükségesek a kondenzátorok. Az is igaz hogy ezek nem sorban vannak a kvarc-al. tehát nem az a szerepe hogy feljebb húzza a frekvenciát. Nem kívánom nagyon szélsőséges hőmérsékleti viszonyok közt alkalmazni az áramkört. Meg a kapacitás eleve sem képes nagyon elhúzni a rezonanciát, és a hőmérséklet változás sem kelt olyan komoly kapacitásváltozást ami számottevő lenne. Tehát ez még mindig elfogadható szinten marad. Sok más szempontot is figyelembe véve jutottam el én is erre a döntésre hogy AVR Ebben kérnék segítséget. Assembly parancsok kellenének és némi instrukció az alapkonfigurációhoz. Aztán go ! Ez nem egy bonyolult program. mondhatni semmiség. De az AVR-eket alap szinten sem ismerem. Sajnos nemigazán találok róluk magyar dokumentációt.
Nem a hajthatatlansagod szamit(mert az fuggetlen tolem es viszont), csak engem valahogy jobban izgatnak az ilyen nehezebben megoldhato kerdesek, minthogy a lustak szamara google interfesz legyek Ugyhogy korbejartam a kerdest mert miert ne alapon es belattam, hogy a szamodra adott PIC-kel valoban nem megoldhato.
A google-t már rendesen körbejártam magyar dokumentációk felderítése terén. Szerencsére sok magyar szakdolgozat fent van a neten ami már eddigi problémáim során nagy segítség volt.
De valahogy az AVR-ek lelkivilága még eddig nem éritntett meg egy szakdolgozatírót sem sajnos. Legalábbis én még eddig nem találtam ezekről sokmindent. Csak felületes ismertetést.
Hat en csak angolul olvasok doksikat es nem is kutakodtam magyar doksik utan, igy ha neked mindenkep magyar doksi kell, akkor abban nem tudok segiteni sajnos. Viszont az Atmeles doksik olyan egyszeru nyelvezetuek, hogy google translatorral barki megerti(szerintem). (A googles dolgot pedig nem rad ertettem).
Értelek ! csak próbálod felmérni a problémát, hogy lusta emberrel állsz e szembe vagy tényleges problémával
Bár abból hogy meglehetősen hanyagolod az ékezetes betűket leszűrhető hogy nem csak a magyarnak élsz Nekem is megfordult a fejemben rengetegszer hogy de jó volna nem csak felületesen tudni angolul. Mert néhány szó ismerete még igen kevés ahhoz hogy kiértelmezzek egy dokumentációt. A google fordító meg eléggé szétcincálja a pdf-et ha megpróbálom lefordítani.
Na az ekezetes betuk hanyagolasa az inkabb megszokas. Amikor kezdtem meg fasorban sem voltak.
Viszont konkret kerdesekre tudok konkret valaszt adni neked (mert igy altalanossagban oldalakat tudnek irni, viszont ugy meg a sajat dolgomra nem eleg jut ido)
Hali
Erdekes modszer a tied. Mar megbocsass, de ez a gombhoz a kabat modszere. Most utananeztem a neten, es ilyen keszuleket lehet talalni es pont 18F 1220 IC-ve. A hapsi (talan cseh) 6 MHz kristallyal, HS PLL oszcival csinalt ilyet. Sztereo bemenet, 19 kHz, es MPX kimenet. De vegulis, ha van idod kiserletezzel. En inkabb vennek egy nagyobb PIC-et, es a minta alapjan kijatszanam a keszuleket.
Esetleg msn-ed van ? Ha igen akkor elküldhetnéd a cimed az email-emre . zsoltyfm@freemail.hu
De figyi, ha nem tudod hogyan mukodik az AVR, akkor honnan jon a dontes, hogy az lesz lgmegfelelobb a szamodra?
Hat lentebb irta, hogy neki csak az a baja, hogy 8 orajel ciklus ez a manover PIC-kel, es ket frissites kozott pont orajel/8 idonek kell eltelnie, igy ezert a PIC ugro utasitasa mar nem fer bele, viszont az AVR jonehany muveletet 1 orajel ciklus alatt tud vegrehajtani, igy ebben az esetben jut ido az ugrasra.
A picnel csak az ugro utasitas ket ciklus. Az ossze tobbi 1.
Igen, de PIC-nel az (kvarc)orajel frekvencia negyede a mag orajele, es en a kvarchoz viszonyitottam(meg o is).
Ismerem azt a kódert. néztem én is neten. Bevallom tartok az ilyen pll-es dologtól kicsit,a fáziszaj miatt.
mert az csak tovább erősödhet és nem odavaló dolgokat kelt. Én ezt az egészet mondhatni etalon-ként szeretném megépíteni. a vezérlésnél fontosak a határozott és pontos fel és lefutási élek. Tudom hogy túlzásnak tűnik de kíváncsi lennék az eredményre. Már régóta tervezem hogy hogy építsem meg és sok gyakorlati példát is megnéztem. Ezekből szedtem az ötletet. És olyan dolgokra próbáltam figyelni amikre az ezeket tervezők nem fektettek hangsújt. Sokminden múlik a percíz zavarmentes tápegységen és az áramköri lap vezetékelésén. Mit sem érnek a professzionális hangtechnikában alkalmazott félvezetők ha már itt elbukik a dolog. Meg a kábelezés. Egy rövidebb audió kábelszakaszon is fontos a jó illesztés. meghajtási és fogadási oldalon is. a kábelben fellépő zavarok kioltása , induktív kapacitív hatások. Már így is túl sokat írtam Lényeg hogy átfogóan belekóstoltam sok területbe és ezeket az ismereteket összevetve próbálom kitalálni hogy legyen
Mert tudom hogy jobban kihasználja az órajeleket.
Csakhogy nem vettetek figyelembe, hogy 18F-ben van PLL, sot egy 24H vagy dsPic meg mar 16 bitesen szamol Fosc/2-vel. Na mindegy, nem ez a lenyeg, nyilvan AVR is tokeletes a feladatra, de en is ugy tudom arra joval kevesebb a dokumentacio, sot Magyar nyelvubol igen keves van.
Na most.
Mellékesen nem is akarok ágyúval lőni verébre. Feleslegesnek látom egy komolyabb processzor alkalmazását egy igen egyszerű feladatkörben. Adott a kvarc adottak az eszközök. És az információk tekintetében a célnak tökéletesen megfelel az avr. Nekem egy atiny 2313-mam van. amivel gyakorlatilag kivitelezhető. Csupán csak amódot kell megtalálnom. A feledet még ennek a processzornak a tömérdek képességét sem használja ki. Akkor tehát miért is ne válasszam ezt ?
Szia!
Távol álljon tőlem, hogy bele akarnék szólni az ötleteidbe. Pláne ha rádiótechnikáról van szó, az nem az én világom. Elhiszem, hogy ilyen szoros korlátok közé vagy szorítva. Szerintem térjünk vissza az eredeti kérésedre. ATtiny2313, 4.864Mhz -> 1 órajel = 205.5921ns
Jól érten hogy a pic-nél a port kiiratás 8 órajel? (1 parancs = 4 órajel?) Mert ha igen akkor ezzel így már lehet kezdeni esetleg valamit, persze azt még nem mondtad, hogy az értékek honnan jönnek. Egy másik megoldás ha végtelenszer akarod körbeírni a kimenetet:
Mindkét program 4 órajel összesen, lehet kell nop utasítás bele a pontos időzítésért.
Hali
Ha ez igy van ahogy leirtad, akkor ugyanaz a leanyzo fekvese. Eredetileg is ez volt a problema, hogy a goto utasitas a PIC-ben 2 ciklusos, mig az osszes tobbi 1 ciklusos. Azert nincs az annyira elmaradva, hogy 8 ciklus legyen egy port iras. Ja egy ciklus az orajel 1/4-de termeszetesen, de amit ajanlottam tartalmaz PLL, igy 4x orajelbol a ciklus 4,xxx MHz-en mukodik. Idézet: „Akkor tehát miért is ne válasszam ezt ?” Nem mondtam, hogy ne valaszd ezt, csupan azt, hogy joval kevesebb AVR Assembly-re a doksi, mint PIC-ekre, igy nehezebb feladatod lesz. Anno mikor kezdtem atnyergelni AVR-ekre eleg szukos doksikat talaltam cak, azt is amit megleltem Angol nyelvu volt (nekem szerencsere ez nem jelent nehezseget, de van akinek igen). Legtobben avr-gcc-ben (WinAVR-ben), illetve BASCOM-ban fejlesztenek AVR-re, amivel ilyen jellegu orajel-pontos idoziteseket lehetetlen, vagy csak nagyon korulmenyes megvalositani.
Szia!
Pic-hez nem értek valószínűleg azért is nem teljesen világos számomra. Vegyünk egy példát: AVR-ben: f=1Mhz -> 1 órajel = 1us (az órajel az maga a ciklus vagyis 1 órajel = 1 ciklus, avr-nél nincs értelme külön órajelről és ciklusról beszélni mivel ugyanaz) Példa program:[/quote]
Le tudnád irni ugyanezen példán keresztül, hogy ez hogy valósul meg pic esetén? (az, hogy a parancs formátumok mások most tekintsünk el) Én abból táplálkoztam, hogy ZsoltyFM ezt írta: Idézet: „Ez két utasítás kell ahhoz hogy egy tetszőleges értéket írassak ki a portra. Ez egészen pontosan 8 órajel ill. goto utasítást használok ,(nincs más utasítás amivel ez kevesebb órajelvesztéssel kiváltható lenne) és ez önmagában két utasításnyi időt vesz el azaz 8 órajelnyi időt.” Nem fordítva van, hogy 1 ciklus 4 órajel? Valószínű ha meglátom a pic-es példaprogramot azonnal világos lesz. Köszi!
Szerintem az inline assembly nem korulmenyes. Legalabbis nem korulmenyesebb mint eleve assemblyben programozni. Sot meg a 32 bites AVR-nel, ha sajat megszakitas kezelot akarsz irni es nem a gyarolag adottat hasznalni, akkor kenyszerulsz assemblyben is programozni.
Hali
A PIC-nel annyi a kulonbseg, hogy az orajelet leosztja negyedere, tehat 4 MHz oszcinal a ciklusom 1 uS. Viszont a PIC utasitasai (kiveve a "goto") 1 ciklus alatt hajtodnak vegre. Tehat a PIC 4 MHz orajele ugyanazt a sebesseget adja mint az AVR 1 MHz orajelnel. Ebbol nem is adodik problema a kerdezonel. Nala az a problema, hogy ha csinal egy hurkot, es a vegerol visszaugrik az elejere, nem lesznek egyformak az idok az utolsoval, mivel a "goto" 2 ciklus hosszu.
Csa Vili
Hali
Tudom hogy van faziszaja, de mivel itt 19 kHz-et kell eloallitani es a pll kimeneti frekije 19 MHz feltt van, igy ennek a hatasa szinte semmi. |
Bejelentkezés
Hirdetés |