|
|
| PIC - Miértek, hogyanok haladóknak.. |
|
| Témaindító: G-Lex, idő: Jan 9, 2006 |
|
|
|
|
|
Talán próbálj meg hosszabb konvertálási időt beállítani és a bemenetre egy 10K ellenáláson át vezesd a jelet.
Nálam annyira nem ugrál az ADC. Igaz én BASIC-et használok, ezért az Assmebly-hez nem sok konyitásom van.
Az én kérdésemre még senki nem jött rá? |
|
|
A Timerhez biztos jól van minden beállítva?
Mennyi az az ADC ugrálás? Az nem okvetlenül a pic hibája, lehet a referenciaként használt feszültségé is. |
|
|
Jah. Szernitem jó volt beállítva.
Fluoreszcens kijelzőnek a digitek közötti kapcsolgatásra akarom használni.
4MHz-es órajel, tehát a Timer0 1MHz-el dolgozik.
beállítottam a legnagyobb osztást tehát 256-ot.
Ekkor olyan lassú lett hogy a Fluoreszcens kijelzőn a digitek átmentek futófénybe. kb 0.5 másodpercenként volt az interrupt. amit akár hogy is számolom nem lesz 15Hz, ami a képlettel kijött. |
|
|
Igen, én is gondoltam, hogy a konvertálási idő növelése növeli a pontosságot, ezért a lehető legnagyobb konvertálási időt állítottam be.
Amikor ez nem jött be, külső referenciát kötöttem rá.
Aztán arra gondoltam, hogy a bemeneti ellenállással lehet baj, mert a meghajtó impedanciára max. 2.5k-t adnak meg. Próbáltam csökkenteni meg növelni is - ugyanolyan.
A következő próbálkozás az volt, hogy a konverzió idejére sleep állapotba váltottam, de abból csak a reset hozta vissza, pedig a megszakítás be volt állítva rendesen.
Az ugrálás mértéke +-1lsb, de ez pont elég arra, hogy egy lassan, folyamatosan változó jelet ne lehessen vele követni.
Mennyi az a "nem annyira ugrál"? Milyen tipust használsz? |
|
|
Jah! Azt hittem te többre gondolsz. Nálam is kb ennyire szokott ugrálni. De eszembejutott, hogy az egyik hőszenzor adatlapján láttam megoldást rá(lásd melléklet). E nélkül nagyon össze vissza ugrált a mérés.
F877A-t használok többek között. Most vettem SMD hőszenzort, az is Microchip gyártmány. Ehez nem volt odaírva hogy kell neki ilyen kompenzáció, hát nem is raktam be. Nagyon ugrál a mért érték úgyhogy belerakom a kapcsolásba ez a kiegészítést ha már egyszer bevált. |
» A fájlok letöltéséhez be kell jelentkezned! «
|
|
|
| Bocs, de hülye voltam, jó ez a képlet Idézet: „1/(0,000001*előosztó*255)” .
beállítottam 1:8-as osztást és megmértem frekimérővel és jól jött ki az eredmény.
Először azért látszott lassabnak mert nem vettem figyelembe hogy 4 digit van a kijelzőn és azok között kell váltogatni. tehát a mért értéket 4-el kellet +szorozni és így már jó is lett.
kösz mindenkinek. |
|
|
Köszi, tehát ha jól értem, az analóg bemenettel párhuzamos 75Ω és 1μ megoldja a problémát? Na ezt majd kipróbálom, most egy másik projekt van a próbapanelen.  |
|
|
| Lehet tökéletes nem lesz, de nálam sokat segített. |
|
|
Hy! engem is érdekelne a PIC programozása.... csak nem érek hozzá hogy milyen pr.nyelven kell megírni, és azt hol tudnám megnézni esetleg tanulni? vagy esetleg vannak ilyen szimulációs prg.-k is?
segítsetek ! PLS!
köszi! |
|
|
programozási nylevből lehet válogatni, BASIC, C, Pascal, Assemby, stb.
Igen vannak szimulátor programok.
Gugli! Magyar oldalak. és találsz egy csomó PIC-es oldalt. |
|
|
ok! akkor még csak annyit mondj meg,hogy pascalnyelven lehet programozni PIC-et? |
|
|
THX! akkor már megyek is |
|
|
Elnézést, hogy ide irok, de új topicot nem akartam nyitni.
A kérdésem az lenne, hogy nem e tud valaki valami 4 vagy több csatornás pwm ic-t.
Lehetőleg i2c interfacel kéne.
Tudom a PIC18F2331-nek 8 pwm csatornája van, de még egy pic-t nem akarok beépíteni.
Lényeg a hw-s pwm megvalósítás, nem akarom a jelenlegi 2 picet még sw-s pwm megvalósitására is befogni. (van már épp elég dolguk)
Esetleg van valakinek valami ötlete? |
|
|
| attól függ mire kellene. mert motormeghajtót azt találtam 4 csatornásba. |
|
|
Igen motor meghajtónak kéne. De a 4 pwm csatornát nem egyszerre akarom vezérelni hanem össze vissza.
Minden csatorna egy külőn motor csoportot vinne.
A forgás irányt fél híd ic-vel (L293) gondoltam megoldani. |
|
|
| Basszus! Pont volt egy olyan IC ami neked kell csak nem mentettem le az adatlapját, még a fél híd se kellet volna mert benne van az is. csak átléptem a limitet és csak holnap tudom letölteni az adatlapját. |
|
|
OK. Köszi!  |
|
|
| Na, most hogy le tudtam tölteni kiderült mégse jó. Ez csak 4db motormeghajtó 1 tokban és az sem egy nagy eresztés. Csak akkor tudnám mért volt oda írva hogy PWM Controller, na mindegy. még nézelődök hátha van normális. |
|
|
Na de gyorsan találtam másikat
M66240 = 4CH 16Bit PWM generator
Ez páhuzamos adat buszt tartalmaz.
Mást nem találtam. |
|
|
Köszi.
Asszem marad a pic. Majd még kitalálok neki valami vezérlési feladatot, hogy ne legyen sok szabad ideje.
Ezt a Mitsubishi ic-t meg nem tudom, hogy hol lehet kapni, (nem találtam sehol), az is lehet, hogy horror árban van.
Azért köszi!  |
|
|
| Az elképzelhető hogy nem egy olcsó mulatság lenne, ha meg lehetne venni valahol. |
|
|
Szerintetek van olyan C vagy egyébb fordító ami alapból ismeri a Cosinus fügvényt? Vagy, hogy lehet másképp megvalósítani? Sajnos még nem találtam más megoldást így úgy néz ki, hogy szükségem lenne egy Cos müveletre.
Üdv tomee. |
|
|
Elkezdtem a 18F picekkel foglalkozni és már a config biteknél elakadtam.
Ez egy 18F2331 picinyke pic lenne.
A pichez járó példa alapján felconfigoltam és ezt mondja a fordító:
__CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
Még a progi elejére ezt irtam oda:
list p=18F2331
#INCLUDE
Úgy mint a 16F8xx-nél is tettem.
De semmi eredménye.
Igaz, hogy csak warningot dob de akkor is zavar.
Tudna valaki egy led be-ki kapcsoló példa progit küldeni?
Köszönettel: Tomee |
|
|
| Ez a deprecated-os szöveg csak azt jelenti, hogy módosítottak a config bitek megadásán, és mostmár megadható így is, hogy config osc=hs, config wdt=off, stb. Ez az új mplabban jelent meg, de a régi módszer is tökéletesen működik. Ne foglalkozz vele, mert nekem ez az új módszer nem akar rendesen működni, lehet, hogy neked sem fog. |
|
|
| Én kíváncsi lennék arra Cos műveletre ha arra találáltad meg a megoldást. |
|
|
Mivel csak 0-120 foknak kellet volna a coszinusz értéke ezért az jutott eszembe, hogy előre kiszámolom az értékét és egy táblába beirom. Majd amikor szükségem van a szög coszinuszára akkor a táblázatból előszedem. De természetesen nem lebegőpontosan hanem az 1000-el vagy 10000-el megnövelt értékét. És a további számolás során mindennek megnövelem az értékét 1000-el vagy 10000-el.
Igazából nem nekem jutott az eszembe, hanem egy másik haveromnak aki alig (semmit sem) konyit a programozáshoz. Én csak kicsit fínomítottam az ötletén. De szerintem jó ötlet volt tölle. |
|
|
Köszi.
Már azt hittem, hogy én csináltam valamit rosszul.
Mi van olyankor ha a PORTB,4 bitet akarom irni és az nem ál be 1 értéküre. A LATB,4 beál 1 értékre, de a PORTB,4 nem.
Az egész PORTB kimenet.
START
movlw b'00000000'
movwf TRISB
clrf PORTB
bsf PORTB,4
stop bra $
end |
|
|
|
| amikor a kimenetre írunk, akkor a LATB-t kellene írni, tehát BSF LATB,4(elvileg a tiéd is jó, de ki tudja). Próbáld meg így. |
|
|