Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   86 / 1319
(#) watt válasza potyo hozzászólására (») Okt 26, 2007 /
 
Az ember mindig tanul valamit! Én ezt az értéket soha nem láttam 16F-nél, de 18F-nél biztosan nem! Adatlapban sincs találat.

Talán csak a 12F-ek esetében van így? (ezt a típust nem használtam még)
(#) watt válasza bbalazs_ hozzászólására (») Okt 26, 2007 /
 
Dehogy már, miért lennél hülye? Akkor én is az vagyok(gondolom ismered a munkámat?).

A Vpp, Vdd időzítést is beleértetted az ugyanolyan jelsorozatba?
(#) Sendi hozzászólása Okt 26, 2007 /
 
Üdv Szabi o.
Köszönöm az együttérzésedet, és a segítségedet.
Most már figyelni fogok, hogy programozáskor csak a pic legyen az áramkörbe.
Ugye a Willem nem állitható át, hogy alacsony feszültségről is tudjon programozni?

Köszi
(#) potyo válasza watt hozzászólására (») Okt 26, 2007 /
 
OSCTUNE néven keresd, csak a nagyobbaknál (amelyikben van), az SFR zónában található, nem a programmemóriában.
(#) potyo válasza Sendi hozzászólására (») Okt 26, 2007 /
 
Ugorj le az alacsony feszültségű programozásról. Ha az MCLR-en levő ellenállás legalább 1k, akkor biztosan nem a 12V miatt ment tönkre az LCD.
(#) watt válasza potyo hozzászólására (») Okt 26, 2007 /
 
Persze, ezt vágom!
(#) watt válasza Sendi hozzászólására (») Okt 26, 2007 /
 
Valami félreértés miatt jutottatok az LVP programozáshoz? Semmi értelme, és ha körültekintő az ember, nem lehet gond azzal a Vpp-vel. Nekem soha nem volt. Az 1k-n keresztül szerintem sem mehet tönkre az LCD. Szerintem nincs is semmi bajuk!
(#) menyus hozzászólása Okt 26, 2007 /
 
T. Watt mester!

Múltkor javasoltad nekem az LCD frissítés kapcsán a megszakítást és a timert, nomeg javasoltad az önálló gondolkodást... No mármost ezen felbuzdulva én úgy oldottam meg ezt, hogy az ADC adja a megszakítást a konverzió létrejötte után, nem TIMER. A megszakításban előbb elmentem a STATUS aztán a W regisztereket, ezek után törlöm az ADC flagjét. Ezt követően lefut az LCD re kiírás, majd visszatöltöm az ideiglenes regiszterekből az értékeket. Az MPLAB SIM ben működik, de a gyakorlatban nem...Szerinted működhet ez így egyáltalán? Az LCD kiírás (8 bites) önállóan működik az ADC nélkül. Lehet hogy túl gyors az LCD nek a frissítés?
(#) gulasoft válasza Norberto hozzászólására (») Okt 26, 2007 /
 
Ebben igazad van, de ha a 16f84-et csak video megjelenitésre használjuk, és a tényleges műveleteket meg interruptokat, egy másik proci kapja, akkor az időzítéssel sok gond nem lehet, de persze ez mind csak akkor igaz, ha működik egyáltalán. A nyákot megcsináltam 1 oldalas 4 átkötéssel, este világítok meg maratok.
(#) szabi_o válasza gulasoft hozzászólására (») Okt 26, 2007 /
 
Igen, működik, régebben én is összebogoztam levegőben, de ennyi.
Teljesen felemészti az F84 szerény 1Kw memóriáját, de mint érdekesség, megéri.
Ha valami komolyabbat szeretnél, akkor izmosabb uC-re lesz szükséged, pl. SX széria, esetleg külön video processzor.
Figyelmedbe ajánlom ezeket a linkeket:
Bővebben: Link
Bővebben: Link
(#) potyo válasza menyus hozzászólására (») Okt 26, 2007 /
 
Szimulátorban nézd meg, mennyi idő telik el két LCD írás között. Parancstól függően 42-46us kell minimum, amíg a jeleknek stabilnak kell lenniük. Ha az ADC-t rögtön indítod, amint az előző konverzió kész, simán előfordulhat, hogy túl gyorsan nyomod az adatot az LCD-nek.
(#) menyus válasza potyo hozzászólására (») Okt 26, 2007 /
 
Köszi, meglesem.
(#) watt válasza menyus hozzászólására (») Okt 26, 2007 /
 
Szerintem elvileg működhet, potyo hozzáfúzését is beleszámítva!

Írod:
Idézet:
„A megszakításban előbb elmentem a STATUS aztán a W regisztereket, ezek után törlöm az ADC flagjét”

Ezt miképp csinálod? (nagyon fontos momentum!)

Egyébként igazán örömteli, hogy van saját elképzelésed és az nem is rossz!

Ha nem nagyon akarsz számolgatni, és biztosra akarsz menni, akkor az AD indítása előtt várakozzál valamennyit. Ha nem csinálsz semmit közben, akkor egy egyszerű ciklus is megteszi!
(#) watt válasza szabi_o hozzászólására (») Okt 26, 2007 /
 
Jó ez a második linkes dolog! Csak én nem találok kapcsolási rajzot?
(#) menyus válasza watt hozzászólására (») Okt 26, 2007 /
 
Azért Topié az érdem főleg, az Ő cikkén rágtam át magam 100X tegnap éjfélig, de a ADC megszakítást valóban én agyaltam ki. Mivel ez nem jött össze valamiért átírtam TIMER0 megszakítással de azzal sem megy. Érdekesen működik! Ha úgy égetem be hogy rajta van az LCD panel akkor működik (a poti állásától főggően teli írja a kijelzőt az "X" karakterrel ) ha viszont úgy programozom fel hogy az LCD nincs a PIC en akkor még az LCD sem áll fel normálisan..sőt sehogy.

x.JPG
    
(#) potyo válasza menyus hozzászólására (») Okt 26, 2007 /
 
Nem állítom, hogy ettől nem működik, de lehet: nemjól csinálod a W és a STATUS mentését a megszakítási rurinban. Így kell (adatlapokban Context Saving During Interrupts című fejezetben találod):


MOVWF W_TEMP ;Copy W to TEMP register
SWAPF STATUS,W ;Swap status to be saved into W
CLRF STATUS ;bank 0, regardless of current bank, Clears IRP,RP1,RP0
MOVWF STATUS_TEMP ;Save status to bank zero STATUS_TEMP register
:
:
ISR) ;(Insert user code here)
:
:
SWAPF STATUS_TEMP,W ;Swap STATUS_TEMP register into W
;(sets bank to original state)
MOVWF STATUS ;Move W into STATUS register
SWAPF W_TEMP,F ;Swap W_TEMP
SWAPF W_TEMP,W ;Swap W_TEMP into W

A STATUS_TEMP és W_TEMP regisztereknek a 0x70-0x7F memóriaterületen foglalj le helyet, máshol nem lesz jó!
(#) menyus válasza potyo hozzászólására (») Okt 26, 2007 /
 
Rendben, köszi. Az igazság az hogy lépésről lépésre próbáltam követni Topi cikkében a leírtakat, onnét lestem a mentéseket. A Kónya könyvben pedig azt írják, hogy a megszakításoknak a PIC eknél csak egy vektorcíme lehet, és ez a 04h. De átírom arra a címre amit javasoltál, remélem működni fog. Köszi.
(#) menyus válasza menyus hozzászólására (») Okt 26, 2007 /
 
ja,...leesett. A két dolog nem ugyanaz. Én a megszakításról beszéltem, Te az ideiglenes regiszterek címéről.

sorry
(#) watt válasza menyus hozzászólására (») Okt 26, 2007 /
 
Én is arra vártam, hogy válaszolsz a megszakítás mentésének módjára, ki is emeltem, hogy fontos dolog! Szóval hogy csinálod?
(#) potyo válasza watt hozzászólására (») Okt 26, 2007 /
 
A csatolt képen pont ez van
(#) menyus válasza watt hozzászólására (») Okt 26, 2007 /
 
Így, ahogy a képen látható.

x.JPG
    
(#) menyus válasza potyo hozzászólására (») Okt 26, 2007 /
 
Most hogy 101. x is elolvastam és jobban megnéztem, látom hogy Topi minta ASM jében is a 0x70 címtől indulnak az ideiglenes regiszterek címei. Szóval ezt megint elnéztem....ahogy szoktam.
(#) watt válasza menyus hozzászólására (») Okt 26, 2007 /
 
Upsz, elnézést a bocsánatért! Én azt nem is néztem!

Igen, így nem jól van. Megváltoztathatja a STATUS reg tartalmát mentéskor. Kár, hogy Topi nem javította még ki! Az adatlapokban pontosan leírják hogyna kell...
(#) menyus válasza watt hozzászólására (») Okt 26, 2007 /
 
Tényleg, a 0x70 címtől létrehozott regiszterek pillanatnyi tartalmát nem lehet valahogy megnézni az MPLAB SIM ben? Mert akkor valószínűleg már észrevettem volna.
(#) menyus válasza potyo hozzászólására (») Okt 26, 2007 /
 
Nézegetem ezt a mentésekre vonatkozó instrukciót az adatlapon. Ez az "ISR" mire vonatkozik? Vagy csak benne maradt a példában véletlenül...?
(#) gulasoft válasza szabi_o hozzászólására (») Okt 26, 2007 /
 
Köszi, a linkeket megnézem, én is mondjuk egy 877-esre gondoltam a későbbiekben, abba már több fér, meg lehet hajtani 20Mh-zvel is, persze az időzítéseket alaposan át kell alakítani, vagy egy 18-as sorozattal ott már az ugrások is egy órajelciklus, de egyenlőre nem látom miért kéne ennél több pár szám megjelenítéséhez, de mondjuk a kódba még nem rágtam bele magam, most fogom a fóliát nyomtatni a nyákhoz, kicsit nagy lett, de legalább nagyrészt egyoldalas.
(#) gulasoft válasza szabi_o hozzászólására (») Okt 26, 2007 /
 
Hát megnéztem a linket, az elsőn a csávó tiszta őrült, ennyi drótot utoljára 20 éve egy R10-es gépben láttam (nagy gép ferritgyürűs memóriával, lyukkártya meg lyukszalagolvasóval), és igen ő is 877-est használta.
A másik már nagyonm komoly, de nem is tudod utánépíteni, mert ha jobban megnézed, hiányzik egy csomó infó, tehát az hasznavehetetlen.
(#) potyo válasza menyus hozzászólására (») Okt 26, 2007 /
 
Az ISR az Interrupt Service Routine rövidítése, vagyis a te kódod kerül az ISR helyére.
(#) menyus válasza potyo hozzászólására (») Okt 26, 2007 /
 
Köszönöm
(#) menyus hozzászólása Okt 26, 2007 /
 
Mególdódni látszik a problémám az LCD vel. Az LCD inicializálását egymás után 3 X végzem el, köztük 0,1 sec (!) es szünetet tartva. (kicsit lusta így de legalább működik) Valószínűleg az volt a probléma hogy a PIC már régen az LCD szájába tolta az adatokat mire az a szerencsétlen magára talált...+ be kellett kapcsolnom a Config Word ben a PWRTE - t . Minden működik, az ASCII ba konvertálás egy másik fejezet lesz...

Még egyszer mindenkinek köszönöm a segítséget.
Következő: »»   86 / 1319
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