Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   631 / 1210
(#) Balagemann2031 válasza Hp41C hozzászólására (») Feb 6, 2015 /
 
Köszönöm!
(#) edison14 válasza kissi hozzászólására (») Feb 6, 2015 /
 
Szia.

Az a gond hogy élőben sem megy. A konfigurációs bitek jól vannak beállítva ugyanis az előző programjaimnál is ugyan úgy állítottam be és azok működtek.
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
Azt tudom hogy a proteus nem tud mindent leszimulálni, de többnyire szokott működni, persze minden programot futtatok élőben is breadbordon összerakott áramkörön.
(#) edison14 hozzászólása Feb 6, 2015 /
 
Már beállítottam mindent ami lehetséges és ami kapcsolódik az RB0-ás lábhoz de még mindig rosszul működik. Most úgy néz ki belép a megszakításba, de nem lép ki.
(#) kissi válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Nem biztos, hogy jól emlékszem, de mintha valahol azt olvastam volna, hogy a MOVFF-t nem szerencsés megszakításban alkalmazni !
Ezt írják a Microchip fórumán is :Bővebben: Link
(#) edison14 válasza kissi hozzászólására (») Feb 6, 2015 /
 
Az adatlapban csak azt olvastam, hogy ne használjuk a movff utasítást a megaszkítást kezelő regiszterek módosítására. Tehát a work és a status regiszterek mentésére elméletileg használható.
(#) SKY hozzászólása Feb 6, 2015 /
 
Sziasztok! Meg tudnátok mondani hozzávetőlegesen, hogy mennyi ideig tart egy 4*16-os kijelzőn frissíteni az adatokat, vagyis amíg lefutnak az adott C utasítások amikkel minden sorba új adatot lehet kiírni? Valamint egy 128X64-es lcd esetén egy új kép?
(#) killbill válasza SKY hozzászólására (») Feb 6, 2015 /
 
4*16 = 64 byte plusz soronkent meg egy. Ha 50us egy karakter, akkor is megvan 4ms alatt.
A grafikus kijelzonel nyilvan a kontrollertol is fugg. Pl a EADOGL 128-6 (ST7565R) SPI-s kijelzo az eleg gyors. 1kbyte a teljes kep, 20MHz SPI-n atmegy kb. fel ms alatt. A valosag persze ennel kicsit rosszabb, mert varni kell a karaterek kozott, de akkor sem tobb par ms-nal. Gyorsabb, mint amit az LCD meg tud jeleniteni.
(#) don_peter válasza killbill hozzászólására (») Feb 6, 2015 /
 
Nem 10MHz-es maximum az SPI?
Bár nem említette a kontroller típusát, de feltételezem, hogy nem 32-es PIC-el dolgozik..
A hozzászólás módosítva: Feb 6, 2015
(#) killbill válasza don_peter hozzászólására (») Feb 6, 2015 /
 
Az emlitett Sitronix ST7565R kontroller eseteben 20MHz a maximum 3.3V tap eseten. 2.7V-on mar csak 10MHz, 1.8V-on 5MHz. Ez a chip van az EADOGL 128-6 kijelzon. Amugy meg az SPI-nek szerintem nincs felso hatara, van belole 66MHz-es megvalositas is.
Azt, hogy a PIC-en mennyi a maximum azt nem tudom, de ezt nem is itt kell megkerdezni, hanem meg kell nezni az adatlapban.
A hozzászólás módosítva: Feb 6, 2015
(#) nagym6 válasza don_peter hozzászólására (») Feb 6, 2015 /
 
Van nekem olyan A/D konverter ic., amelyiken 20MHz az SPI adatkimenet katalógusadat.
A hozzászólás módosítva: Feb 6, 2015
(#) Pali79 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Nem nagyon foglalkoztam még 18F-fel, ezért a regiszterek nevei nekem kicsit idegenek, de elmondanád, hogy mit is kéne csinálnia ennek a valóságban?
(#) don_peter válasza killbill hozzászólására (») Feb 6, 2015 /
 
Ez nem is kérdés volt igazából, és mivel ez a PIC kezdőknek topik feltételeztem, hogy a kérdező, arra kiváncsi, hogy az általa használt PIC-el hajtva az LCD-éjét, mennyi időbe telhet egy egy említett karakter vagy kép megjelenítése, kirajzolása.

Szerintem itt tök mindegy, hogy az LCD vezérlője mennyire nagyon gyors, hogy ha a PIC nem tudja olyan tempóval kitolni az adatot, vagy nem ilyen irányú volt a kérdése?

nagym6: van olyan IC is ami több 100MHz-en is tud SPI-n kommunikálni még sem tudod kihasználni, ha nincs megfelelő vezérlőd ami legalább annyit tud.
A hozzászólás módosítva: Feb 6, 2015
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
Szia!

Ezt csak próbaképpen csináltam. De az eredetileg egy DS1307-es RTC SQW lábát szeretném rákötni az RB0-ra és az RTC 1 másodpercenként magas jelet ad az SQW lábra. Ekkor a pic belépne a megszakításba és növelné a sec változó értékét.
(#) Pali79 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Akkor úgy kérdezem, hogy ennek a próba programnak mit kéne csinálnia? Mert ez biztos nem azt csinálja amit leírtál, de gondolom ezt te is tudod.
Egyébként az amit leírtál mi célt szolgál? Egy rtc-t így használni elég szokatlan, főleg, hogy eleve I2C képes.
A hozzászólás módosítva: Feb 6, 2015
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
A mostani programnak annyit kéne csinálnia, hogy mikor belép a megszakításba akkor az RC6-os kimenetet magasra állítja majd a főprogramban vár 500ms-ot és a kimenetet alacsonyra állítja. Azt a célt szolgálná, hogy nem olvasnám az RTC értékét minden másodpercben többször csak egy nap egyszer pl éjfélkor. A pic pedig elszámolgatná addig az időt ennek a pontos 1 másodperces megszakításnak köszönhetően. Vagy nagyon nagy hülyeség az elgondolásom?
(#) Pali79 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
A késleltető rutint tartalmazó fájlt nem raktad fel, így nem látom, hogy az mit csinál, de a megszakításban csak az van jelenleg, hogy magasra állítja az RC6-ot. Sem késleltetésre való hivatkozást nem látok, de alacsony szintre állítást sem. Szimulátorba meg nem tudom futtatni, mert hiányzik a delay16MHz.inc.
Szerk:
Idézet:
„Azt a célt szolgálná, hogy nem olvasnám az RTC értékét minden másodpercben többször csak egy nap egyszer pl éjfélkor. A pic pedig elszámolgatná addig az időt ennek a pontos 1 másodperces megszakításnak köszönhetően.”

Hát én biztos nem így csinálnám. Nem ismerem ezt a típusú pic-et de gondolom ennek is van Timer1-hez külső léptetési lehetőség. Arra egy 32,768 kHz-es kvarc, ezt leosztod 256-tal, majd 128-cal és meg is van az 1 másodperc.
A hozzászólás módosítva: Feb 6, 2015
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
A "friss" fájlok:
(#) Pali79 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Nem tudom a sleep-el mi volt az elgondolásod, de ez így biztos nem jó, mert a megszakítás ugyan felébreszti, de nem lép a megszakítási rutinba. Ha viszont kiveszed a sleep-et akkor folyton törli az RC6-ot. Valami más irányba kell gondolkodni. Még nem tudom a megoldást, de gondolkodom rajta.
Szerk: nem tudom még milyen feladatot szánsz neki, de esetleg a megszakításba be lehetne tenni a várakozást és a törlést is. Vagy a törlést egy másik megszakításba amit nem delay hanem valamelyik timer vezérel.
A hozzászólás módosítva: Feb 6, 2015
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
Az hogy állandóan törli az RC6 értékét a főprogram az nem zavar, de az hogy próbapanelen összerakott áramkörrel miért világít állandóan a led azt nem tudom. Holott nem szabadna belépnie a megszakításba és mégis állandóan azt hajtja csak végre. Már abszolút nem értem mi lehet a baja.
(#) Pali79 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Nem néztem végig, hogy mit változtattál a tegnapihoz képest, de ez a mostani nem reagál az RB0 impulzusra, a tegnapi igen.

blank.asm
    
(#) Pali79 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
Ennek most jónak kéne lennie.
(#) ktamas66 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Nem hülyeség, én is hasonlóan csináltam, de ne az 1Hz kimenetet válaszd, hanem a 4kHz-est. Ezt számoltasd a TMR1-el úgy, hogy 500ms megszakítást kapjál. Ezzel tudod villogtatni mondjuk a kettőspontot és számolni az időt.
(#) edison14 válasza ktamas66 hozzászólására (») Feb 6, 2015 /
 
Erre nem is gondoltam. Köszönöm az ötletet.
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
Közben megírtam a programot egy PIC16F88-asra ami épp kéznél volt. Azzal elsőre tökéletesen működik minden úgy ahogy a nagykönyvben meg van írva, de a 18-assal az istenért sem akar elindulni. Viszont nekem valami galiba lesz ott mivel a PORTB0-án és 1-en kéne mennie a felhúzóellenállásoknak. De nem mennek.
(#) Pali79 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Hát innen passzolom a kérdést. Nekem semmi tapasztalatom az 18F pic-cekkel.
(#) edison14 válasza Pali79 hozzászólására (») Feb 6, 2015 /
 
Még megpróbálok egy 18F2550-est az mit csinál. Lehet hogy a piceel van a gond én meg már két napja ülök fölötte.
(#) ktamas66 válasza edison14 hozzászólására (») Feb 6, 2015 /
 
Én beraknék egy CLRF ANCON1-et, és beállítanám a felhúzó ellenállásokat (bár nem tudom kívülről van-e rajta).
(#) edison14 válasza ktamas66 hozzászólására (») Feb 6, 2015 /
 
Szia!

Az ancon1 be van állítva és a felhúzók is.
A hozzászólás módosítva: Feb 6, 2015

blank.asm
    
(#) Frenzy hozzászólása Feb 6, 2015 /
 
Sziasztok!

Van egy 16F877A I/P vezérlőm. PicKit3-al kiolvastam a pr memóriáját és van benne olyan rész amire nem hivatkozik semmi (se GOTO, se CALL). Kérdésem az lenne, hogy lehet, hogy nem olvasott ki mindent a vezérlőből? Működését tekintve elvileg aludnia is kellene (a programozó szerint (de már nem elérhető)), de erre sem találtam utasítást a programban.

Előre is köszönöm a válaszokat!
Következő: »»   631 / 1210
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