Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   359 / 1319
(#) Lozsa válasza bladika hozzászólására (») Dec 11, 2008 /
 
Itt a kód. Kissé kusza lehet de ha kérdés van akkor válaszolok...
(#) Lozsa válasza Lozsa hozzászólására (») Dec 11, 2008 /
 
A verify szerint minden rendben
Észrevettem most, hogy ha sokat próbálgatom akkor néha stimmel a bekapcsolási állapot úgyhogy lehet mégis a porgram ***.

Mindenesetre ha debug-olom akkor mindíg tökéletes. Csak amikor felprogramozom és real-time futna akkor ***ódik el

Vulgáris szavak használata problémáktól feldúlt idegállapotban is tilos.
-- kobold
(#) Lozsa válasza Lozsa hozzászólására (») Dec 11, 2008 /
 
Az sw_on cimkénél van a lényeg elvileg, bár nem tudom melyik programrész lehet még rá kihatással.
(#) Lozsa válasza Lozsa hozzászólására (») Dec 11, 2008 /
 
20K a felhúzóellenállás a kapcsolók lábain. Lehet, hogy túl sok és bizonytalanul tartja fenn?

A kapcsolók testre húzzák a bemenetet megnyomáskor.
(#) szilva válasza Lozsa hozzászólására (») Dec 11, 2008 /
 
MCLR lábbal mi a helyzet?
(#) szilva válasza icserny hozzászólására (») Dec 11, 2008 /
 
No, előkotortam a mentésből a C kódot (még mindig nem kaptam vissza a laptopomat). Lehet, hogy elsőre kicsit bonyolultnak tűnik, de ha jobban megnézi az ember, akkor a dolgok jó része csak definiálgatás. A lényeget a doevents() függvény csinálja az állapottábla alapján.

Egyébként azért tértem át az állapottáblára, mert a legelső verziós óra teljesen asm-ben volt megírva és nem állapottáblával. A kijelzőre történő rajzolás, meg az éppen a kijelzőn látható kijelzés és a nyomógombok jelentésének összerendelése viszont olyan iszonyatos if-rengeteget eredményezett, hogy szinte teljesen átláthatatlan lett a kód. Ráadásul szeretnék majd ébresztést beleépíteni, ami abban a felépítésben lehetetlen lett volna. Az állapotgépes megoldásnál majd az állapottáblát kell kiegészítenem az ébresztéses ágakkal, és meg kell írni pár primitív függvényt az ébresztési idő növelésére/csökkentésére/kijelzésére. Maga a program szerkezetileg egyáltalán nem fog változni.
(#) Lozsa válasza szilva hozzászólására (») Dec 12, 2008 /
 
mi van a MCLR lábbal?
Azon is van felhúzó bár most fejből meg nem mondom mekkora.
(#) trudnai válasza Lozsa hozzászólására (») Dec 12, 2008 /
 
Hu de karacsonyi szinek vannak itt a HE-n, csupa piros minden

En nem hinnem, hogy a program memoria csak ugy atirodna, azt meg ha akarod is eleg korulmenyes atirni - erre vigyaztak a Microchip-ek. Hol van a kapcsolas? Teljesen ugy hangzik mintha lenne valami jokora buffer kondi amitol a chip-ed nem resetalodik - probaltad MCLR reset gombbal?
(#) trudnai válasza Lozsa hozzászólására (») Dec 12, 2008 /
 
Picit raneztem a kodra, az interrupt kezeles nem tetszik! Egyreszt nincs context savings egyaltalan, masreszt piszkalod interrupton belul a GIE bitet aminek nincs teteje. Azt elintezi neked a hardware, de ha elkezded piszkalni akkor elveszithetsz interruptokat! Context savings-el kapcsolatban jo hir, hogy 18F-en dologzol es nem hasznalsz ketszintu interruptokat ha jol latom, tehat elegendo, ha beteszed a 'RETFIE' moge, hogy 'FAST':

RETFIE, FAST

Ez kezdetnek elegseges context savings, ha nem hasznalsz indirekt cimzest pl.

Amugy nem ertem miert timerrel nezegeted, hogy az AD vegzett-e mar, mikor az AD-nek is van megszakitasa? Ezeket a reszeket gondold at ujra, es probald meg lepesrol lepesre felepiteni, ne kapkodj mert akkor minden sokkal tovabb tart!
(#) Lozsa válasza trudnai hozzászólására (») Dec 12, 2008 /
 
Köszönöm a tanácsot, megpróbálom megfogadni.
(#) Lozsa válasza trudnai hozzászólására (») Dec 12, 2008 /
 
hogyan kell pontosan leírni a "retfie fast" parancsot?

'retfie, fast' --> "illegal character(,)"
'retfie fast' --> "symbol not previously defined (fast)"

Mi a helyes írási mód?

Kapcsolás csatolva...
(#) trudnai válasza Lozsa hozzászólására (») Dec 12, 2008 /
 
Idézet:
„hogyan kell pontosan leírni a "retfie fast" parancsot?”


Nahat nem is tudom most, mert en csak az adatlapbol neztem ezt, 5.3 fejezet/bekezdes:

Idézet:
„A “fast return” option is available for interrupts. A fast
register stack is provided for the Status, WREG and
BSR registers and is only one in depth. The stack is not
readable or writable and is loaded with the current
value of the corresponding register when the processor
vectors for an interrupt. The values in the registers are
then loaded back into the working registers, if the
RETFIE, FAST instruction is used to return from the
interrupt.”


De kesobb az utasitasnal meg ezt irja:

Idézet:
„RETFIE Return from Interrupt
Syntax: [ label ] RETFIE [s]
Operands: s ∈ [0,1]
Operation: (TOS) → PC,
1 → GIE/GIEH or PEIE/GIEL,
if s = 1
(WS) → W,
(STATUSS) → Status,
(BSRS) → BSR,
PCLATU, PCLATH are unchanged”


Egyszoval probald meg igy:

RETFIE 1

Lehet az INC file-ban nincs definialva a 'FAST' kulcsszo...
(#) icserny válasza Lozsa hozzászólására (») Dec 12, 2008 /
 
hogyan kell pontosan leírni a "retfie fast" parancsot?
'retfie, fast' --> "illegal character(,)"
'retfie fast' --> "symbol not previously defined (fast)"

retfie FAST

Lásd pl. a PICBOOK.COM honlapon! (másért is érdemes ott körülnézni...)
(#) hermann_z hozzászólása Dec 12, 2008 /
 
A kovetkezoben kernem tanácsotokat:Épitettem egy aramkort egy pic16f877a-val, ami sajnos nem indul el, vagyis bekapcsolaskor egy negysoros kijelzon az elso es harmadik sor minden szegmense világit, a 2MHz-es kvarc nem oscilal, pedig probáltam 10p es 33 pF egyaránt.Szkoppal neztem.
Mit tanácsoltok ?
Udv:Hermann Zoltán
(#) kissi válasza hermann_z hozzászólására (») Dec 12, 2008 /
 
Szia!

A konfigurációs biteknél HS oszcillátort választottál ki?

A szkóppal törénő mérésnél használd az 1:10-es osztófejet, mert ettől is leállhat az oszcillátor!

Steve
(#) icserny válasza trudnai hozzászólására (») Dec 12, 2008 /
 
Valóban helyettesíthető 1-gyel. Az inc fájlban így van definiálva:

  1. FAST           EQU 1

(#) hermann_z válasza kissi hozzászólására (») Dec 12, 2008 /
 
A HS az biztos igen a szkop 1:10 biztos nem, ezert ki fogom probálni.
(#) palika hozzászólása Dec 12, 2008 /
 
A következőben kérnem tanácsotokat.
Hogy lehet olyat csinálni, hogy a program leresetelje a pic-t. Olyasmire gondoltam, hogy a pic programjában fut valami, és az eljut egy adott pontra akkor lereseteli magát.
Olyasmi kéne csak nem ilyen eszement módon, mintha az egyik kimenetet rákötném a reset lábra és ha resetelni akarok akkor azt a lábat 0-ra húznám.
(#) watt válasza palika hozzászólására (») Dec 12, 2008 /
 
Pedig az is jó lenne.
A 18F-eknél van egy RESET utasítás.
A 16F-eknél elég macerás, mert ilyen nincs. Én úgy oldanám meg, hogy goto 0x0. Természetesen ez szoftveres RESET mindkét esetben. Hardveres csak a külső lábas lehúzással menne, de az ritkán szükséges...
(#) palika válasza watt hozzászólására (») Dec 12, 2008 /
 
Szia!

Hát kár, hogy a 16f-ben nincs ilyen utasítás. Jó lenne a szoftveres reset is.
A goto 0-t probáltam, de az a gond, hogy egy megszakítást követően kéne létrejöjjön a reset és akkor a megszakításbol való visszatérés elmaradása miatt a veremtár összekuszálodik az mplab szerint.
(#) palika válasza palika hozzászólására (») Dec 12, 2008 /
 
Közben kipróbáltam élesben is a goto 0-t és működik rendesen. Csak nem értem, hogy az mplab miért nem tudja lereagálni, hogy túlcsordul veremtár.
(#) Lozsa válasza trudnai hozzászólására (») Dec 13, 2008 /
 
Király vagy!
Átírtam retfie 1-re, és most 95%-ban működik a dolog. A maradék 5%-ot még mindíg nem értem de már ez is komoly haladás!

De lehet valami a MCLR pufferrel is, mert többször azt vettem észre, hogy ha hamar nyomom vissza akkor rossz. Mégis hogyan lehetne ezt kiküszöbölni?
(#) Lozsa válasza Lozsa hozzászólására (») Dec 13, 2008 /
 
Megvan a dolog!!!

Én voltam a hülye. A két kapcsoló felhúzó ellenállásai közül az egyiket rossz helyre kötöttem. Méghozzá a sorosan volt a másik felhúzó után, így annak 2x akkora volt az eredő értéke, viszont az amperek is így érdekesen oszlottak meg gondolom a két láb között...

Ha valaki azért meg tudná magyarázni, hogy ilyenkor mi történhet pontosan az jó lenne.


A lényeg, hogy most tökéletesen megy.
(#) sksporky hozzászólása Dec 13, 2008 /
 
Hi!

Néhány napja rendeltem PIC égetőt,de a próbapanelon nem akarózik működni,a program jó,de a bekötéssel gond van,valaki le tudná írni hogy kell bekötni?(16F690)

-7805 van
-minden lábat le kell kötni és ha igen milyen potenciálra?

Köszi!
(#) gulasoft válasza sksporky hozzászólására (») Dec 13, 2008 /
 
Adatlapot nézd meg. MLRC VDD VSS kell valamint debughoz a PGC PGD lábak is. Ilyet keress az adatlapon. Az MLRC általában az 1-es a pgc pgd meg szemben vele (persze ez utóbbi nem mindenhol lehet így)
(#) szilva válasza sksporky hozzászólására (») Dec 13, 2008 /
 
A 690 adatlapjában elég fura elnevezésekkel szerepel a két programozóláb (nem ez az elterjedt): ICSPDAT és ICSPCLK (ez megfelel a PGD-nek és a PGC-nek), ezen kívül az MCLR-t, a Vdd-t és a Vss-t kell bekötni a programozáshoz.
(#) icserny válasza sksporky hozzászólására (») Dec 13, 2008 /
 
Idézet:
„valaki le tudná írni hogy kell bekötni?(16F690)”

A Microchip már leírta, lásd a PICkit2 Starter kit-ben is szereplő Low Pin Count demókártya felhasználói kézikönyvében levő kapcsolási rajzot!
Kép: Hivatkozás

Kép: Hivatkozás

(#) icserny válasza gulasoft hozzászólására (») Dec 13, 2008 /
 
Idézet:
„valamint debughoz a PGC PGD lábak is.”

Sajnos, csak programozáshoz!

A debugolást a mezei PIC16F690 nem támogatja. Debughoz van neki egy speciális változata, amit az AC162061 header board formájában lehet megvásárolni (lásd az alábbi képen).

Kép: Hivatkozás
(#) PWM hozzászólása Dec 13, 2008 /
 
Sziasztok!
Tudnátok olyan kpcsolási rajzot küldeni ami jó szinte minden pic-hez és biztosan működik és nem olyan bonyolult?
(#) watt válasza gulasoft hozzászólására (») Dec 13, 2008 /
 
Idézet:
„Adatlapot nézd meg. MLRC VDD VSS kell valamint debughoz a PGC PGD lábak is.”

Már egyszer finoman jeleztem, hogy ne írj zöldségeket! Úgy állítod be a fenti mondatodban a dolgot, mintha csak a debuggoláshoz kéne bekötni a PGD,PGC lábakat! Tévedsz, azok a programozáshoz kellenek, és a debuggolás is azokon keresztül működik(előbb volt a programozás...).
Mielőtt tanácsokat adsz másoknak, jobban fontold meg amiket leírsz! Köszönöm!
Következő: »»   359 / 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