Fórum témák
» Több friss téma |
120(60MIPs)-140(70MIPS)Mhz a maximalis, homerseklettol fuggoen, azonben kell ugyenli, hogy az Fvco ne haladja meg a 340MHz-et. Az Fp orajelrol mukodik az osszes periferia, kivetel a PWM modul, amely az Fosc-rol mukodik. Az Fcy-van nem vagyok egeszen biztos, az adatlapban csak ennyik kaptam rola:
Idézet: „The term, FP, refers to the clock source for all the peripherals, while FCY (or MIPS) refers to the clock source for the CPU.”
ÁÁ, köszi! Úgy csináltam, hogy a PLL képletet beírtam excelbe, plusz kiszámoltam az Fvco-t és még az első osztó után is van egy szabály,hogy 0,8 és 8MHz között legyen, illetve ugye az Fpllis 120-140MHz, így automatikus formázással beállítottam, hogy a megfelelő tartományokban legyen zöld színű a cella.
![]()
A pontos képletet le tudnád írni, amivel a 84.375MHz kijött? Nekem sokkal kevesebb jött ki az adatlapban szereplő képlettel.
25*((52+2)/((2+2)*2*(1+1)) = 84.375
Típus és cím ütközés a problémája, nem tudom mért a kód ismerete nélkül, de ezt próbáld meg:
Ahol a PutsLCD-nek gondolom ez a függvény prototípusa(vagy hosnoló) void PutsLCD(const char *data) vagy void PutsLCD(char *data).
Én ezt most abszolúte de nem értem.
![]() Az adatlapszerint a PLLPRE legkisebb értéke 2 lehet, ahogy a PLLPOST is. Tehát akkor csak 25*((52+2)/((2+2)*2*(2+1))=56.25MHz-en megy, nem? A programban a regiszterekben én is ezt állítottam be, ugye? Mert azt hittem,hogy a CLKDIVbits.PLLPOST = 1; azt jelenti, hogy a legkisebbet választom ki, ha úgy jön a sorrendben, hogy 8,16,32, stb akkor az CLKDIVbits.PLLPOST = 1; a 8-at jelenti, de ezekszerint 2-t kell oda írni. Viszont az Fplli max 8MHz lehet és 2-es osztót választottam ki, akkor 12.5MHz, tehát minimum 4-eset kell kiválasztani, ugye Milyen módon lehet rávenni, hogy nagyobb órajelen fusson a 25MHz-es kvarcon? 100MHz jó lenne. ![]()
Sziasztok! 16F628A-val próbálok időzítést beállítani. Azt nem tudom az adatlapból kihámozni, hogy a Timer0-t pontosan melyik bittel indítom vagy állítom le? A Timer1-nél egyértelmű a T1CON,TMR1ON ahogy a Timer2-nél is a T2CON,TMR2ON, de Timer0-nál nem láttam ilyet. Az időzítő belső órajelről megy és mivel az időzítőt néha meg kell állítanom, így erre keresek valami megoldást.
Sajnos nincs rá bit amivel tudod tiltani. A legtöbb amit tehetsz, ha az órajel forrást átkapcsolod T0CKI lábra és azt a lábat fix potenciálon tartod.
A kepletben a PLLPOST erteket kell beirni, vagyis 1-et. A kepletben hozza van adva +1 es beszorozva kettovel 2*(1+pll_post), igy jon ki az az ertek amit te irtal.
100Mhz-et a kovetkezo beallitassal lehet elerni PLLDIV=22 PLLPOST=0 PLLPRE=1 25*((22+2)/((2+1)*2*(0+1))=100Mhz A PLL bementi frekvenciaja 25/3=8.(3)Mhz es az Fvco 200Mhz.
Köszi, én is erre jutottam, de nem nagyon tetszik ez a megoldás, illetve ha az a láb kimenetre van állítva akkor is bezavarhat?
Az nem megoldás, hogy ha nem kell számolni, akkor elmented, majd ha mehet a számolás visszatöltöd a számláló értékét?
Mondjuk, bukod az előszámlálót, ha van.
Az a baj, hogy megszakítást kell generáljon a túlcsordulásra és egy megadott időpontban kellene induljon.
És ha az időre az INTCON regiszter T0IE túlcsordulás engedélyező bitjét tiltod, majd ha újra mehet a számolás és visszatöltöd a TMR0 értékét, ismét engedélyezed a megszakítást?
Ez most így jónak tűnik szimulátorban, este az éles próbán meglátom majd. Köszi!
Még egy kérdés: Az nem baj, hogy a PLL-be 8.33MHz megy be és max 8MHz mehet?
Erdemes egyet novelni a bemeneti oszton, ugy bizonsagosabb (reggel nem tunt fel nekem, hogy nagyobb az eloirnal, ugy latszik meg tul koran volt
![]() PLLPRE = 2 PLLDIV = 30 PLLPOST=0 25*((30+2)/((2+2)*2*(0+1))=100Mhz
Uraim, kérnék egy kis felvilágosítást illetve segítséget.
Van egy 128x64-es LCD kijelzőre írt rutinom amely a teljes felületre rajzolna ki egy képet. Így néz ki:
Látható, hogy a pic[] tömb elég nagy ahhoz, hogy ne férjen bele a normál memóriába, ezért a PIC programmemóriájába kell raknom. A problémám az, hogy mikor ki akarom íratni a kijelzőre a képet akkor zagyvaságokat jelenít meg. Ha a kép kisebb és bele fér a sima memóriába akkor probléma nélkül kiírja, de ha átteszem ROM-ba akkor zagyvaságot ír ki. Miért lehet ez és mi lehet a megoldása? Előre is köszi.
Ha ezt a 16 byte-os tömböt írod ki akkor is? A C18-hoz nem nagyon értek de okozhat a nagyobb tömbnél problémát a near és a far azonosító.
Köszi, a típussal volt a baj, most már megy rendesen.
Az értékek meghaladják az 1bájtos határt ezért kell a minimum 2bájtnyi hely.
Vagy 5órája szívok vele ![]() Van ilyen ![]() A hozzászólás módosítva: Okt 16, 2015
Sziasztok! A PICkit 3 nem akar csatlakozni a PIC16f690-hez, hiába nyomom a connect gombot. Ez miért van?
Májki féle LCM3-at programozok.
Most ezt írja:
The target circuit may require more power than the debug tool can provide. An external power supply might be necessary. Connection Failed.
A PICkit3 nem tud elég tápot adni. Használj külső tápot.
Ezt a problémát egyre többet látom és tapasztaltam is, amióta elindítottam az IPE-ét azóta vagy connection failed vagy The target ..., miközben az áramkör jó ha maximum 10mA vesz fel. Pontos megoldást nem tudok mondani valahogy orvosoltam az IPE és MPLAB hol ezzel hol azzal kapcsolódtam míg végül elértem azt, hogy jelenleg lehet hibátlanul használni.
Szerintem ami megoldást jelenthet fixen az két esélyes vagy a gépet újra húzni vagy PICkit3 elvinni a ChipCAD-hez hogy programozzák újra a bootloadert, de sajnos nem tudom, hogy az IPE-től PICkit3 "száll el" vagy szoftver szinten akad össze valami(a gépen).
Akkor is van valami baja, ha adok neki.
Az gáz, ha a Pickit utolsó lába (aux) nincs bekötve?
Ja és a programozó az kínai klón.
Ez a kínai klón verzió volt, hogy egszer működött vagy most volt az első tesztje?
Első teszt. Az utolsó láb azt nem kell bekötni?
|
Bejelentkezés
Hirdetés |