Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nem, arról szó sincs! Arról beszéltünk, hogy a 2550-es Vdd és Vss lába (20 és 19) közé kellene egy 100nF körüli, lehetőleg kerámia kondenzátor, lehetőleg az IC lábaihoz minél közelebb beszerelve. Ez általános dolog, és a tervezés hiányossága, hogy teljesen hiányzik az áramkörből.
Jo rendbe orvoslom is mindjárt!
Ellenőrzés stimmel(ugynézki hogy jó) nagyon kőszőnőm a segitséget!Mostmárcsak be kel raknom a foglalatba és mehet a proba!!
Sziasztok!
Sikerült működésre bírni a 4×16 karakteres kijelzőmet, több kevesebb sikerrel. A program egy része saját de az lcd-t kezelő részt (m_lcd.c)Topi Időkapcsolós hosszabbítójától "szereztem". Az lenne a probléma hogy a 3. és a 4. sor 4 karakterrel beljebb kezdődik. A másik tegnap nem jöttem rá hogy kell egy c-fájlba egy másik c-fájlt "berakni". A programot CCS fordítóban írtam. Köszönöm segítségeteket. Ákos
Szia!
sorokban az értékek nem jók, csökkenteni kell 4-gyel: 0x90, és 0xd0. (lásd LCD adatlap!) Idézet: „hogy kell egy c-fájlba egy másik c-fájlt "berakni".” Ha jól értem, akkor : include...
Köszi a segítséget már működik.
(Sajnos itt nem tudok pontot adni) Ákos
Sziasztok! Már egy jó ideje, de mondjuk nem nagy rendszerességgel nyúvasztom a PIC16F648A PIC-eket, próbálom belőlük minden tudásukat kifacsarni ASSEMBLY nyelven. De ahol PIC-ről olvasok, többnyire mindenki inkább C-ben programoz. Igazából az ASM-et nem nagyon érzem még át. Jobb a C ? Jobban átlátható, könnyebb vele feltételes elágazásokat megcsinálni és ciklusokat? Köszi! g
Persze, hogy jobb, ha gyors megoldás kell, vagy túl bonyolult lenne asm-ben, pl. az említett elágazások, ciklusok nyomon követése miatt. Na meg ha az ember nem akar különösebben elmélyedni az eszköz fizikai rejtelmeiben, akkor is előnyös lehet.
ASM-ben viszont az történik, amit látsz, írsz, nincsenek rejtelmek, cserébe viszont sokkal macerásabb tud lenni. Ha C-ben összeszorzol két byte-ot, és az eredményt egy byte-ba tennéd, a fordító figyelmeztet, míg asm-ben te írod a szorzórutint is, és ha úgy akarod, gond nélkül dolgozhatsz egy byte-os eredménnyel. A C hátrányait akkor szoktam látni (kontrollerre nem használom), amikor perifériákkal dolgoznak, és a generált kód elemzéséig többnyire "titok", hogy egy egysoros C utasítás hány assembly sornak felel meg, mit csinál konkrétan stb. Mindenesetre C-ben úgy általában nagyobb ugyanaz a program, több helyet foglal, még a legokosabb optimalizálás után is.
Hozzátenném az előzőhöz, hogy a C nyelv kezdők számára rejt buktatókat. Ilyen tud lenni pl. az említett két bájt szorzása is. Ha két nyolcbites számmal végzünk műveleteket, akkor az eredményt is nyolc biten kapjuk, hiába esetleg azt egy 16 bites változóba írjuk be. Míg asm-ben valóban amit látunk, az történik. Tehát nem olyan egyszerű a C sem. Örök igazság, hogy amit asm-ben nem lehet megcsinálni, azt nem lehet megcsinálni.
Idézet: „amit asm-ben nem lehet megcsinálni, azt nem lehet megcsinálni” Ez tetszett, minden PIC-es könyv elejére odatenném A kezdők nagyon is szívesen alkalmazzák a C-t minden asm háttér nélkül, épp az említett z = x * y egyszerűsége miatt. Enélkül lehetne kész asm rutinokat guglizni, vagy rájönni, mit hogyan kell rotálni (nekem anno egy hétig tartott az első szorzás, net nélkül).
Sziasztok!
Lenne szükségem még egy kis segítségre. Az lenne a kérdésem hogy egy "int" típusú változót hogyan tudok lcd re kiírni. Ákos
Még mindig ccs-ben maradva: van hozzás kezeleői leírás, amiben minden benne van egy ilyen kérdés megoldásához. Használhatod a printf függvényt.
Idézet: „amit asm-ben nem lehet megcsinálni, azt nem lehet megcsinálni” Azt hiszem ez azert igaz C-re is azzal a megkotessel, hogy "ha nem eleg nagy vagy gyors az adott eszkoz amire fejlesztesz egyszeruen vegyel nagyobbat" Asm vs. C vagy akarmi mas az mindig egy flame tema - remelem nem alakul ki itt haboru. Velemenyem szerint ket kulombozo aspektusa szerint jo az egyik vagy masik. Az egyik a kod hatekonysag, a masik a fejlesztes hatekonysaga. Amig a kod hatekonysagaval a gyartasi koltsegeken lehet faragni a fejlesztesi hatekonysagnal a fejlesztesi koltsegeken. Pl. nyilvan valo, hogy egy kiterjedt konyvtari rutinokkal rendelkezo C fejlesztoi rendszer eseteben a fejlesztesi es tesztelesi szakasz joval kevesebb lehet mint egy minden reszleteben egyedileg kifejlesztett es az adott feladathoz igazitott nyers asm rutinokkal osszefaragott project eseten. Azonban en pl 50 centet tudtam faragni a gyartasi koltsegen pusztan azzal, hogy cipokanallal beletuszkoltam az asm-ben megirt firmware-emet egy kisebb PIC-be, es ez mar egy kis peldanyszamu project eseten is jelentos megtakaritast eredmenyezett (200 db, tehat 100 euro...).
Oké, köszönöm mindenkinek!
Egyébként, ha a PIC PWM kimenetére multimétert teszek, akkor a földhöz képest tudom figyelni a PWM-el beállított feszültséget, vagy ehhez a multiméter nem megfelelő?
Általában jó szokott lenni. De ha nem, akkor is oda lehet tenni egy RC szűrőt, és máris jó lesz.
Újra én Szóval, ha egy PIC adatlapja azt mondja, hogy
- Operating speeds from DC - 20 MHz - Precision Internal 4MHz oscillaor - Low Power Internal oscillator 37KHz akkor külső órajel nélkül 4MHz-en dübörög a PIC? Külső órajellel akár 20MHz is elérhető? Illetve mit jelent az utolsó Low Power... sor? Köszi!
Kristályal vagy rezonátorral stb 20Mhz-en még stabilan működik, ha a configwordben internalRC osc. állítasz be akkor nem kell kristály stb. hanem a belső órajelforrásról megy ami 2 féle lehet : Precision Internal 4MHz oscillaor vagy Low Power Internal oscillator 37KHz amik között sw.esen tudsz váltani.
1. kvarccal az OSC1- OSC2 lábra rakva max ekkora (20 MHz) sebességgel tudod hajtani a PIC-et.
2. Pontos (kb 1%) belső oszcillátor a 4Mhz (általában RC kör) 3. a 37kHz pedig a többihez képest lassabb, de kevesebbet fogyaszt, ahol ez lényeges. Igen, külső jel nélkül 4MHz-en tudod hajtani max. Üdv, Blint
HI!
Nem tudjátok hogy melyik MPLAB-ot célszerű letölteni a winPIC-hez? Kösz a választ!
Ez 2 darab, egymástól teljesen független szoftver. Semmi közük egymáshoz, mindkettő megy külön-külön a másik nélkül.
Ilyen értelemben mi köze a winPIC-nek (ha jól tudom, az egy égető progi) az MPLAB-hoz (ami egy fejlesztői környezet)?
Számítástechnikában nem vogyok túl profi4
Köszönöm a választ
Ezzel a hibával mit lehet kezdeni? (Tudom mit jelent.) Most én vagyok a vak vagy az MPLAB lát olyan dolgokat ami nincs is ott ( "," )
A "MOTOR" nem véletlenül valami #define-nal definiált kifejtés, amiben pl. "regiszter,bit" formájú string van?
Nem mert a többi helyen gond nélkül lefordul.
mod: Közben egy újraindítás eltüntette a problémát...
Akkor talán blokk-kijelöléssel kitörölném és kézzel beírnám a sort újra. Más ötletem nincs.
Hali! 16F648A-ba töltöttem egy példaprogramot, amiben ez a konfigurácós szó: '11111100001011' amit én az adatlap alapján úgy értelmezek, hogy külső oszcillátorra van beállítva. Igazából PWM-et tanulgatok. Működik a dolog, villog a LED a PWM kimeneten, csak éppen baromi lassan. Ebből jöttem rá, hogy az említett helyen lehet a probléma és valóban, hiszen nincs külső oszcillátorom a pic előtt, csak egy stabil 5V és mégis pörög az óra ezek szerint, csak éppen baromi lassan.
Ha meg átkonfigelem belső oszcillátorra, szabad szemmel nem látom a LED működését, de ez persze nem azt jelenti, hogy nem működik. Valaki meg tudná magyarázni, mitől megy a PIC-em órája, vagy mi történik?!? Egyébként az tűnt fel elsőnek, hogy a példaprogramba oda van írva, hogy a LED első felvillanása a 196. órajelciklus után következik be, ami nálam stoperral 4 másodperc környéke volt...így gyanítom baromi lassan megy a dolog.
Pl. egész valószínű lehet akár az, hogy a hálózati 50 Hz egy parányi része jut el valamilyen módon a PIC-be. Nem direkt módon, hanem mondjuk "levegőn" át.
Hát, ez meglepő számomra. Egyébként, ha másnak van valami jó ötlete, vagy esetleg tévedek a konfigurációban, vagy amit említettem órajelciklus ügyben, abban tévedek...akkor írjatok.
Esetleg valaki, ha jobban ráér, megnézhetné nekem, a pontos konfigurációs szó miben létét, ha belső 4MHz-es oscillátorral akarom használni és most csak a PWM módot. Én erre gondoltam: b'11111100011011'... Köszi! |
Bejelentkezés
Hirdetés |