Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   785 / 1320
(#) SzervízMacska válasza LGS94 hozzászólására (») Aug 7, 2010 /
 
Mindenki tudja, aki elolvasta már az adatlapját. Ha érdekel, Te is megtudhatod!
(#) Hp41C válasza Collector hozzászólására (») Aug 8, 2010 /
 
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...
(#) Collector válasza Hp41C hozzászólására (») Aug 8, 2010 /
 
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.
(#) szilva válasza Baxi hozzászólására (») Aug 9, 2010 /
 
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.
(#) Attila86 hozzászólása Aug 9, 2010 /
 
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”
(#) Hp41C válasza Attila86 hozzászólására (») Aug 9, 2010 /
 
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.
(#) cape-t hozzászólása Aug 9, 2010 /
 
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!
(#) Hp41C válasza cape-t hozzászólására (») Aug 9, 2010 /
 
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.
(#) Attila86 válasza Hp41C hozzászólására (») Aug 9, 2010 /
 
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.
(#) Attila86 válasza Attila86 hozzászólására (») Aug 9, 2010 /
 
Megvan! Az LCD kijelző fordított polaritással volt bekötve. Szokták ezt bírni az LCD modulok?
(#) potyo válasza Attila86 hozzászólására (») Aug 9, 2010 /
 
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.
(#) Attila86 válasza potyo hozzászólására (») Aug 9, 2010 /
 
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.
(#) Attila86 válasza Attila86 hozzászólására (») Aug 9, 2010 /
 
Hihetetlen, de tényleg túlélte!
(#) Attila86 hozzászólása Aug 9, 2010 /
 
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.
(#) vilmosd válasza Attila86 hozzászólására (») Aug 9, 2010 /
 
Hali
A rutin mukodokepes. Viszont ez 16Fxxx kodot general. A 18Fxxx mas megoldast kivan. Esetleg a goto $+2 helyett cimkeket kell alkalmazni.
Udv Vili
(#) Pepebá hozzászólása Aug 9, 2010 /
 
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.
(#) cicero válasza Pepebá hozzászólására (») Aug 9, 2010 /
 
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
(#) icserny válasza Pepebá hozzászólására (») Aug 10, 2010 /
 
É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.
(#) icserny hozzászólása Aug 10, 2010 /
 
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.
(#) Attila86 hozzászólása Aug 10, 2010 /
 
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?
(#) cape-t válasza Hp41C hozzászólására (») Aug 10, 2010 /
 
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!
(#) robing16 hozzászólása Aug 10, 2010 /
 
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!
(#) icserny válasza Attila86 hozzászólására (») Aug 10, 2010 /
 
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.
(#) icserny válasza robing16 hozzászólására (») Aug 10, 2010 /
 
Idézet:
„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?”
Szerintem sehogy! Lassú, és kicsi a memóriája (RAM).
(#) Hp41C válasza cape-t hozzászólására (») Aug 10, 2010 /
 
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.:
  1. Int:
  2.         movwf   w_temp          ; Regiszterek mentése
  3.         swapf   w_temp,f                ; W mentése a közös RAM -ba
  4.         swapf   STATUS,w                ; STATUS mentése
  5.         banksel status_temp     ; A többi a Bank0-n van
  6.         movwf   status_temp
  7.         swapf   PCLATH,w                ; PCLATH mentése
  8.         movwf   pclath_temp    
  9.         pagesel Int                     ; ISR a Page0 -n
  10. ;.....
  11.         banksel status_temp     ; Regiszterek visszaállítása a Bank0 -ról
  12.         swapf   pclath_temp,w   ; PCLATH
  13.         movwf   PCLATH          ;
  14.         swapf   status_temp,w   ; STATUS
  15.         movwf   STATUS          ;  egyben a bank kiválasztás is
  16.         swapf   w_temp,w        ; W visszaállítása a közös RAM-ból
  17.         retfie                          ; Visszatérés

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.
  1. hivo:
  2.         pagesel menu            ; Page1
  3.         call            menu            ;
  4.         pagesel hivo                    ; Page0

A pagesel - call - pagesel között másik goto illetve call ne legyen...
(#) mrobi hozzászólása Aug 10, 2010 /
 
Ü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.

leptetes.asm
    
(#) potyo válasza mrobi hozzászólására (») Aug 10, 2010 /
 
Szerintem csak pergésmentesíteni kellene a gombot, vagy hardverből vagy szoftverből. Volt már ezekről itt szó, keress rá.
(#) mrobi válasza potyo hozzászólására (») Aug 10, 2010 /
 
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.
(#) robing16 válasza icserny hozzászólására (») Aug 10, 2010 /
 
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.
(#) icserny válasza robing16 hozzászólására (») Aug 10, 2010 /
 
Idézet:
„A lassúságra mit értesz?”
Azt, hogy a pontfrekvencia nagyobb, mint amilyen ütemben a PIC elkapkodni, feldolgozni és a megjelenítőre kiküldeni tudja az információt.
Következő: »»   785 / 1320
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