Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   90 / 1319
(#) menyus válasza watt hozzászólására (») Okt 29, 2007 /
 
Áhh, én már nem merem mondani semmire hogy értem mert olyankor mindíg kiderül hogy nem értem az egészet.. Azért fogalmaztam óvatosan az előbb hogy kezdem érteni, de nem akarom magamat sem megcáfolni szóval nem értem.. érted? ...

"Komolyra" fordírva, nekem a végén ha jól számolok kb 10 - 11 el kell osztanom ahhoz hogy a potmétert elejétől a végéig tekerve 0 - 10 értékeket kapjak a kijelzőn. Tehát ha nincs térerő akkor egy 0 hoz közeli értéket kapjak, ha nagy térerejű állomást veszek a rádióval akkor 10 körüli értéket mutasson. Ez az egész függ a referencia feszültségtől vagy sem? Mert most úgy van állítva a program hogy a tápfeszt veszi referenciának. Viszont nekem a max térerőhöz tartozó DC értéke 2 V DC. Tehát szerintem mielőtt bármit is csinálnék be kell állítanom az RA2 lábon a 2 V referencia értékét és átprogramozni az ATCON0 reg. 6. bitjét hogy ne a VDD t vegye referenciának. Vagy a referenciától függetlenül mindíg 0 és 10 közötti értéket kapnék a kijelzőn?
(#) bbalazs_ válasza MPi-c hozzászólására (») Okt 29, 2007 /
 
Nem, csak egyszerubb volt a megszokottakat hasznalni. A goto-t is makroztam jmp-ra.
Csinaltam kis move utasitast, meg movbb/movww-t, stb. Minel tobb dolgot igyekeztem kozositeni, hogy minel kisebb megrazkodtatas legyen.
De az assemblybol nem engedek, egy mikrokontrollert C es felette programozni nem az en vilagom...
(#) bbalazs_ válasza menyus hozzászólására (») Okt 29, 2007 /
 
Termeszetesen fugg a referenciatol.
A ref- az also ertek, a ref+ a felso.
Ha 5V-ot adtal a ref+-nak (es a ref- a gnd) akkor ertelemszeruen 5/1024 V a lepeskozod. Ha ilyenkor 2V-ig terjed a jeled, akkor kevesebb, mint a felet tudod kihasznalni a pontossagnak, bar szerintem az 1-10-es skalaba az is boven belefer. De ilyenkor mondjuk az 1023-as max. ertek helyett nalad a 2V-hoz tartozo kb 400-as ertek. Efelett nem fogsz erteket kapni.

Ha a referenciat 2V-ra kotod (kulso referenciaIC-bol vagy egyszerubben egy feszosztoval (ket ellenallas)), akkor maris 2/1024 a lepeskoz, ebben az esetben az AD teljes tartomanyat kihasznalhatod.
Tulfeszultseg 5V-ig nem okoz problemat, csak persze 2V felett minden 1023 lesz...
(#) bbalazs_ válasza menyus hozzászólására (») Okt 29, 2007 /
 
Nem, hanem kb 204-el kell elosztanod, ha a 10 bitet ki akarod hasznalni. Ha eleg a 8 bit, akkor kb 25-tel.

A problema szerintem innentol kezdve mar elegge alapszintu, ha ezekkel gondjaid vannak, akkor javaslom, hogy rajzold le egy kockas fuzetbe. Ezzel vizualizalod a gondot, nekem is sokszor segit.
En meg szoktam mm-ben is rajzolni, legalabb korulbelul kiderul, hogy jo-e az ertek
(#) szidom hozzászólása Okt 29, 2007 /
 
Sziasztok!

Légyszi valaki mondja meg mi a külömbség a kettő között:
"PIC16f877A-E/P"
"PIC16f877A-I/P"

Köszi!

(#) bbalazs_ válasza szidom hozzászólására (») Okt 29, 2007 /
 
Valoszinuleg a hasznalhato homerseklettartomanyban.
(#) bbalazs_ válasza bbalazs_ hozzászólására (») Okt 29, 2007 /
 
illetve 102-vel kell osztanod - faradok...
(#) watt válasza bbalazs_ hozzászólására (») Okt 29, 2007 /
 
Én úgy tudom, hogy a referencia fesznél nagyobb fesz nem szabad ráengedni az AD-re. Rosszul tudom? Ha igen, hol találom ezt az adatlapban? Köszi!
(#) watt válasza menyus hozzászólására (») Okt 29, 2007 /
 
Ha osztás rutinokat keresnél, találsz az oldalamon, ábrázolva hogyan működik az elve.
(#) MPi-c válasza bbalazs_ hozzászólására (») Okt 29, 2007 /
 
Persze! Semmi sem tiltja, hogy neked tetsző megoldásokat alkoss, ha úgy kényelmesebb a programozás.
Láttam már olyat is, hogy a z80-ra hasonlító utasításokkal programozták a PIC-et.
(Akit érdekel, a beépített makróutasításokat itt tanulmányozhatja.)
(#) menyus válasza watt hozzászólására (») Okt 29, 2007 /
 
Köszönöm a fejtágítót Neked is, és "bbalazs" nak is. Minden nap tanulok valamit. Körülnézek az oldaladon, meglesem a példaprogramokat hátha ragad rám valami a koszon kívül.
(#) bbalazs_ válasza watt hozzászólására (») Okt 30, 2007 /
 
Watt, ugy tunik, igazad van. Bar az absolut max. ertek csak a tapfeszrol szol, az AD reszben 0.3-mal mehetsz a ref+ fole max. Akkor viszont Menyus zener diodat fog vadaszni, asszem 2.1-es van is.

(#) watt válasza bbalazs_ hozzászólására (») Okt 30, 2007 /
 
Igen, de a Zener diódák már a nyitásuk előtt kezdenek terhelni és ezért az előtét ellenálláson(ami nélkül ugye nem véd, hanem füstgépet alkot), esik a fesz ,ami hibás mérést okoz. Ezt én tranyó+zener áramörrel oldottam meg, de ez is kétélű, mert csak ott működik, ahol lehet terhelni a mérendő feszt, pl. akkutöltő.
Itt mivel 10 egységre akarja a poti teljes tartományát lebutítani, maradhat az 5V referencia, nem okoz semmi bajt, csak az általad említett végértékek szerint kell az egész osztás történenet elvégezni. Ekkor védelem sem kell, csak egy 100n-s kondi szűrésnek, zavarevőnek!
(#) szidom válasza bbalazs_ hozzászólására (») Okt 30, 2007 /
 
Köszi!
(#) menyus válasza watt hozzászólására (») Okt 30, 2007 /
 
Hát igen, ahogy "halad "ez a dolog előre úgy szaporodnak a problémák. És az még nincs benne hogy mivel ez egy 9 V ról járó elemes vevő lenne, jobb lenne az egészet 3 / 3,3 V ról járatni. LCD t már szereztem hozzá ami megy 3 V ról, viszont ezek szerint akkor jól át kell gondolni ezt az egész osztás dolgot. Azért nem mondtam mert gondoltam ezt a programozási dolgot gyorsan megtanulom ( ) és akkor megírom a végleges változatot. De ez a dolog sokkal bonyibb mint aminek az elején látszott. Legalábbis egyelőre annak látszik még. Meg most + ban hozzájött az is hogy azt mondták az új LCD HT44780 kompatibilis, no mármost megjött a cucc, nézegettem az adatlapját és csak részben az. Azt is át kell variálni a programban. Szóval az az érzésem ezidáig szinte semmit nem csináltam viszont (hála nektek) sokat tanultam. :yes: "Vissza a kályhához..."
(#) menyus válasza menyus hozzászólására (») Okt 30, 2007 /
 
Erősen gondolkodom rajta, hogy kell e nekem LCD s térerő mérő a vevőmhöz...? Lehet megelégszem egy komparátorral meg egy BATT LOW LED el . Persze ez csak vicc volt, azért is addíg mókolom ezt az LCD s dolgot amíg össze nem hozom. Különben is annyi pénzemben meg ráfordított munkaórámban van már hogy luxus lenne feladni... Meg akkor sosem "tanulom meg" azt a programozósdit, legalább alapfokon.
(#) watt válasza menyus hozzászólására (») Okt 30, 2007 /
 
Idézet:
„viszont ezek szerint akkor jól át kell gondolni ezt az egész osztás dolgot.”

Ne hagyd, hogy az a vélemény alakuljon ki benned, hogy ez bonyolult! Foglalkozz kicsit a számrendszerekkel, értsd meg, hogyan működnek bennük a műveletek, mi az a túlcsordulás és mikor miért következik be. Bontsd le az osztást-szorzást, összeadásra-kivonásra.
Nézd az adatlapokon az asm parancsokat, melyik mit csinál(részletesen le van írva, ha nem értesz egy jelet, kérdezz!!), és próbálj az általuk kínált lehetőségekkel operálni. Nem sok parancs van amit használunk, és mág kevesebb ami fejtörést okozna!
A másik, hogy van időd, ne add fel, ez még sokat érhet neked! Én is hobbiból kezdtem neki, most meg +100ezreket keresek egy egy, ritkán ugyan, de becsöppenő projecten! És közben nagyon jól szórakozom!
(#) menyus válasza watt hozzászólására (») Okt 30, 2007 /
 
Pont ezért kezdtem el foglalkozni ezzel a PIC dologgal mert én is látom / rájöttem hogy ez a jövő útja. Ezt az egész elektronika dolgot én is hobby szinten kezdtem még kissámlis kölyökkoromban. Van még bőven mit tanulnom minden téren. De jelenleg én is ebből élek, itthon dolgozom a saját egész jól felszerelt kis 12 nm es műhelyemben. Megtalálnak egyedi dolgokkal, elmondják mit szeretnének (én elmondom mit lehet, mert kitalálnak néha agyament dolgokat... pl a múltkor egy magán klinika lenyelhető kamerát akart 2,4 Ghz en..stb , no ezt pl. nem mertem bevállalni.. ) én megcsinálom. De egyre gyakrabban találnak meg olyan dolgok fejlesztésével amit a hagyományos áramkörökkel csak kéttenyérnyi méretben tudnék megtervezni. Egyre inkább tünnek el a piacról olyan IC k amiket már csak PIC el lehet kiváltani vagy kell melléjük a PIC. Ez a körömnyi PIC ami olyan mint az üres pohár "azt iszol belőle amit akarsz " , bármit meg lehet vele oldani csak érteni kell hozzá. És tényleg jól szórakozom közben...mert ezt imádom csinálni
(#) menyus válasza watt hozzászólására (») Okt 30, 2007 /
 
A "túlcsordulás" szerintem azt jelenti amikor egy számláló elér a végéig és előlről kezd számlálni. Pl egy 10 bites számláló esetén ez 1023 után következik be. "Alucsordulás" meg szerintem az ha a számláló visszafelé számol és eléri a 0 - > 1023 állapotot. Vagy nem jól tudom ezt sem?
(#) watt válasza menyus hozzászólására (») Okt 30, 2007 /
 
De jól tudod, de nem feltétlenül ezt kell megragadni. A lényeg inkább az, hogy nem fér bele a rendelkezésre álló bitszámba a kapott érték, ezért átvitel keletkezik, ami a Carry-be lép. A Carry a +1. bit, amit át kell vinni a másik bájtba, mert különben elveszik! Ez a 10-es számrendszerben is így van, csak ott maradéknak nevezzük.
(#) menyus válasza watt hozzászólására (») Okt 30, 2007 /
 
Tehát a carry a 8 bites regiszterbe nem beleférő bit értékétől függően lehet 1 is és 0 is. És csak akkor kell törölnöm ha 1, különben nincs értelme törölni gondolom. A Status regiszteren belül van olyan hogy Carry/ Borrow és Digit Carry / Borrow. Mi a különbség a Carry és a Digit Carry között?
(#) bbalazs_ válasza menyus hozzászólására (») Okt 30, 2007 /
 
A byte-on belul ha a felso nibble-re tortent atvitel, akkor lesz magas.
En meg eletemben nem hasznaltam...

A carry a kilencedik bit. Igy fogd fel, konnyebb megerteni.
Tehat carryt torlod, 255-hoz hozzaadsz harmat, akkor az eredemeny 2 es a carry magas lesz. Vagyis tulajdonkeppen 102H-t kaptal.

Amikor kivonsz, akkor magasra allitod (tulajdonkeppen hozzaadsz 256-ot). Ha a kivont ertek nagyobb, mint amibol kivontal, akkor 'negativ szam' keletkezik, amit konnyu detektalni, mert a carry 0 lesz.

Neked kell beallitani MINDEN esetben, ha hasznalni akarod az elonyeit. Egyebkent szoktak pl. rutinbol valo visszatereskor egyszeru hibajelzesre hasznalni (c=0 nincs hiba, c=1 hibas lefutas). Tehat nem kotelezo hasznalni.
(#) watt válasza menyus hozzászólására (») Okt 30, 2007 /
 
bbalazs által említett nibble, az a fél bájt, tehát 4 bit. A többit érted gondolom.

A Carryt nem kötelező törölni, hanem van olyan mikor szükséges(ilyenkor felesleges vizsgálni, hogy 1, vagy nem).
A törlés szükségessége attól függ, hogy milyen művelet következik egy a Carryt beállító művelet után.
Mert ugye nem mindegyik művelet állítja a flageket(STATUS regiszterben vannak a jelző bitek, amiket flageknek is szoktunk nevezni, ilyen többek között a Z és a C) és amelyik igen, az sem feltétlenül mindegyiket!
Valamint nem mindegyik utasításnak okoz gondot a C, vagy Z állapota. (pl. MOVF)

Nézzd meg az utasításokat, melyik milyen flaget állít, ill. nem állít! (pl. MOVWF állít, SWAPF nem állít!)

(#) watt válasza watt hozzászólására (») Okt 30, 2007 /
 
Bocsi!! A MOVWF nem állít!!!

A MOVF állít(Z-t), SWAPF nem állít!

Idézet:
„Valamint nem mindegyik utasításnak okoz gondot a C, vagy Z állapota. (pl. MOVF)”

Ezt pedig úgy értem, hogy beálítani beállítja a Z-t, de a a C, Z , DC állapota nem befolyásolja a végeredményt.
(#) menyus válasza watt hozzászólására (») Okt 30, 2007 /
 
Köszi mindkettőtöknek, akkor most megemésztem az új infókat, átgondolom mit is szeretnék, és ezek ismeretében nekifutok újra a programomnak. Majd beszámolok az eredményről...

(#) potyo válasza gyengus hozzászólására (») Okt 30, 2007 /
 
Idézet:
„sajna nem tom, mennyi idő alatt szedte össze, de majd vhogy megfigyelem
egyelőre 5536-ra állítottam, így kerek 200 jön ki osztónak
most látom, szabi_o is az 5536-ra (15A0) szavaz
én nem állítottam be másik megszakítást”
Arra szavaz, mert a számítással annyi jön ki. Viszont az a kód, amit beírtam, a szimulátor szerint 15B0-nál jár pontosan azért, mert a Timer adott időre le van állítva, és mert közben van néhány utasítás. Persze ha nincs másik magas prioritású megszakításod, akkor simán mehet csak a hozzáadás is, nem kell a túlcsordulásra figyelni. De arra vigyázz, hogy először ki kell olvasnod a TMR0L tartalmát egy bármilyen változóba, majd a TMR0H-ba beírni a felső bájtot, és az ideiglenes változódhoz hozzáadni az alsó bájtot, majd ezután írni vissza a TMR0L-be az ideiglenes változót.
(#) gyengus válasza potyo hozzászólására (») Okt 31, 2007 /
 
Ha nem muszály, nem variálok a kódon, inkább finomítom a kompenzálást.
5536-al késett, ha jól emléxem, aztán 5544-re állítottam (5536+(5552-5536)/2), sok óra alatt 1 másodpercet késett, ezért most 5540-el próbálkozom.
(#) potyo válasza gyengus hozzászólására (») Okt 31, 2007 /
 
Akkor valószínűleg az oszcillátor nem a névleges frekvencián jár. Mondjuk nem csoda, ezek a nagyobb frekis kvarcok nem szoktak atomóra pontosságúak lenni, de azért be lehet célozni nagyjából pontosra, ha egy kicsit állítgatjuk a programot.
(#) edgaar hozzászólása Okt 31, 2007 /
 
Hali !

Mostanában kezdek PIC-ezgetni, gondoltam építek egy 7 szegmenses órát így elsőre, aztán majd ha az jó akkor bele hegesztem a nixie csőveimet, de egyelőre nem akarok azzal szenvedni, csak menjen az alap. Csináltam egy rajzot közös anódos kijelzővel. A kijelző panel készen van, anódok AN0 .. AN3 ig, meg az összekötött szegmensek normálisan A .. G ig. Tehát van 7 madzag, most készültem el a PIC nyákrajzával, belinkelem, légyszi nézzetek rá hogy mit csináltam nemjól

Felmerül egy igen fogós kérdés: A 2 beállító kapcsoló bekötésével kapcsolatban.. amikor a ledeket akarom világítani akkor egyértelmüen kimenet a pin, amikor viszont időt akarok állítani akkor ugye bemenet kéne legyen. Ahogy a rajzomon van olyasmi példákat láttam, de semmi épkézláb forráskódot a kezelésre. Valaki elmagyarázná hogyan kell ezt a progiból lekezelni ?

A rajz

Ja igen! Milyen kristályt használjak ? Mi az ami egyszerübbé teszi majd a programot ? 4MHz vagy 32.768KHz ?

Előre is köszi minden segítséget !

Edga'r
(#) gulasoft hozzászólása Okt 31, 2007 /
 
Megépítettem a pongot, és működik rendesen, tök buli atom retro feeling, csak a szögek nem változnak attól függően, hogy az ütő melyik részével találom el a labdát, ezt majd még át kell írni.
Következő: »»   90 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.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