Fórum témák
» Több friss téma |
Az lenne az igazan nagy gaz, ha mondjuk az egyik felet lementene, a masikat nem. Miert nem csak siman 4 byte-t mentesz le, hiszen 32 bitbe boven belefer a 10 millio.
Szoval en tennek bele egy jokora pufferkondit es egy kulso fesz erzekelot az AD-ra. Ha erzekeli, hogy a kulso fesz egy kuszob ala csokken, akkor automatikusan menti a negy byte-ot. Indulaskor pedig onnan tolti be a kezdoerteket. Az pedig egyertelmu, hogy a kijelzot a kulso aramforras taplalna, a pufferkondi dioda mogott csak a PIC-et pufferelne. Az eeprom mentesre van peldarutin a PIC adatlapjaban. Azt masold be, menni fog.
Bocsi félreirás volt, mert közbe 6-an beszélnek a fülembe
kerámia akart lenni akkor 100nF-es? köszönöm
Köszönöm
A 628-ban
nincs A/D. A minta szerint csináltam,úgyis hogy ahogy a saját adatlapján van. Menti is, ha kikapcsolom hozzávetőleg onnan ahol volt elindul a program számolgat de ha akármelyik helyiérték 9 után váltaná a következőt inkább nullázódik. Amúgy egy stabkocka + egy viszonylag új 3,7 voltos sanyiericson akksi is lenne benne. -Ja meg valamikor 0-ról indul-
Tudom, hogy ez hasznos, de ezeket inkább egy elektronikai alapok topic elejére kéne tenni, és nem a PIC, hanem általában a CMOS áramkörök alapjai lennének. A probléma az, hogy elektronikai alapok nélkül ez nem megy, de ezt nem neked kell bizonygatnom.
Ettől a megjegyzésemtől eltekintve, támogatom az ötletet. Esetleg a kezdésről írt cikkem linkjét is ajánlhatnám a többi közé? Bővebben: Link Az MCLR kérdésében is pontosítani érdemes. Elkerülhetetlen, hogy itt az égetést is belekeverjük. Tehát, csak akkor kell és szabad 10k-val felhúzni Vdd-re az MCLR-t, ha a PIC saját táppal rendelkezik(céláramkörök, próbapanelek). Ha nem, mint pl. égető adapterek, akkor a Vss-re kell húzni az MCLR-t. Ekkor nem lehet futtatni a programot, de egy adapterben nem is kell. Az MCLR-t akkor is húzni kell valahová a céláramkörben, ha belül kikapcsoltuk, és nem használjuk másra, mert csak bemenet lehet, CMOS bemenetet nem szabad lebegtetni a zavarok miatt és egyébként is programozói módba válthat az indukált, vagy sztatikus feszektől, valamint tönkre mehet. Az XT-t 4MHz alatt használjuk, 4MHz-nél és felette HS. Néhány esetben előfordul, hogy egy 4MHz-es kristály jobban működik XT módban, de nem ez a jellemző. A felsorolásnek nem kell egyből teljesnek lennie, majd bővítjük egy moderátornak elküldött kérésben.
Mind a kettőt sikeresen felprogramoztam, töröltem. Az újraprogramozás viszont nem jött össze. PICkit2 programmerben nem tudom programozni úgy a PIC-et, hogy egyszerűen rákötöm a külső 5V-ot a Vss-re és Vdd-re?
Bocsánat. Hogyan lehet, ha lehet programból az egész EEpromot törölni. Mert még újraírás után sis benne marad 'má meg az érték. Mplabban nem is látom hol lehetne törölni
Ja és, hogy, hogy nem kell semmi az adapterbe a foglalatokon kívül, ha PICkit2-ővel programozok. (Emlékeztek mennyit szenvedtem az MCLR ellenállással...)
A zenetom féle adaptert építettem meg.
A szimulátorban leállítod a programot és és az EEPROM adatterületet átírod az ablakában...
Milyen konfigurációt programozol? Belső oszcillátor, MCLR letiltva, a PGC és / vagy PGD vonal kimenet? Ne adj külső tápot, a PICKit2 programozóban állítsd be a "Use Vpp first program entry" módot. A belső oszcilátor miatt a program elindul, kimenetnek állítja be a PGC/PGD vonalat, mielőtt a programozó elkezdte volna a kommunikációt...
Nemtudsz segíteni abban, hogy, minden helyi értékemnek külön regisztere van amit minden körben beírok az eepromba. Tehát 8 regiszter mentegetek.
EZ a konfig. Mindegyik láb foglalt, úgyhogy gondolom igen. Az MCLR-t ki kell kapcsolni? Hol lehet beállítani azt, amit írtál?
Ha minden körben mentem az eepromba az infókat akkor ahogy olvasom nagyon gyorsan elhasználódik. Mert soknak tűnik a 100E vagy 1M de ha csak 4MHz megy és egy 400 soros program minden körben ment akkor gyorsan összejön a plafon..??
Ilyen gyakori eseményeket nem szoktak EEPROM-ba írni, ez tény.
Akkor mi módon jegyezzem meg pontosan a visszaszámláó értékét tápkimaradás esetén? Csak egy módja van ha lassítom a mentegetéseimet???
Az első normális kérdésed, erre válaszolok is.
Kialakítod a tápellátást úgy, hogy áramszünet esetén legyen idő elmenteni az EEPROM-ba az értéket. Ezt diódával, kondival tudod megoldani. Ki kell alakítani egy gyers ágat, ahol gyorsan megszűnik a feszültség áramkimaradás esetén. A/D-vel, vagy komparátorral figyeled ezt a pontot. A komaprátor gyorsabb(hardver) és ha jól emlékszem a 628A-t használod, abban csak ez van. Köszöbszint átlépése megszakítást generáljon, amikor is elmented a szükséges értékeket. A szimuláció megmondja, hogy mennyi idő alatt történik a mentés(stop watch). Már csak a megfelelő nagyságú kondit kell a PIC tápra akasztani és diódával leválasztani a viszirányú áramokat. Én saccra 1000µF-ra gondolok első körben. Ha kevés duplázd meg, de lehet, hogy 470µF is elég. Nem tudom mennyi a teljes áramfogyasztás. Ha netán túl sok, akkor a PIC-nek külön tápkört kell kialakítani.
Sziasztok...
Mindent összegezve jó az elképzelés? C1,C4,= ez a kondi C2, = ez a kondi C3, = ez a kondi C5, = ez a kondi A kivezetés ledeket fog vezérelni valószínű uln-en keresztül. Illetve a felhúzó ellenállásokra láttam 2.2k Ohm-osat és 470 Ohm-osat is.. Melyik a jobb megoldás? Ha egyáltalán jó az elvi rajz... Köszönöm...
Már egyszer lerajzoltam neked, hogy mik az alkatrészek értékei. Be is linkeltem a kondikat. Ha az 5V előállításához szükséges kondiknál elakadsz, akkor egy ideig hanyagolni kéne a PIC-eket
Szerintem percenkent boven eleg menteni, ha folyamatosan csinalod. Az aramkimaradas alatt nem tudod, mennyi ido telik el, felesleges masodpercre pontosan ujrainditani.
De inkabb azt javaslom, hogy 1. 32 biten tarold a szamot elojel nelkul 2. a kijelzett szamot ebbol kepezd 3. csak akkor ments, ha elmegy a kulso tap
Eltaláltam a konfigurációt... Tools / Use Vpp first Program Entry". Nem szabad ebben az esetben kívülről táplálni.
Néha már tényleg kétségbe esek.. A problémára a választ már több, mint egy éve leírtam a cikkben...
Ez jó ötlet. Még 24 biten is elféne a 10M de hogyan fűzöm össze őket, hogyan származtatok belőlük a decimális helyiértéknek megfelelő számot. Az oké hogy 24 bit az 16.772.215 , de hogyan lesz a 3 darab 8 bites regiszteremből ez a decimális szám?
Köszi! Ha a Use Vpp first-el programozom fel, akkor tudom törölni és újraprogramozni is? Az MCLR-t pipáljam be?
Én ennél még egyszerűbben csinálnám.
Mint az elején írtad, 1 év múlva kell kinyílnia. Nem tudjuk, mert nem írtad, hogy ki KELL nyílnia, vagy akkortól lehet. Ez mindenesetre ~8760 óra. Óránként mented. Ez egy 14 bites szám. Az időintervallum alapján nem számít, hogy esetleg kimarad 1-vagy 2 óra. Ráadásul megoldhatod, hogy ha észleled az áramszünetet, (ami feltételezhetően nem gyakran fordul elő) akkor rádugsz egy backup akkus tápot (ha nem építed be) és folytatja a számolást.
Hat, miutan 4MHz-en ketyeg es van idod, mast ugysem csinal a cucc, en igy csinalnam:
Atteszed ideiglenes taroloba az erteket. Addig vonsz ki belole tizmilliot, amig az eredeti szam ez ala nem csokken. Ahanyszor sikerult, annyi a helyiertek. Aztan akkor addig vonsz ki belole egymilliot, amig ez ala nem csokken. Annyi a helyiertek, ahanyszor sikerult. A vegen szazezer, tizezer, ezer, szaz, tiz. Ami marad az az utolso helyiertek. Mivel a PICed 8 bites, ezert 4 (vagy 3) memoriacimet kell ehhez hasznalnod. A neten van sok peldaprogi, hogyan kell tobb byte-os szamokkal muveleteket vegezni. Sajnos nem egyszeru, mert mindig mind a negy memoriacimmel kell fogalkozni, legalabbis atvitel szempontjabol. Tehat osszeadasnal pl. erdemes az ADC-t hasznalni a sima ADD helyett. Elotte persze carry-t torolni.
Köszi. Jó a Topic, mert kétségbeesnék. Gyakorlatilag ez egy tökéletes kulcs, innen megoldom.
Idézet: „Ha a Use Vpp first-el programozom fel, akkor tudom törölni és újraprogramozni is?” Remélem fogod tudni törölni és programozni... Nem kell bepipálni semmit sem, a program tudja miként kell belépni a programozási módba...
Rendben. Amúgy már kidobtam azokat a PIC-eket Veszek újat. A Use Vpp first legyen bekapcsolva programozásnál és törlésnél is vagy csak az esetleges törlésnél? Holnap megyek a cuccokért. Akkor már ki is tudom próbálni a PIC-et.
Nem is tudom megszámolni, hányszor linkeltem már be ezt az oldalt...
Minek ennyit számoltatni a kontrollert??? (70..80) darab 3 byte - os kivonás + (7..8) db byte - os összeadás + ciklus szervezés... Egy tetszőleges bitszámra bővíthető bináris pakolt BCD átalakító rutin. 16000000 -ig 24 * 4 ciklus egyszerű byte -os műveletekkel...
Csak nem vitték el máris vasárnap és nemzeti ünnepen...
Még egyszer:
Ha a MCLR funkció le van tiltva és a belső oszcilátorral jár a kontroller, a programja elindul a Vdd rákapcslásakor a MCLR láb alacsony szinje ellenére. A program néhány utasításon belül a PGC és / vagy PGD vonalakat kimenetnek állítja be. Hiába viszi a kontrollert programozási módba a programozó, nem fog tudni reagálni az ICSP parancsokra, hiszen nem is érzékel (PGC kimenet) / hibásan veszi (PGD kimenet) az parancsokat. Ekkor kell a "Use Vpp first őrogram entry" mód. Hasonló a szituáció, ha a PGC / PGD lábat T1 oszcilátornak használjuk. Ha a MCLR fnkció engedélyezett, akkor a programozó reset állapotban tudja tartani a kontrollert a Vdd rákapcsolása alatt és után, a program nem indul el. A MCLR egyből Vpp -re vált, és kezdődhet az ICSP kommunikáció. Érdemes lenne a "restore" funkciót alkalmazni a "recycle bin" kiválasztott elemeire (pic kontroller)... |
Bejelentkezés
Hirdetés |