Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A legbelső ciklus teljes hosszát annyiszor kell venni, ahányszor az az eggyel kintebbi ciklusból lefut. Aztán ennek a komplexumnak a hosszát ismét annyiszor, ahányszor a még eggyel kintebbi ciklusból lefut, stb.
Megpróbáltam kisakkozni a programodban az időzítéseket, talán nem számoltam el semmit. Kommentekbe írtam a számítás menetét.
Hát ez nagyon komolytalan már. Nem lenne egyszerűbb egy nyomorult szimulátorban megnézni ? Oldalakon keresztül kalkulálgattok osztotok szoroztok "papíron", mikor az mplab beépített szimulátorával 5 perc alatt ki lehetett volna deríteni már.
Idézet: „NEm áll ettől fejre a vezérlő, hogy menet közben állítom az oszcillátor frekit?” Ugyan csak 16F és 18F PIC-eknél, de ez nem illegális, én már használtam a gyakorlatban is ilyet, semmi baja nincs tőle. Sőt, még attól sincs, ha külső kvarcról belső órajelre vált az ember. 18F-es bootloadernél csináltam azt, hogy belső 8MHz-re váltok, így a bootloader futása közben független a sebesség attól, hogy amúgy az alkalmazásban a PIC milyen órajellel jár. Az órajelváltást a program legelején célszerű elvégezni, ha szükséges, és annyit érdemes az adatlapban megnézni, hogy az órajelváltásnál nincs-e valamyleik SFR-ben egy bit, ami jelzi a stabil, beállt órajelet. Ha van ilyen, ezt esetleg érdemes megvárni, mielőtt a programot továbbengednéd.
Én azt néztem amit Te és ebben nem találok olyan infót, hogy az RCDIV0 reset után változna, de ha nem áll fejre a proci tőle akkor a main-ben lehet ez az első utasítás.
Ez is igaz, de az is, hogy ha valaki tanulni akar, akkor legalább egyszer érdemes ezt végigszenvedni. Ha a szimulátorban lefuttatod, maximum annyit konstatálsz, hogy ennyi vagy annyi ciklus lett a végrehajtás. De nem árt tudni, hogy mitől annyi.
Például ha majd tervezni kell egy adott időzítésű ciklust, akkor jól jön ez a tudás, már csak "visszafelé" kell gondolkodni egy kicsit.
Sziasztok
Olyan elképzelhető-e, hogy egy SMD-s PIC hőlégfúvós kiforrasztás során tönkremegy, ill. elfelejti a tartalmát?(16F872) Mert ha igen, akkor most csináltam egy 25.000ft-s kárt
A belinkelt adatlap 95. oldalán pedig ott van a CLKDIV regiszternél. RCDIV0 bitnél R/W-1 a begjelölés, ami azt jelenti, hogy a bit írható-olvasható, és a RESET utáni állapota 1. RCDIV2:0 001 esetén pedig 4MHz a belső órajel, ez kerül a PLL-re.
Miért, nincs meg a program?
Nemcsak, hogy nincs meg, de miután visszaraktam a helyére már nem működött, úgyhogy duplán meg*tam!
Az IC kiszedő fúvókák vékonyak, csak a lábra koncentrálják a hőt. Ha telibe melegítetted, akkor simán túlmelegedhetett! De ez inkább az SMD forrasztás topic kérdéskörbe tartozna!
Idézet: „de ha nem áll fejre a proci tőle akkor a main-ben lehet ez az első utasítás.” Miért állna fejre, és egyébként másképpen hogyan a fenébe állítaná be valaki a regiszter értékét?
Honnan tudod hogy elfelejtette ? Próbáltad kiolvasni ? Bár lehet hogy kódvédelem be van kapcsolva. Ha működött, (márpedig azt írod kár keletkezett) miért forrasztottad ki ? Nem lehet hogy valami más gond van ? Én forrasztottam ki-be felprogramozitt picet, eddig nekem túlélte. Igaz csak SO-8 -as volt és pákával csináltam.
Idézet: „Ha minden igaz, jelenleg ez az adatlap a jó: 39747D” És még erre is azt írják, hogy "Preliminary"! Vicces, bár ha belegondolunk, nem is annyira... Idézet: „Én forrasztottam ki-be felprogramozitt picet, eddig nekem túlélte.” Persze, ezzel semmi gond, hanem a hogyanon van a lényeg!
Még annyit, hogy az - ITT - található doksikat érdemes átnézni, mert szépen perifériákra bontva, sokkal bővebb infót adnak. (tekintsünk el a hibáktól, amiket az erratákban olvashatunk esetleg)
Igen, ebben explicite írják is, amit az adatlapból ki lehetett silabizálni: FRCPLL mód csak akkor működik, ha a postscaler direkt (tehát 8 MHz) vagy felező (tehát 4 MHz-es) kimenete van kiválasztva.
Idézet: „6.8.3 FRC Oscillator with PLL Mode (FRCPLL) The FRCPLL mode is selected whenever the COSC bits are '001'. In addition, this mode only functions when the direct or divide-by-2 FRC postscaler options are selected (RCDIV2:RCDIV0 = 000 or 001). For devices with the basic 4x PLL block, the output of the FRC postscaler block may also be combined with the PLL to produce a nominal system clock of either 16 MHz or 32 MHz. Although somewhat less precise in frequency than using the Primary Oscillator with a crystal or resonator, it still allows high-speed operation of the device without the use of external oscillator components.”
Azért érdekelne, hogy 2005-ben más volt a mag is, vagy csak rossz volt az adatlap?
Másrésztől én úgy szoktam kivédeni az ilyen böngészés hiányából adódó problémát, hogy összeszedem az összes regisztert ami a perifériát érinti és akkor is beállítom egy értékre, ha annak az alapértelmezése esetleg még jó is lenne a feladathoz. Gondolom ez nem túlzás, ha ezt az esetet is nézem. Azért a 24F nem kezdőknek való, ez is belátható, én is eltúlóráztam rajta egy ideig, pedig akkor már évek óta 18F-eztem. Na de ez is más kérdés...
Anyám! Szóval az a -1 a reset utánni állapot. Hát mindíg tanul az ember, köszi az infót így már tiszta. Akkor ezt a 3 bitet kinullázom és király lesz minden? Ki kell próbálnom azonnal.
Kipróbáltam első sor _RCDIV0=0; És láss csodát! Királyok vagytok, most főleg szilva. DE jó beljebb léphetek jöhet a soros port, kezdhettek rettegni
Sziasztok!
Ma este sürgősen szükségem lenne 3,3V stabil tápra, de szar stabilizátor IC-t kaptam. Arra gondoltam, hogy egy PIC PWM kimenetével előállítanám ezt a feszültséget. Ez hülye ötlet? Csak maximum 320 mikroAmper-el fogom terhelni. Ha mégsem olyan rossz ötlet, akkor kell valahogy még ezt szűrni? Hogyan? Köszi! goo
Sziasztok!
Ma este sürgősen szükségem lenne 3,3V stabil tápra, de szar stabilizátor IC-t kaptam. Arra gondoltam, hogy egy PIC PWM kimenetével előállítanám ezt a feszültséget. Ez hülye ötlet? Csak maximum 320 mikroAmper-el fogom terhelni. Ha mégsem olyan rossz ötlet, akkor kell valahogy még ezt szűrni? Hogyan? 5V-ból szeretném előállítani. Ha spontán nem jó így, akkor egy átlag tranzisztor elég gyors ahhoz, hogy a 20kHz-es PWM-jelet kövesse? Remélem érthető, még ha nem is tudom okosabban megkérdezni, amit akarok. Köszi! goo
Húúú....Szilva, Te nehéztüzérséggel érkeztél, hogy beletömködd a fejembe az infót. Sikerrel
Még párszor átolvasom, hogy teljesen megjegyezzem a menetét. A RETURN 2 órajelciklusa az nem kell a számítás végére? Vagy az nem számít?
Milyen pontosság kell? Ha ez csak egy kisfogyasztású IC tápfeszültsége (pl. hőmérő), akkor egy 3-10 mA-es ellenállásosztó is megteszi.
Idézet: „Szóval az a -1 a reset utánni állapot.” A táblázat alatt vastag keretben ott a jelmagyarázat is: -n a Pover On Reset utáni állapot (gyk: -n lehet -0 vagy -1)
Szia!
Hát egy LCD kijelző tápjának kell. Muszáj lenne ma már megszólaltatnom, mert kifutok az időből. Itt az adatlapja. Egyébként egy PIC16F887-el akarom most először SPI-n keresztül megszólaltatni. Lehet az is jó, hogy a PICKIT2 programjában 3,3V-ra állítom a feszültséget? Működik-e így 4MHz-es, vagy 8MHz-es belső órajlről a PIC? Elbírja a PIC-et is meg az LCD-t is a PICKIT2, meg az USB port? Tudom így már kicsit összetettebb a kérdés, de hátha... Idézet: „Működik-e így 4MHz-es, vagy 8MHz-es belső órajlről a PIC?” Mi nézzük meg helyetted az adatlapot? (Figure 17-1) Idézet: „Elbírja a PIC-et is meg az LCD-t is a PICKIT2, meg az USB port?” LCD árama 320uA, PIC árama néhány mA. Pickit2 mennyit tud adni? Egyszerű matematikai feltételt kell kiértékelni (fejből), és már meg is van a válasz.
Szerintem nem bírja. Mintha egyszer próbáltam volna és nem tudta, külön tápot kellett adni, utána ment, de egy 3,3V-os stabil táp áll egy icből minden elektronikai boltban kapható meg 3 kondiból esetleg még egy diódából, akár össze is forraszthatod a lábaikat olyan egyszerű a kapcsolás.
Potyo! A 320uA, nekem is megvolt, előbb írtam. Megnéztem az adatlapot, de köszi az iránymutatást én simán elcsúsztam felette mindig. Már, a frekvenciás rész felett.
Gulasoft! Hoztak nekem 3,3V-os IC-t, csak nem olyat, amilyet szerettem volna, nincs meg hozzá a körítés (egyéb alkatrész). De majd kísérletezem vele. Majd szólok mi lett... Köszi mindenkinek.
Egy zenerrel is tudsz olyan tápot csinálni pár mA "elpocsékolása" árán, ami egy LCD-nek bőven elég. Ha nincs 3V körüli zenered, akkor össze lehet rakni LED-ekből is megfelelő feszültségesésű cuccot. Ha minden kötél szakad, egy trimmerpotival és egy NPN tranyóval is összeüthetsz 3.3V-os "tápegységet", csak itt vigyázni kell, hogy az 5V-tal arányosan változik a 3.3V is. Bár, ha az 5V stabilizált, akkor én leginkább egy ilyet építenék.
|
Bejelentkezés
Hirdetés |