Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szia!
A fentebb leírtak csak 8 bites módban működnek. A 18F timer1 kezelésénél lehetőség van a regiszterek 16 bites egyszerre történő kezelésére is, ekkor a TMR1H nem érhető el direkben. Olvasáskor, ha a TMR1L-t olvassuk, a TMR1H értéke egy átmeneti regiszterbe tárolódik. Így biztosítják, hogy a 16 bit összetartozó legyen. Íráskor a TMR1H írásakor egy átmeneti tárolóba íródik be az adat, a TMR1L írásakor fog a 16 bit egyszerre a számláló regiszterekbe töltődni. Tehát a TMR1H közvetlenül nem érhető el ebben a módban, mindenképen írni kell a TMR1L regisztert is. Mivel a Timer1 errataban sok 18F is szerepel, az regiszterek írását körültekintően kell végezni. Lehet az Access Bank felhasználásával is írni / olvasni a speciális célú regiszterelet: pl. bsf TMR1H,7,A... Szia
Ez a bit shiftelős is érdekes, de csak akkor ha ez is egy darab bsf/bcf re fordítódik. Majd lecsekkolom, köszi.
Az, hogy "X |= 64" -et avagy "X |= 1<<6" -ot irsz-e a forrasodban, az a forditastol ilyen szempontbol mindegy, hiszen az "1<<6" literalisnak kiertekelodik meg mielott a tenyleges forditas megtortenne. Azaz az eredmeny ugyanaz kell legyen mindket esetben.
UI: Ja es az, hogy ebbol lesz-e BCF/BSF az az optimalizaciotol fog fuggeni, azaz pl. a student edition C18 lehet nem csinal neked ebbol bitbillegtetest. AVR-eknel ez a fajta shiftelgetes amugy teljesen bevett szokas, es a gcc optimalizaciojara van bizva mit muvel belole -- tapasztalataim szerint ha csak kis lehetoseg is van ra leforditja bitbillegtetesre. Szemely szerint jobban tamogatnam ha bitfielddel lennenek ezek megoldva. Lehet neked is sikerul definialnod egy ilyen bitfieldet a TMR1H-ra es akkor valoszinuleg egyertelmu lesz a helyzet. De olvasd el azt is amit Hp41C irt...>>>>
Az adatlapban az A/D modulnál használt acquision szó magyar megfelelője a mintavétel? Acquision time=mintavétel ideje? Néha a sample szót használják, így bizonytalan vagyok.
Kezd leesni.
Sample time = acquisition time + conversion time vagy mégse?
Acquisition time a töltés ideje, ennyi kell, hogy a bemeneti kondi feltöltődjön.
Ott a kibovitett szotarban a legutolso jelentes...
[OFF]Angolban nagyon sok szo van, sok arnyalattal. Ennek sok oka van, pl hogy a German nyelv keveredett eloszor a Latinnal mig meg ott voltak a Romaiak, aztan mikor bementek a Normanok akkor a Francia nyelvvel, es kozben a Walesi, Skot es Ir nyelvekbol is szedtek fel -- meg kesobb nyilvan mindenhonnan ahogy gyakorlatilag elfoglaltak az egesz vilagot. Na mindegy, csak azert irom, hogy nem kell fennakadni ha (majdnem) ugyanazt maskepp hivjak ekkor vagy akkor, sot elmeletileg az Angol nem is szereti ha valaki ismetelgeti a szavakat...
Kető különböző kérdésem lenne! Az egyik,hogy ha hálózati trafó szolgáltat tápot a PIC-nek 7805-el stabilizálva, bármilyen kondit rakok zavarok ellen akkor is beszed zavarokat a hálózat felöl és néha resetel, ezt hogy lehet kivédeni?
A másik,hogy egy fordulatszám mérőt készítettem robogóhoz PIC16f874-el, ami elemről működik,de ha közelítek a motor felé már akkor meg zavarodik ez 4MHz rezonátorral,gondolom a gyújtás zavarja,de hogy lehet ezt rendbehozni?
Mutasd meg a kapcsolási rajzot, illetve a kész áramkörről is jó lenne egy-két fénykép.
Ahogy potyo mondja: Kapcs rajz a halozati trafoval egyetemben... Amugy milyen kondikkal kiserleteztel? Egy nagyobb elektrolit + egy olyan 100nF keramia kellene a 7805 kimenetere + meg egy 100nF keramia a pic labara kozvetlen.
Elemesnel hasonloan + ott nem tudom a BOR nem jatszik-e be? Milyen elem stb -- nade ugyis majd felteszed a kapcsrajzot es akkor kiderul...
Hát sikerült a soros kommunikációt és egy port állítgatását párhuzamosítani, miközben a porton van "delay" is, úgyhogy mostantól a cnc fúróm kódjának megírása már csak robotmeló. A lényeg az volt, hogy mivel 2 motor fog menni, és közben még kommunikálni is kell a pc-n futó vb programmal is soros porton, ezért ki kellet találnom valamit, hogy a sorost ne fogja a delay, de ne is rángassa a portot olyan gyorsan amitől a motor fejre áll, ráadásul az x, y tengelyt egyszerre tudja mozgatni külön külön időzítőkkel.
Most még kell csinálni egy 250us-es időzítőt, és rá lehet engedni a motorra, de ehhez csak az 1ms-es időzítő értékét kell negyedére venni, vagy csinálok egy 125us-es időzítőt ehhez meg csak a prescallet kell 64-ről 8-ra csökkenteni. Szóval jó ez a c nagyon, csak szokni kell, meg ugye egy jó pic amiben van 3-as 4-es időzítő is (bár erre elég 2 is) vagy 1 ha a prescallet nem piszkálom, és jól belövöm az időzítőt, de mennyivel kényelmesebb ha 5 időzítővel játszhat az ember)
Üdv nagytudásúak!
Lenne egy primitivusz kérdésem! Hogy lehet megoldani azt hogy a PIC RS232-n kiküld a PC felé egy adatot és ez az adat bekerüljön a C:\ meghajtó X könyvtárába xy.txt néven? Ötlet?
Úgy, hogy írsz egy programot PC -re, ami ha fut, akkor a bejövő adatokat kiírja egy file-ba.
Sejtettem... Esetleg valami infót hogy merre induljak el?
Én pl C++ Builderben csináltam soros kapcsolatot. Ez olyasmi a mint a visual basic, vagy Delphi, csak C nyelven. Kidobálod a komponenseket egy formra, megírod az eseményekhez a programrészeket és kész is vagy.
Szia
0. ötlet copy com1: c:\x\xy.txt - csak az a baj vele, hogy nem buiztosított, hogy az adatot egyben, akkor tegye be a fájlba, amikor az jön.... 1. ötlet. Program készítése(C,C+,C++,C#,C#..., Delphi, VisualBasic, stb...), ami megvárja az adatblokk kezdetét, összevárja a teljes adatmennyiséget, amit a fájlba be kell tenni, ha ez mind megvan beleírja a fájlba. Problémák ezzel is vannak: A fájlt meg kell nyitni egy másik feldolgozó programmmal, amikor az olvassa, nem kellene írni, ha rosszul (kizárólagosan) nyitja meg, nem lehet a fájlba írni. Mi legyen akkor, ha a fálj létezik.... 2. ötlet. A soros port kezelését a feldolgozó programba beépíteni. Szia
Köszönöm szépen az instrukciót! Nos utóbbi probléma megoldott mert a PIC által mért, gyüjtött adatokat ha ki tudnám tenni egy xy.txt fájlba, egy adott könyvtárat figyelő gyári program megtalálná, beolvasná és törölné.
Valamit kiokoskodok...
MikroC-ben programozom a PIC-et, a C++ gondolom hasonló nyelvcsalád.
Ég és föld.
Ha gondolod tudok küldeni egy vb progit ami egy file-t nyit meg az toronként átküldi egy picnek az visszaküldi egy @-al a végén innen tudja a vb progi, hogy mehet a következő sor. A PIC az c30-ban van írva, mert egy 24fj128Ga008
Szép estét. Analóg úton már sikerült készítenem egy nem invertáló erősítőt, mely 1 V-os jelet 0.6-1.2V között lehet erősíteni. Most egy PIC-el szeretném megoldani, már olvastam a pickekről és a C nyelvet is tanulom. Nem az lenne a kérésem, hogy csináljátok meg helyettem, hanem az, hogy milyen elv alapján lehet megoldani. Mert a pic-eknél digitális be/ki menetek vannak. Válaszokat előre is köszönöm.
Valószinüleg bemenetnek az AD-t használnám. Egy kis függvénnyel konvertálnám a kapott értéket és kitenném egy portra mondjuk ellenállás létrára. Így talán megoldható az AD/DA konverzió. Hozzáteszem, szerény véleményem szerint ehez pont nem előnyös a PIC. Egy megfelelően belőtt opa-val egyszerűbb. Szóljatok, ha hülyeséget beszélek.
Köszi, az analóg módszerrel az a gondom (ezért szeretnék PIC re váltani), hogy minden egyes bemenethez más analóg áramkört kell építenem. Tehát 4-5 féle jelhez kell építenem 1-1 analóg erősítőt. PIC el megoldanám, hogy "x" V-nál "y"-t erősítsen.
Köszönöm a segitséget, érdekes kis "biblia" !
Van digitális potenciométer és digitálisan változtatható erősítésű erősítő (Programmable Gain Amplifier) is. Ha mindenáron PIC kell, akkor inkább csak ezeket kezelgesse!
A digitalizálás elvileg rosszabb megoldás, mert késleltetve és torzítva kerül a kimenetre jel. Lehetnek persze olyan alkalmazások, ahol ez nem számít.
A pickit2 nem írja, hogy a PIC16C765-t égetné, vagy én nem látom jól?
Igazad van, elneztem. Sajnos viszont akkor nem tudom mivel lehetne programozni...
|
Bejelentkezés
Hirdetés |