Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Mindenki tudja, aki elolvasta már az adatlapját.
![]()
Szia!
Attől függ, mit szeretnél majd a kódokkal csinálni: - Egyezés viszgálat - a kódolás mindegy, - LCD-n való kijelzéshez a BCD kódolás a célszerű, - Kisebb, nagyobb vizsgálathoz a bináris kódolást választanám. Módszerek: - Táblázat (program vagy adat eeprom), - bin - bcd átkódolás - már többször megadtam a linket...
Egyszerre kéne LCD-n kiiratni a tasztatúráról beolvasott értéket, és egy másik 16bites számmal összehasonlítani. De már megbarátkoztam a BCD-bináris konverzióval, azt hiszem ez lesz a legcélszerűbb erre a célra, azt hittem ez bonyolult programba átültetni, de egyáltalán nem nehéz.
Neked 680uH kell, nem 680mH! Ha nem tudsz induktivitást mérni valamilyen műszerrel, és nincs a tekercsen értelmezhető felirat, akkor "ránézésre" nem állapítható meg az értékük. Inkább érdemes venni olyat, ami biztosan jó lesz, mert az a tekercs a Vpp előállító rész kritikus eleme.
Miért nem tudok debuggolni? PIC18F2523 az alany és ezt írja az MPLAB:
Idézet: „PK2Error0028: Unable to enter debug mode” És ezt: Idézet: „Resetting PKWarn0006: The local copy of program memory has been changed since the last program operation. Should PICkit 2 program the target (fix) before proceeding? PKWarn0007: The target will be programmed with the MCLR pin disabled. PICkit 2 cannot debug the target in this state. Would you like to enable the MCLR pin? Programming Target (2010.08.09. 13:38:39) PIC18F2523 found (Rev 0x5) Erasing Target Programming Program Memory (0x0 - 0x153F) Verifying Program Memory (0x0 - 0x153F) Running Target PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0xEF23 - Value Read 0x0) PICkit 2 Ready”
Szia!
Az konfigurációban le van tiltva a MCLR. A "running target" egyből elindítja a programot, a MCLR nem hatásos, az ellenőrzés már nem sikerül. A PGD vagy PGC kimenetnek használod, és túl hamar beállítod kimenetté. Néhány napja 16F88-cal jártam így. - Sajnos az MpLab-ban nincs "Vpp first" opció, különben is csak akkor menne, ha a programozó adná a tápot. - A pic programjába a kimenetté állítás elé egy késleltető ciklust betéve a 16F88 kezelhetővé vált az MpLab számára - nem debuggoltam, csak programozni és ellenőrizni lehetett.
Sziasztok!
PIC16f877 mikrovezérlőre írogatok egy programot, ami már 2600 sor környékére hízott. A gondom, hogy nem tudok lapot váltani. Ha olyan szubrutint hívok meg, ami másik lapon van, el sem indul a progi. Biztos, hogy én vagyok amatőr. Kérdeztem ezt már korábban itt is, elolvastam az MPASM leírásában a "pagesel" utasításra vonatkozó részt, de (részben a hiányos angol tudásom miatt) nem értem. :help: Akadna itt esetleg valaki, aki óvodás szinten (netán pár soros példaprogrammal) el tudná magyarázni, hogyan kellene ezt kultúráltan megoldani? Ha igen, előre is nagyon megköszönöm!!! ![]() Üdv!
Szia!
Az ugrásoknál és a szubrutin hívásoknál a cím felső két bitjét a PCLATH 4..3 bitjeiből veszi a 16F mag. A return, retlw, retfie a stackról a teljes címet tölti be - itt nem használja a PCLATH-t. - Egy rutin hívása előtt a PCLATH-t be kell állítani a meghívandó lapnak megfelelően, a visszatérés után az aktiális lapnak megfelelően. A beállításban segít a "pagesel cimke" makró... - A megszakítási rutinnak mentenie kell a PCLATH-t is. A mentés után a megszakítási rutin lapjának (általában 0) megfelelően kell beállítani. A visszatérés előtt a PCLATH mentett értékét vissza kell állítani.
Szia!
Az MCLRE-t a konfigurációnál ON-ra állítottam, a PGD és PGC lábakat pedig bemenetté konfiguráltam, de így sem megy a debuggolás.
Megvan! Az LCD kijelző fordított polaritással volt bekötve.
![]() ![]()
Mivel valószínűleg CMOS a vezérlője és ha nem ad túl nagy áramot a tápod, akkor túl szokták élni. A PIC is nagy eséllyel túléli, ha 7805-ről adsz neki fordítva 5V-ot.
Hát nem tudom, eléggé melegedett az LCD. Bár nagy áramot nem kaphatott mert PICKit2-ről kapott tápot. Erről van szó amúgy: Bővebben: Link
A PIC-el nincs gond mert csak az LCD volt fordítva bekötve.
Az ezen az oldalon található időzítőrutin-generátort próbálta már valaki?
Bővebben: Link Alapból szerintem a goto $+2 helyett goto $-2-nek kellene lennie de még így is teljesen rossz az időzítés... nem annyi mint amennyinek kellene lennie. ![]()
Hali
A rutin mukodokepes. Viszont ez 16Fxxx kodot general. A 18Fxxx mas megoldast kivan. Esetleg a goto $+2 helyett cimkeket kell alkalmazni. Udv Vili
Hali!
Tud valaki segíteni a Piccoló project-el kapcsolatban. Nagyon kezdő vagyok a támában, most ismerkedem a PIC-el. Elkészítettem a referencia áramkört 18F4550-el, beírtam PICkit2-vel a Bootloadert, ami úgy tűnik működik. De betöltöttem az első kisérleti áramkört viszont csak az első két LED villog. Viszont azt tapasztaltam hogy bármilyen programot töltök a PIC-re mindíg csak az első két LED villog. Teljesen mindegy mit töltök le, mindíg ugyan az a progi működik!??? Mindent a project leírása alapján csináltam, MPLAB IDE V.8.53 használok a fordításra. Mit lehet ilyenkor tenni? Üdv.
Szia!
Az első két LED villogása azt jelenti,hogy még bootloader módban van a 18F4550. Ha a programot akarod futtatni, nyomd meg a Reset gombot, akkor a beírt program fog elindulni. Ha mindent a leírás alapján csináltál, működnie kell! Üdv.: cicero
Én a HID Bootloader program Reset Device gombjára szoktam kattintani a program elindításához.
Az USB kapcsolatot használó alkalmazásoknál pedig majd arra kell ügyelni, hogy azok egy beérkező karakterre várnak. Tehát el kell indítani a CDC Terminál programot (vagy más,virtuális soros port kezelésre alkalmas programot), kapcsolódni kell a virtuális soros porthoz (nálam COM5, de ez attól is függ, melyik csatlakozóba dugom a kábelt), s ki kell küldeni egy karakter, hogy az alkalmazás kikerüljön a kezdeti várakozásból. Erre a hókuszpókuszra azért van szükség, mert különben a Windows elnyelné a bejelentkező üzenetet.
Néhány új (PIC18F4550-en is futtatható) példával bővült a PICCOLO projekt Analóg perifériák c. fejezete.
Az új fejezetrész tartalma: # Az ADC kezelése támogatói könyvtárak használatával o Mintaprogram analóg jellel történő vezérlésre (ledek.c) o Megjegyzések a Microchip PIC18 támogatói programkönyvtárának használatához o Mintaprogram az OpenADC() függvény használatára (adclib.c) További információk a fenti linken találhatók.
A jó múltkor kiszámoltam az Fosc és a TAD értékeket, de most megint kicsit elbizonytalanodtam. A mikrovezérlő most PIC18F2523 és 40MHz-en ketyeg. Ugye jó lesz az Fosc/32 és a 2TAD?
Szia!
Ez így elméletben OK, de asm-ben hogyan néz ki? (MPLAB) Pl. a 0 lapon szeretném meghívni a "menu" szubrutint, ami az 1 lapon van. Hol, hogyan és hány helyen kell a "pagesel címke" makrót beiktatatni? Még egyszer bocsánat, a láma kérdésért!
Sziasztok!
Most nagyba vágtam a fejszét, egy kicsi 1,5m X 1m-es LED-falat fogok építeni, amihez kéne egy kis segítség. A kérdésem az lenne, hogy a VGA jelet, ami számítógépből jön ki, hogy tudom feldolgozni egy PIC-el? És ha már valami feldolgozta, hogy érdemes a LED moduloknak a vezérlőjét összekötni a VGA-t kezelő egységgel? Gondolom minden színhez külön vezérlő kell, ám nem sok megoldást találtam GOOGLE barátommal. Van ötlet, hogy lehetne ezt megoldani? ![]() Köszi előreis!
Ezek az értékek az abszolút minimum közelébe esnek, tehát elég necces... Az adatgyűjtési idő pedig erősen függ a forrásimpedanciától is. Az adatlapi minimumérték (pl. PIC18F14K50 esetén TACQ min 1,4 us) 50 ohmra vonatkozik.
Idézet: Szerintem sehogy! Lassú, és kicsi a memóriája (RAM). „A kérdésem az lenne, hogy a VGA jelet, ami számítógépből jön ki, hogy tudom feldolgozni egy PIC-el?”
Szia!
A megszakítási rutinban (ha van) 16F886-nak megfelelő, közös RAM-mal rendelkező típusnál. Ha 16F883-nak megfelelő memória kiosztásal rendelkező típusunk van, W_temp változónak megfelelő címet az összas lapon használhatja a W mentésére - tartsuk fenn erre a célra.:
A menu hívása a 0 lapról. A menu csak az 1. lapon levő cimekre ugorhat és az 1. lapon levő címeket hivhat meg subrutinként. Ha mégis kellene más lapról rutin, akkor a menuben is hasonlóan kell beállítani a PCLATH-t. A menu return, retlw 0x00 utasítással tér vissza.
A pagesel - call - pagesel között másik goto illetve call ne legyen...
Üdv. Most kezdtem el pic-ezni. Assembly-ben programozok. írtam egy olyan programot ami elvileg gombnyomásra kapcsolja be a ledeket. Tehát nulláról indul és első gombnyomásra 1-et, a másodikra 2-öt, a harmadikra 3-at, negyedikre pedig megint 0-át. De ha megnyomom a gombot kigyullad az összes led és ha elengedem akkor változik. Hol 1 hol 2 hol 3. Ezt hogyan lehet kiküszöbölni? Felrakom az asm-et is.
Szerintem csak pergésmentesíteni kellene a gombot, vagy hardverből vagy szoftverből. Volt már ezekről itt szó, keress rá.
Köszönöm a választ. Valószínűleg szoftveresen fogom pergésmentesíteni (feltéve ha rájövök hogy hogy kell), mert a nyomógombokon már nem tudok változtatni.
Ebben van valami.
A lassúságra mit értesz? Láttam egykét kapcsolást és videót, ahol egy PIC képes volt meghajtani egy monitort, igaz nem túl nagy felbontást, de egy 320X200-as felbontás már teljesen jó lenne. Az is igaz, hogy egy gép videókártyája 800X600 alá nem megy. Idézet: Azt, hogy a pontfrekvencia nagyobb, mint amilyen ütemben a PIC elkapkodni, feldolgozni és a megjelenítőre kiküldeni tudja az információt. „A lassúságra mit értesz?” |
Bejelentkezés
Hirdetés |