Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   246 / 1318
(#) trudnai válasza rogers hozzászólására (») Júl 18, 2008 /
 
Szia rogers,

> if (counter = 4) state = 1 ;

Itt csak egy egyenlosegjel van, ami azt jelenti hogy ertek atadas. counter valtozoba berakja a 4-et majd mivel a 4 nagyobb mint nulla a feltetel igaz lesz... Lejjebb is van egy ilyen 12-vel...

Amugy ez mi akar lenni?

Legegyszerubb amugy perges mentesiteni, hogy erzekeled az elso kontaktust, majd varsz 1-2ms-et, amjd ismet megnezed van-e kontaktus remelve, hogy ha a gombot megnyomtak akkor a varakozas idotartama alatt a perges megszunik... Nem szep, de mukodik. Vagy timerrel, hogy gombnyomaskor nullazodik es indul a timer, felengedeskor pedig a timer leallitodik. Ha timer lejar, akkor a gomb megnyomottnak tekintheto.
(#) Norberto válasza trudnai hozzászólására (») Júl 18, 2008 /
 
Idézet:
„majd varsz 1-2ms-et”


Csak kíváncsiskodok, még sose próbáltam ki a "határokat". De ez az idő elég szokott lenni?
(#) trudnai válasza Norberto hozzászólására (») Júl 18, 2008 /
 
Ez kapcsolotol fugg, szerintem erdemes szkoppal megnezni, es arra meg egy "kicsit" ratenni. Azt hiszem ez a dokumentum eleg jol korbe jarja ezt a temat, vannak benne scope felvetelek hogy mi tortenik kulonbozo kapcsoloknal, hardveres, szoftveres megoldasok stb.
(#) potyo válasza Norberto hozzászólására (») Júl 18, 2008 /
 
Valószínűleg elég, csak az 1-2ms alatt mást is lehet csinálni, mint a gomb stabilillá válására várni. Ezért jobb a timeres lekérdezés.
(#) potyo válasza rogers hozzászólására (») Júl 18, 2008 /
 
Nicsak, mit talált a kereső: Link
(#) rogers válasza potyo hozzászólására (») Júl 18, 2008 /
 
Köszi.Kipróbálom.
(#) Sendi hozzászólása Júl 18, 2008 /
 
Helló Mindenkinek.

A következő a kérdésem.
16F630-t használok, belső oszcillátorral.
Hogyan tudom finomhangolni az oszcillátort (ha lehetséges ez),illetve mérni, hogy mennyit hangoltam.
Nem a műszerezettség, és a annak használata a gond, hanem, hogy hol tudom ellenőrizni.

Köszönettel.
(#) lidi válasza Sendi hozzászólására (») Júl 18, 2008 /
 
Ellenőrizni a legegyszerűbben úgy tudod, hogy a config byte-jában egedélyezed a belső órajel kimenetet.

101 = INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN

kalibrálni pedig az osccal regiszterben beállított értékkel lehet:

2.2.2.7 OSCCAL Register
The Oscillator Calibration register (OSCCAL) is used to
calibrate the internal 4 MHz oscillator. It contains 6 bits
to adjust the frequency up or down to achieve 4 MHz.
(#) kobold válasza Sendi hozzászólására (») Júl 18, 2008 /
 
Az adatlap 56. oldalán ott a válasz. A programmemória utolsó szaván van egy kalibrációs érték egy RETLWs sorban konstansként, azt módosítva hangolható az oszcillátor, és a frekvencia negyedét az RA4-es lábon ki is léptetheti, ha beállítod. Még példaprogram is van a kalibráláshoz.
(#) Sendi válasza kobold hozzászólására (») Júl 18, 2008 /
 
Szia Kobold.

Igen, természetesen olvasom, és ha jól látom, akkor ez az érték törléskor elvész?
Valószínűleg itt veszíthettem el az értéket.

Köszönettel
(#) kobold válasza Sendi hozzászólására (») Júl 18, 2008 /
 
Igen, teljes törléskor ez elveszik. Mindenképp ajánlott először kiolvasni, és beleírni a forráskódba is a legvégére (a 0x3FF címre) RETLW xx alakban, biztos, ami biztos alapon, utána egyszerűbb a módosítás is (van kiindulási alap).
(#) lidi válasza Sendi hozzászólására (») Júl 18, 2008 /
 
Viszont ha pickit2 -vel programozol, az vissza tudja állítani.
(#) Sendi válasza Sendi hozzászólására (») Júl 18, 2008 /
 
Helló Lidi.

Természetesen neked is köszönöm a segítségedet.
(#) Sendi válasza lidi hozzászólására (») Júl 18, 2008 /
 
Helló Lidi.

Azzal programozok. Hogy tudom visszaállítani?

Köszönettel
(#) lidi válasza Sendi hozzászólására (») Júl 18, 2008 /
 
A pickit2 gyári égető programjában a tools menüben találod ezt a funkciót.
(#) Sendi válasza lidi hozzászólására (») Júl 18, 2008 /
 
Helló Lidi.

Naiv kérdés.
Ha már kivettem a PIC-t és a bezártam a programot, akkor is vissza tudja állítani?
Magyarul: ez az érték máshol is el van tárolva a PIC-ben, és onnan vissza tudja hozni a PICKIT2?

Köszönettel
(#) trudnai válasza Sendi hozzászólására (») Júl 18, 2008 /
 
Szia Sendi,

Nem, ezt a PicKit2 ugy allitja vissza, hogy bekalibralja. Azaz megezi milyen gyors - ha jol emlekszem lekuld neki egy kis programocskat amit ugye a PIC vegrehajt, elkezdi billegtetni az egyik labat es ebbol ugye fog latszani hogy milyen sebesseggel teszi ezt. Ezt lemeri es kiszamolja a szukseges kalibracios erteket.

Amugy a PicKit2 mindig kiolvassa ezt a szamot es automatikusan vissza irja, es figyelmeztet ha barmi modon felul akarnad irni.
(#) Sendi válasza trudnai hozzászólására (») Júl 18, 2008 /
 
Helló Trudnai.

Köszönöm, kipróbálom.

Köszönettel.
(#) Sendi hozzászólása Júl 19, 2008 /
 
Üdv Mindenkinek.

A PICKIT2-ben és a memóriában is megtaláltam az
oszcillátor beállítást.
A PICKIT2-ben találtam még a BANDGAP-t.
Utána nézve, ez energia pályákat jelent a különböző félvezetőkben. De mit jelent egy PIC-ben az értéke?

Köszönettel.
(#) Doncso hozzászólása Júl 19, 2008 /
 
Sziasztok ,lenne egy kérdésem, megépitettem a PicKit2-t de nem tudom, hogy a kimenetek (1-6) közül melyik láb megy a programozandó pic mclr, pgm, stb lábaira, tudna valaki ebben segíteni?
Előre is köszi.
(#) trudnai válasza Sendi hozzászólására (») Júl 19, 2008 /
 
Szia Sendi,

Ennek a BOR-hoz van koze. Ugye a BOR (Brown Out Reset) arra lett kitalalva, hogy ha a tap feszultseg kritikus ertek ala csokken akkor reseten tartsa a chipet mindaddig amig a tap helyre nem all - ez pl a memoria tartalmanak elveszitese ill annak veszelye miatt is kell. a a tap helyre all akkor pl a firmware-nek van eselye a memoria tartalom ellenorzesere vagy inicializalgatasokra stb.

A bandgappel ezt lehet kalibralni, hogy hany volton kovetkezzen be ez a reset - nagyjabol 2V - 2.3V a 4 lehetseges ertekkel. ugy tudom gyarilag 1 vagy 2-es ertekeket szoktak alkalmazni ami 1 eseteben olyan 2.15V, 2 eseteben pedig olyan 2.2V kornyeken van.
(#) Sendi válasza trudnai hozzászólására (») Júl 19, 2008 /
 
Helló Trudnai

Köszönöm a válaszodat.

(#) Doncso válasza trudnai hozzászólására (») Júl 19, 2008 /
 
Konkrétan erről lenne szó, a GND az megvan de a többit nem tudom sajnos, előre is köszi a segítséget.
Üdv: Doncso
(#) Sendi hozzászólása Júl 19, 2008 /
 
Helló Mindenkinek.

Még mindig a PIC belső ferki beállításával szenvedek.
A PICKIT2 ben a osccal értékét a 3FF címen beállítom 0000-től 3FFF-ig bármire, azt beírja (törli a memóriát) rátöltöm a prg-t. Az osccal marad a beállított érték.
Az osc kimeneten mérem a prekit (1.148 MHz) mely nem változik(független az osccal értékétől.
16F630-as 3. lábán.
Mit rontok el?

Köszönettel.
(#) Sendi válasza Sendi hozzászólására (») Júl 19, 2008 /
 
Helló Mindenkinek.

Úgy tünik, hogy tévedtem, az 5. számjegyet állítja.
Két PIC frekije között közel 100KHz az eltérés.
Az korrigálható? Az osccal csak kicsit állít.

Köszönettel.
(#) lidi válasza Sendi hozzászólására (») Júl 19, 2008 /
 
Most akkor tudod állítani végülis ? Amúgy az nemjó ha csak úgy beirsz egy értéket a 3FF címre, mivel annak az (ha jól emlékszem retlw, de nem vagyok asm guru) utasitás opkódját is tartalmaznia kell, nem csak egy osccal értéket. Tehát nem írhatsz oda bármit 0000-3FFF ig. És a programod elején kell a w-ből beírnod az osccalba a kalibrációs értéket.
(#) Sendi válasza lidi hozzászólására (») Júl 19, 2008 /
 
Helló Lidi

Az 5. számjegy már folyamatosan ugrál, de mintha az már változna.(átlagban). De az is lehet, hogy csak beképzelem.
A PICKIT2-ben van egy menüpont (az előbb tanultam),
hogy SET OSCCAL, és az beírja a helyére.

Köszönettel.
(#) lidi válasza Sendi hozzászólására (») Júl 19, 2008 /
 
Nem igazán értem, hogy milyen 5. számjegy ugrál. És az sem világos hogy betöltöd-e az oscal regiszterbe az uj értéket, vagy csak a memoria utolsó tárhlyére írod be. Milyen nyelven programozod ?
(#) watt válasza Sendi hozzászólására (») Júl 19, 2008 /
 
Már egy ideje figyelemmel kísérem ezt a freki beállítást, és bevallom nem nagyon értem ezt a 3FF címre való történetet, ezért ebben a csapásirányban nem is tudok hozzászólni.
Viszont szerintem a megoldás az az OSCCAL regiszter beállítása az adatlapok szerint, amit az induló programod elején feltöltesz. Hogy milyen módon deríted ki a betöltendő értéket, az részletkérdés. Lehet próbálkozni, vagy a PK2-vel kiszámoltatni. Nyílván a betöltés MOVLW cal_érték, majd MOVWF OSCCAL módon kell megtenni, vagy más nyelvekben az ennek megfelelő szintaktisban, pl. OSCCAL=cal_érték.
Csatoltam az adatlap ide vonatkozó részét...
(#) trudnai válasza Doncso hozzászólására (») Júl 19, 2008 /
 
Ha jol megnezed a rajzot az ICSP1-re van rakotve a DC-DC stepup ami eloallitja a 13V Vpp-t, utana ha jol latom ugyanolyan sorrendben vannak a labak ahogy az eredeti PicKit2-ben, tehat:

ICSP1: Vpp
ICSP2: Vdd
ICSP3: Vss
ICSP4: ICSPDAT / PGD
ICSP5: ICSPCLK / PGC
ICSP6: Auxiliary / PGM - ezt nem kotelezo bekotni csak bizonyos eepromoknal vagy ha azt szeretned, hogy LVP-ben programozd a PIC-et, mar amelyiknel ez lehetseges.
Következő: »»   246 / 1318
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem