Fórum témák
» Több friss téma |
Igen, jól gondolod. Ha belső órajelet használsz, a programból kell beállítani a PLL-t. (Persze előbb az órajelet kell átállítani mivel alapból 1MHz-n indul, a PLL-nek minimum 4MHz kell.)
A 18F2550 a külsó órajelet előbb 4 MHz -re leosztja, aztán jön a PLL... De miért is nem nézed meg magad az adatlapokban. Olyan szép ábrák vannak benne. A 18F2550 esetében még az is olvasható rajta: "(4MHz input only)".
Már mint 18F4550 nem?
A kérdésemben legalább is ez példa... Nézem az adatlapot természetesen, de azért csak kérdezek, ha bizonytalan vagyok és nem értem a miérteket. ktamas66: Köszi. Tehát akkor nem elég, ha egy külső 16MHz-t csatolok a PIC-hez és a PLL-et beállítom? Be kell állítanom még az OSCCON regisztert is, hogy mekkora kristályt tettem rá?
De a 18f4550 és a 2550 ugyanabba a pdfbe található meg (nem biztos, de azt hiszem ugyanaz a processzor benne csak más lábszám). Összegezve ugyanazt az oszcillátort kapták.
Külső órajelnél elég csak beállítani, belsőnél kell csak programból.
Tényleg, ez eddig fel sem tűnt
Megkevert előzőleg kicsit a számozása...
Urak!
Még mindig szimulátor lenne kérdés. A Timer1 megszakítás nem akar menni sehogy sem. A jelenség, hogy van két szegszakítás, a Timer1 túlcsordulása és a CCP-ről jövő impulzus. A Timer1 megszakításának növelnie kellene egy változót minden túlcsorduláskor. Viszont a szimulátor a Timer1 túlcsordulására nem megy a megszakításra. Ha a CCP impulzust adom neki és a Timer már túlcsordult, tehát a flag bit 1 értéken van, akkor növeli a változót, de csak eggyel, közben a túlcsordulás akár 50 is lehet már. Tudna valaki segíteni, hogy miként tudnám rendes működésre bírni a Timer1 megszakítását? Idézet: „Ez teljesen összezavar, mert én úgy gondolkodom, hogy ha a 18F46K22-re rá kötök egy 16MHz kristályt és a 4xPLL-t beállítom akkor érem el a 64MHz-t.” Jól gondolod, de a belső osszillátor is tud 16MHz frekit "osccon" regiszter, négyszerező PLL bekapcsolás "osctune" regiszter, és lesz 64MHz. A hozzászólás módosítva: Okt 18, 2014
Találtam youtube-on egy PIC-es UART-os videót,azt lemásolván sikerült kiíratnom az RCREG-et.Hogy állítom be a baud sebességet?Mármint mi az,hogy vágyott baud sebesség?Az mindig 9600?Vagy azt is számolni kell,hogy a távirányító jele 108ms-onként ismétlődik,és 1000/108=9,259?Hogy állítom be,hogy csak az adat biteket írja ki,és abból is csak az első 8-at?Hiába nyomom a távirányítót,mindig csak 8 db 0-át látok,pedig lehet látni,hogy veszi az infrát.Tehát miért nem ír ki valami értelmeset?
Amit én láttam a programodban hibát, hogy nem az SPBRGH kell állítani először hanem az SPBRG-t
az SPBRGH akkor kell ha az SPBRG nagyobb mint 255. A vágyott BAUD az a szabvány érték mint 300 1200 2400 9600 stb.. viszont amit te is akartál (gondolom 9600 BAUD) 4.000.000/(16*(25+1)) = 9615 tehát ez nem pontosan 9600 és ebből számítható hány % eltérés van (9615-9600)/9600 = 0.16%.
Akkor elég, ha a konfigurációs beállításokban adom meg, hogy 64MHz-n fusson vagy meg kell adni az "osccon"+"osctune" regiszterekben is?
Elvileg nem úgy van, hogy ha a külső OSC van megadva és beállítva 64MHz-re, akkor a belső program is annyin fog futni mint amennyire a külső órajel be lett állítva? Vagy ez a 2 dolog külön van? Tehát ha a külső órajel fel van húzva 64MHz-re, akkor csak a rácsatolt külső perifériákat hajtja azon a frekvencián és a belső program futása függetlenül a külsőtől fut? Ebben az esetben gondolom a belső órajelet is fel kell csavarnom 64MHz-ig, hogy egyforma külső és belső sebességem legyen. Ezt legyetek szívesek elmagyarázni nekem mert nem értem miért nem elég a külső OSC beállítása. Azt hittem, hogy a belső órajelet csak akkor kell állítani, ha nem használok kristályt. Előre is köszi.. A hozzászólás módosítva: Okt 19, 2014
Üdv!
Mindig azt az oszcit használja a PIC, amit beállítasz. Egyszerre nem megy a kettő (illetve itt van lehetőség a másadlagos oszcival járatni a rendszert). A regiszterek pedig egyáltalán nem biztos, hogy csak egy perifériára tartalmaznak beállítási lehetőséget. Lásd adatlap OSCCON, OSCCON2, OSCTUNE. A 28. oldalon pedig ott van a blokk ábra az oszcillátorokról.
Sziasztok!
Az "A" regiszter decimal tartalmát ami "69" hogy tudom a legegyszerűbben átküldeni úgy ahogy 008-tol láthato? (kézzel írtam be hogy mit szeretnék)
Szia! csak program írásával, google- in nézzél utána binary to bcd átalakításnak.
Köszönöm, akkor a fentebb bemásolt beállításom jó kiegészítve az OSC regiszterekkel:
Legalább is remélem...
Köszi,átírtam SPBRG-re,most már vannak 1-esek is,de minden gomb lenyomásánál 1110 0000.
Igen, úgy látom jó. Feltéve, ha nem akarsz PLL-t használni.
Azt az OSCTUNE-ban be kell kapcsolni.
Annyira tudtam
Még sem állítottam be mert azt hittem az a belső órajelhez van..
Akkor ez lesz a jó beállítás. Gondolom a 7-es bit "INTSRC" nem kell mert az a belső órajelre vonatkozik... Igaz? Bár már ebben sem vagyok biztos.. Mert akkor nem 0x5F hanem 0xDF kell az OSCTUNE regiszterbe.. A hozzászólás módosítva: Okt 19, 2014
Nem, 0x20-at kell beállítanod. A freki beállítás itt, csak a belsőre vonatkozik.
Sziasztok!
Egy kis segítséget szeretnék kérni , Pic16f628a mikrovezérlővel kapcsolatban. A vezérlőn kívül van egy ledem , egy próba panelem , és egy tápom hozzá. Szeretném villogtatni ezt a ledet , és kellene egy példa program hozzá , de nincs külső oscillátorom , tehát nem tudom lehetne e a belsőt használni. Köszönöm.
Értem köszi a segítséget..
Még lenne egy kérdésem ami nekem nem tiszta. Szeretném azt kiszámolni, hogy 64MHz-nél mennyi 1 ciklus idő és hogy amikor a késleltetéseket csinálom, hogy számoljak. Tehát egy olyan függvényen gondolkodom amelynek megadom mekkora kristályt csatlakoztattam és az kiszámolja nekem a szükséges késleltetést. Tehát lenne egy definíció ami pl.:
És a függvény helyettem kiszámolná mondjuk mennyi 1ns, 1us, 1ms, 1s. A számolás meg így menne: 1/(64MHz/4) == 0.0000000625 == 62,5ns Tehát itt 1 ciklus idő 62,5ns ideig tart. Eddig jól számolok? Ha tovább gondolom a dolgot, akkor itt a 62,5ns-ot meg kell szorozzam 16-al és akkor megkapom az 1us-t. Ezt már csak 1000-el kell szoroznom ahhoz, hogy lépkedjek felfelé. Kivetítve így nézne ki:
Jó a gondolat menetem? Előre is köszi srácok..
Lehet használni a belsőt, de nehéz úgy segíteni, hogy nem tudjuk milyen környezetben programozol.
Értem . Programozó eszköznek van egy ICSP k150 -em , Szoftveres környezetben pedig egy MPLAB IDE V8.92 - t használnék. C nyelven .
Előre is köszönöm.
Hi-Tech C 10-12-16 a fordítód?
Meddig jutottál a programban? Előszőr is kell neked egy ilyen: Adatlap A hozzászólás módosítva: Okt 19, 2014
Nem tudtam hogy külön kell letölteni a fordítót . Egy linket esetleg tudnál adni hozzá?
A program pedig ez lenne , egy példa , amit találtam :
A hozzászólás módosítva: Okt 19, 2014
Bővebben: Link
Szóval akkor a nulláról kezded... Akkor érdemes sokat olvasgatni a fórumot, sok kérdésre megkapod a választ...
Igen a 0 ról. Programozás ismereteim már vannak ( Php,mysql) , köszönöm a linkeket
Írtam egy rohadt nagy bejegyzést és eltűnt.
Kajálok és segítek ha más nem előz meg.. |
Bejelentkezés
Hirdetés |