Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szerintem egy aktívan működő komplett mikroszámítógéptől nem olyan sok az a 2mA. Én még ahhoz vagyok szokva, hogy egy 2.5MHz-es Z80 CPU 100mA nagyságrendű áramokat evett meg, és akkor még hol volt a memória és a többi járulékos kiszolgáló alkatrész...
Az órakvarcok ritka kivételektől eltekintve 32768Hz-esek, én is olyat használok.
Köszi. Majd probálkozok aztán ha elakadok akkor vissza térek.
Látszik nem értek a lóvakhoz. Köszi azért. Kisérletezgetek majd.
Üdv mindenkinek.
A grafikus kijelzőmnek az adatait a PIC-em (18F4620) memóriájában tárolom a gyorsabb futás érdekében. Ugy gondoltam hogy jó lenne összefogni egy structúrába az adatokat és azt hogy melyik page-re írtam és hogy volt-e a legutolsó kiíratás óta változás. Ez így nézne ki:
De a structúra mutatóját nem tudom áttállítni, tehát a GLCD.data = glcdDataArray_ptr; sorra syntax errort dob a C18-as fórdító . A kérdésem hogy meg lehet-e ezt így oldani valamilyen úton?
Szia!
Köszönöm hogy időt szakitottál az én problémámra is. Nagyon jó megoldásnak tünik. Ideje lesz megismerkednem a 18F-es családdal. A programozásuk sokban eltér a16F-töl?
Szia!
Van néhány lényeges eltérés, figyelmesen el kell olvasni az adatlapokat (a 18F2420 és a 18F2423 adatlapjait). A programtár címzése bytos, az utasítás 1 vagy két szavas <-> kiszámított goto. A közös adatmemória helyett a 18F-en az access bank van, az utasítások paraméterében meg lehet mondani, hogy az access bankot vagy a bsr-ben megadott bankot használják. Az utasítás készletet kibővítették, nagyon sok jól használható lehetőséggel, de az utasítások egy része nem ugyanúgy kezeli a státusz biteket (incf, decf állítja a C-t, stb...). Sajnos a 18F-en elég sok hiba van, az erratakat el kell olvasni. (Pont most mértém ki, hogy a 18F252 adatlapján leírt megszakítási rutinbeli visszaállítás nem működik jól a nálam levő példányon - movff reg,STATUS kerülendő). Szia
Idézet: „Ideje lesz megismerkednem a 18F-es családdal. A programozásuk sokban eltér a16F-töl?” Nézd meg a Piccolo project c. honlapomat! Az első fejezetek leírják a PIC18 felépítését, utasításkészletét. Az egyszerű mintaprogramok MPLAB szimulátorban futtathatók, nem kell hozzá hardver (majd csak a kísérleti áramkör című fejezettől kezdődően, de az a rész még embrionális állapotban van).
Hogyne! Van egy csomó nagyon jó utasításuk amik a 16F-eknek nincs. Én például ezeket használtam eddig amik nagyon jól jöttek és a 16F-ek nem tudják: movff, tstfsz, cpfseq, cpfsgt, cpfslt, addwfc, subwfcb, incfsz, decfsz, infsnz, dcfsnz. Szóval van pár.
Üdv mindenkinek!
Adott egy 4X20CH kijelzős ébresztőóra, ami PIC16F876A-t használ. Azt nem tudom eldönteni, hogy érdemes lenne-e egy i2c-s RTC-vel megtoldani az áramkört. Maga az óra, ami a 876-ba lett megírva elég pontos. Ezt leszámítva célszerű a használata? Köszi előre is!
Ezt mi nemnagyon tudjuk megmondani helyetted. Ha kevésnek találod az elem élettartamát, akkor érdemes lehet.
Kedves kissi/Steve!
Először is bocs, hogy ilyen későn reagálok, de egész nap nem voltam gép közelben, de... Én meg nem értem, hogy mit nem értesz. A tények a következők: A szenzor DS18B20, köztudottan a one-wire családba tartozik és mint ilyen egy olyan hasznos tulajdonsággal bír, hogy 1 vezetéken kommunikál, sőt ennek a tulajdonságának köszönhetően, jónéhány szenzort lehet arra a vezetékre ráakasztani. Hát, tulajdonképpen ez is lenne a rendszer lényege, hogy mondjuk 100 db szenzorhoz ne kelljen 100 db portláb, hanem 1 elég kell legyen. Addig nincs is semmi gond amig ismered az összes szenzor egyedi azonosítóját (matchrom command). De ha nem? na ott vannak a bajok. (persze csak nálam) Természetesen nem vagyok annyira bolond, hogy az RB0-ra és az RB1-re kötött 2 db szenzoron ne igazodnék el, de vegyük a konkrét esetemet! Amire a 2 db szenzort kötném az 12F629 névre hallgat. 5 db normál I/O portja van, meg még ugye 1 ami az én esetemben éppen pont a MCLR funkciót kénytelen ellátni. Hidd el, a többi láb totál foglalt, azt most nem fejtem ki, hogy miért... lényeg, hogy 1 láb van 2 szenzorra. ami nem is lenne gond a DS18B20 esetében. 1-10 esetig mondjuk működhetne a korábban tárgyalt, kiolvasom a rom kódot és utána használom verzió.... de itt szerencsére 1000-es nagyságrendről van szó. Szóval nem tudok fölvenni egy betanított munkást 1 hónapra, hogy több ezer szenzor rom kódját olvassa ki és tolja bele a 12f629-ekbe 2-tesével. De még mindig nem oldottam meg a dolgot, úghyog ha Te vágod a Search ROM parancs működését kérlek osszd meg velem. Tényleg sokat segítenél! előre is köszi! The_Saint
Elmondom, hogy mit nem ért
Van a két szenzorod rákötve a PIC-re. Gondolom a két szenzorod nem egymás mellett vannak, hanem egyik pl. belső hőmérsékletet mér, a másik pedig külsőt, vagyis nem ugyanazt méred mindkettővel. Namost a search ROM algoritmus ha lefut, akkor megtudod a két szenzor ROM kódját, de azt már nem, hogy most melyik kód melyik szenzorhoz tartozik. Ezt mi alapján fogod kideríteni? Mert ha ráraksz egy RTC-t és egy hőmérőt, akkor azoknak eltér a family kódjuk, vagyis a ROM kódok ismerete után egyértelmű, hogy melyik kód melyik chiphez tartozik. Vagy a keresés idejére pl. beledugod egyik szenzort nulla fokos vízbe, és a kiolvasott hőmérséklet alapján fogod tudni, hogy melyik melyik?
Szia!
Ááááá...szóval ezt nem értette? Tényleg nem értettem, hogy mit nem ért....Hát most nem tudom az egészet kifejteni töviről hegyire, de a szoftver több szenzort kezel mint 2, de mondjuk jobbára párosával vannak. Egyéb azonosítási eljárások után a szoftver konfigurálható, hogy melyik hőmérséklet éppen mihez tartozik. Nem fog gondot okozni a hőmérséklet alapján eldönteni, hogy melyik szezor hol is van fizikailag. Nem kell hideg vízbe dugni ) Üdv The_Saint
Hoppá...
Azt hiszem tartozok egy elnézés kéréssel.. De legyen mentségem, hogy egy undorító, koszos, büdös helyen kénytelen voltam ingyen 220-as villanyszereléssel tölteni az egész napot és onnan hazavezetni 150km-ert, szinte étlen szomjan. Szóval, kicsit benéztem valamit, így hajnalban, abban amit írtál és ez hozta ki belőlem a kissé cinikus hangnemet. A 'pontokon' szót portok-nak olvastam először. Szóval, elnézésedet kérem!! Üdv The_saint
Sziasztok! Szükségem lenne a watt áltl készített egyszerű Lpt égető nyáktervére. estsleg meg van valakinek? (mert én elkezdtem egy nyáktervet, de nem tudom, hogy jó-e, sőt........)
Segítségeteket köszönöm előre is.
OK, semmi baj, látom Potyo megmagyarázta a problémát... De gondoljuk tovább: én úgy emlékszem, hogy max. 256 eszköz fűzhető fel egy ágra, nézz utána ( de szerintem idáig sem fogsz eljutni, mert a kapacitások gondot fognak okozni a kiolvasásnál!) !
A többezer eszközből mennyi jut egy PIC-re ( hogy ne a világegyetem számára készítendő összes készüléket vegyük számításba egy lábon <-- ne vedd a lelkedre, csak nem tudtam kihagyni!) ! Jó munkát! Steve>
Szia!
Hát általában 2, de a legtöbb 3 szezor 1 lábon... a többi az máshogy azonosítódik. Szóval max 3 szenzort kellene beazonosítani 1 lábon! Üdv The_Saint
Akkor mi a baj ? Megjegyzed a 64 bitből hanyadiknál van ütközés, legközelebb azon a "bit útvonalon" mész és ott ellenkező bitet adsz ki! 3-nál ez nem okozhat akkora problémát!?
Steve
Az "egyszerű" LPT égetőnek nincs nyákterve, ezért egyszerű(össze lehet lógatni 15perc alatt).
Ha nyákos tervet akarsz, építs bonyolultabb LPT-s égetőt, fenn találsz az oldalamon és még egy csomó helyen.
Kicsit bővebben: kiadod a ROM keresést ( ez az F0H !). Erre a felfűzött eszközök kiadják saját azonosító bitjüket, majd annak az invertáltját. Ezután a kontroller kiadja, hogy kiét fogadja el, a többiek ettől kezdve csöndben vannak! Így mennek végig az összes biten. Abból lehet tudni, hogy még több eszköz van fenn a lekérdezésnél, hogy az adott bit olvasásánál ponált és negált alakban is 0-t olvasol!
Az adatlapban szerintem jó a folyamatábra! Steve
Persze néztem azokat is, de nekem még ez az "egyszerű" is bonyolultnak tűnik. Na mindegy, akkor nem ezzel kezdem az elektonikával kapcsolatos ismerkedésem Azért köszönöm.
Huuu... valami nagy baj lehet velem. De én ezt nem értem. Szóval:
Kiadom a parancsot...OK meg nézem, hogy mi jön vissza.. OK aztén megint megnézem.... na itt vesztem el valahol Ha mindkét esetben 0 akkor még van eszköz a dróton...ezt írtad! Ne haragudj, de tényleg nem értem Mondjuk először visszajön 1, ez mit jelent? hogy az első bit, valamennyi eszköznél 1? Ha 0 jön vissza 1. bitként akkor valamennyi eszköz 1. bitje 0? és mi van a komplemensel? Talán egy értelmes kérdés : Melyik az a pont ahol biztosan ismerem már az eltárolható bitet? Üdv The_Saint
A PIC-et hova kell majd beraknom? Mert nem látom a helyét. Teljesen laikus vagyok
Kiadod a parancsot, az eszközök visszaadják az első bitet, mondjuk A eszköz 1 és B eszköz is 1. A következő szeletben A=0 és B=0 (maguktól! ). Akkor a proc azt mondja, hogy akinek az előző bitje 1-es, az folytathatja!
Következő bit A=1 B=0 --> érzékelni 0-t lehet, invertálás után érzékelni szintén 0-t lehet --> proc tudja, hogy legalább 2 eszköz ütközik, ezért megjegyzi, hogy a 2. bitnél ütközés volt és kiküldi, hogy pl. a 2.bit=0 folytathatja és így tovább... A 64 bit után, ha észlelt ütközést,akkor az ütközési pontig lejátsza a bitsort az ütközésnél pedig a másik ágon megy tovább! 2-3 eszköznél ez elmegy, sok eszköznél figyelni kell rendesen!! Remélem érthető voltam ?! Jó munkát! Steve
Köszönöm, így már kezd derengeni a fény az alagút végén. Deeee... még lehet, hogy kell majd kérdezzek.
Üdv The_Saint Idézet: „A PIC-et hova kell majd beraknom?” Azt egy külön áramkörbe, ahol majd használni akarod. Csak a programozás idejére csatlakoztasd a programozóhoz. WATT honlapján nézegesd az ICSP (In Circuit Serial Programming) programozásról szóló részt is. AZ ICSP arról szól, hogy nem veszed ki az álkalmazói áramkörből a PIC mikrovezérlőt, hanem csatlakoztatod hozzá a programozó készüléket (ennek azért vannak elektronikai követelményei), aztán beleírod a programot.
Kérlek olvasd el az oldalamon az ide vonatkozó cikkeket!
Köszi a választ. Olvasok, olvasok ...
Sziasztok
Az lenne a kérdésem ,hogy a mellékelt égetőben hova kellene bekötni a 12f683 pic-t ,hogy égethető legyen előre is köszönöm a választ |
Bejelentkezés
Hirdetés |