Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   252 / 1319
(#) szilva válasza halacs hozzászólására (») Júl 24, 2008 /
 
RBIE lekezelésekor megszünteted az "eltéréses állapotot" (mismatch condition)? Ha ezt nem teszed meg, akkor az interrupt befejezése után újra interruptba kerül, nem fagy le, csak borzalmasan belassul, mert minden egyes főprogrambeli utasítás után elzarándokol az interrupt rutinra. A mismtch condition megszüntetésére nézd meg az adatlapot (port olvasása, interrupt flag törlése, ilyesmi)!
(#) trudnai válasza vilmosd hozzászólására (») Júl 24, 2008 /
 
Idézet:
„Nem art nemetul tudni.”


Vagy olyan kevert nyelven amit a Google csinal az oldalbol angol forditas cimen

Brenner - angolra ferditve
(#) halacs válasza vilmosd hozzászólására (») Júl 24, 2008 /
 
A Progi:

program RBIE

dim zz,id as word
dim idl,idh as byte
dim ztxt as string[5]

sub procedure interrupt
idl = TMR1L
idh = TMR1H
TMR1L = 0
TMR1H = 0
id = idh * 256 +idl
INTCON =136
end sub


main:
TRISB = 255
TRISD = 0
TRISC =0
T1CON = 5
OPTION_REG = 1
INTCON = 136
lcd_Config(PORTD,7,6,5,4,PORTC,0,2,1)
Lcd_Cmd( LCD_CURSOR_OFF)
Lcd_Cmd(LCD_CLEAR)
id = 0
idl = 0
idh = 0

while TRUE
Delay_ms(100)
zz = id
wordToStr(zz,ztxt)
Lcd_Out(2,3,ztxt)
wend

end.
(#) cpumaster hozzászólása Júl 24, 2008 /
 
Hellooo mindenkinek! Megoldódott a probléma de nemnagyon merem elmondani mi volt a gond. Elkövettem azt a hibát amire én például soha nem gondolok és nem is volt ezokból hibám soha életemben de már végső elkeserédsben olvastam h nemjó ha hosszúk a kábelok. Hát az LPT az 3m de ez adott nem vágom csak szét. Az ICSP 35cm volt. Fogtam a szalagkábelt levágtam a 35öt 5re. Visszaforr és teszt. Lám működik. Énmeg mindenkit itt szivatok a fórumon is h mi lehet a baj. Ezért tényleg ELNÉZÉST KÉREK azoktol akik próbáltak segíteni nekem ez nagyon bagatel hiba volt sztem részemről. Egy 16F877A val teszteltem az előbb és olvasott is meg írt is. Nem volt több failed meg error meg h0000. Azért annyi hogy bántott h két pin is csatlakozik a 2 külön bufferhez aminek a kimenetei együtt vannak a tranyára és egy kicsit kézzel beavatkoztam a nyákon de tudtam h mit kell "szétbágerolni". Szóval az egyik kimenetét leválasztottam bizt ami bizt. A 3m-es LPT pedig ezekszerint elmegy bár max 30cm-t javasolnak Most beégetem a 628-asba a programot amit trudnaitől kaptam. Köszönöm mindenkinek a segítségét.
(#) vilmosd válasza cpumaster hozzászólására (») Júl 24, 2008 /
 
Hali
Ez azert van mert az emlitett ellenallasok 10k ertekuek. Ezeket le kellene csokkenteni 1-2 k-ra es talan megjavulna. Ez idaig minden paralel portos egetonel szivatott. Ezert jo a PK2. De igy tanul az ember. Ha nem sziv, nem tanul. En is sokat szivtam az elejen a sok mindenfele szedett vedett egetokapcsolassal.

Na jo ennyi
Vili
(#) vilmosd válasza halacs hozzászólására (») Júl 24, 2008 /
 
Hali
Itt nem latok semmi utalast a RBIE hasznalatara. Ja ha ez basic ezt nem ismerem tulzottan. Probalkoztam egy par proggi irasaval de Igen bena es gyorsan hatarokba utkozol. ASM az indulasnal 100 % siker. Van millio peldaproggi es a MC oldalarol az adatlapokbol, az AN-ekbol gyorsan megtanulhato a hasznalat.

Udv Vili

(#) halacs válasza vilmosd hozzászólására (») Júl 24, 2008 /
 
igen Basic. igazábol most csak annyi lenne hogy megszakitáskor kiolvassa a TIMER1-et majd a föprogramban kiirná az lcd-re az értékét.

Köszönöm azért a gyors válaszotokat.
(#) trudnai válasza halacs hozzászólására (») Júl 24, 2008 /
 
Figyi, Szilva mar leirta neked mit kellene csinalni pedig o meg nem is latta a forrasodat...

Szoval 3 dolgot kell modositanod az interrupt kezeloben:

1. PORTB regiszteret ki kell olvasnod - meg akkor is ha nem akarod megnezni vagy eltarolni a tartalmat

2. RBIF -et torolnod kell - portolvasas utan!

3. Azt az INTCON=136 -ot az interrupt vezerloben ki kell szedni, az ott nagyon nem jo!
(#) halacs válasza trudnai hozzászólására (») Júl 24, 2008 /
 
Örök hálám igy egyértelmü volt számomra KÖSZÖNÖM
Királyok vagytok mükszik.
(#) szilva válasza szilva hozzászólására (») Júl 24, 2008 /
 
No, mivel nem találtam sehol semmi értelmeset, így hát éjjel az eredeti Low Pin Count Demo Board pdf-jéből kiműtött képnek estem neki paint-tel. Ma össze is raktam, működik, az eredetivel teljesen megegyező kapcsolású board lett belőle, csak a kétoldalas panelből csináltam pár átkötéssel egyoldalast.

Ha valaki után akarja építeni, 300x300 dpi-s felbontásban kell kinyomtatni a mellékelt bitmap-et (vasaláshoz nem kell forgatni, így jó, ahogy van).

Figyelem! A jumperek két lába gyárilag is fóliával rövidre van zárva, ezt így is hagytam a módosított rajzon is. Ez arra jó, hogy a jumpereket nem szükséges beépíteni, ha nem akarjuk használni azokat. Ha viszont használni akarjuk, akkor előbb el kell vágni a fóliát a jumperek alatt. (Ez egyébként benne van a gyári dokumentációban is.)

Bővebben: Link

lpc-1.zip
    
(#) Prometheus01 hozzászólása Júl 24, 2008 /
 
Üdv emberek!
itt van egy "égető" Link
lehet ezt módosítani valahogy hogy égesse a 18F452-I-t?
ehhez van nyákom, és lusta vagyok újat maratni
(#) Moderátor hozzászólása Prometheus01 hozzászólására (») Júl 24, 2008
 
Van itt a topik fölött jobb oldalt egy bekeretezett K betű. Nyomd meg és írd be a JDM betűket a csillag helyére, és nyomd meg a Keres gombot! Olvasd el az összes létező hozzászólást, amiben ez (JDM) szerepel. És csak HA nem tiszta valami, akkor kérdezz ismét! Kösz!
(#) cpumaster hozzászólása Júl 25, 2008 /
 
Hello trudnai!
Sikerült beégetnem a progit amit írtál nekem de valami miatt nem megy élesben a dolog. Betettem a pic-t a próbapanelba adtam neki stabil, zavarszűrt 5v-ot. Betettem a 4MHz-s kvarcot az ocs1 osc2 lábra. Egy egy 22pF kondival fölre húztam a lábait. Betettem a 32.768Hz-s kvarcot T1OSI és T1OSO lábakhoz ezt próbáltam kodnival is meg anélkül is. A B-port 1. bitjére tettem egy ledet ellentámmal a relé helyett egyenlőre. Vártam h felvillan de nem. Mit tegyek? Esetleg bele tudnál nézni még1× a progiba?
(#) trudnai válasza cpumaster hozzászólására (») Júl 25, 2008 /
 
Szia,

A 4Mhz-es kristaly felesleges, belso orarol megy a cucc (ez egy 16F628A, ugye? Mert en arra csinaltam).

A T1OSC az kell neki (a 32768Hz kristaly), mellekeltem a kepet hogyan kosd be.

Egy aprosagot is modositottam a forrasban - nem tudom ez befolyasol-e valamit, mindenesetre inputra tettem az RB6/RB7-et amin az ora kristaly log. Szimulatoron most megneztem es ott teszi a dolgat...

Udv,
Tamas
(#) cpumaster hozzászólása Júl 25, 2008 /
 
Szia! Hát nem 16F628A hanem csak sima 16F628 az baj lehet? Most kivettem a 4MHz-s kvarcot akkor a 32.768Hz-s az jól volt kötve igen azt értem mondjuk 22pF volt kéznél az esetleg ha gond lehet még. Most beégetem ezt a hex-t. Köszi. Bár nekem ez is meg az előző is a simulatorban megállt a sleep utasításnál. Elméletileg abból fel kellene érbrednie megszakításnál nem? És a 7.láb (RB.1) a kimenet ha jól láttam az asm kódban. És ezen ha bekapcsol a relé H szint jelenik meg az 59-ik mp-ben igaz? Mert én a led + lábára tettem egy ellentámmal. A pic lábainál 4,91V van. Te mivel simulálsz? Én az oshon féle PIC SIMULOR IDE progival. Dehát aztmondod ez biztosan jó akkor keresgélem a hibát.
(#) trudnai válasza cpumaster hozzászólására (») Júl 25, 2008 /
 
Huh, a szimulacio miatt attettem RB0-ra, bocsanat - otta forras ha esetleg atirod akkor forditas es azt a HEX-et tedd be.

Oshon fele meg akarmifele simulatorokat nem hasznalok, nem tudom mennyire szimulaljak huen az eredeti viselkedest. MPSIM-ben bizom egyedul ilyen teren (MPASM-ben levo szimulator). Abban nincs LED meg csicsamicsa de az garantaltan azt csinalja amit kell. A szimulaciohoz amugy en kikommenteztem a sleep-et, ugy egyszerubb volt, de igen, valos aramkorben a timer tulcsordulasakor a pic feleled es az interrupt kezelo meghivodik...

A 16F628 es 628a kozott vannak eprobb elteresek, tobbek kozott a T1 oscillator aramkore is mas kicsit. 628a-nal 15pf-et ir a DataSheet, a sima 628 eseteben pedig 33pf-et. Mellekeltem amit ir rola a DS, de tessek olvasgatni a PDF-et Az ertekeket nem veletlen irjak oda amugy.. Ettol elteronel is beindulhat - vagy nem - szoval inkabb betartja az ember es akkor nincs mire hivatkozni miert nem megy.
(#) cpumaster válasza trudnai hozzászólására (») Júl 25, 2008 /
 
Tehát akkor azokban a hexekben amiket feltettél nekem azokban RB0. Igaz? Mert akk csak átteszem a ledet és menni is kell.
(#) trudnai válasza cpumaster hozzászólására (») Júl 25, 2008 /
 
Hat amit legutoljara felraktam azokban igen, RB0 van, RB8 es RB7 pedig az ora kvartz.
(#) Doncso hozzászólása Júl 25, 2008 /
 
Sziasztok, köszi mindenkinek a segítséget a 628-as kapcsán, végül rendeltem egy másikat, azzal elsőre jó lett, igaz nem ismerte fel a PIC-et de legalább fel tudtam programozni és működik az áramkör is amibe szántam.
Egyébként a szilva-féle pickit2 nek is fel kellene ismernie a PIC16F628A -t ? Ez az egyik kérdésem, a másik az lenne, hogy ha van egy HEX-em és egy ASM-em ,ezeket hogy tudom módosítani, arról lenne szó hogy ez egy LCF-mérőnek a programja, ezt szeretném átírni magyarra.
Üdv: Doncso
(#) vtnagy hozzászólása Júl 25, 2008 /
 
PIC16F877-tel lehet kivezérlésjelzőt csinálni?
Mint pl., amit Skip csinált, olyan 1sorosat, csak éppen nem tranzisztorral, hanem PIC-kel.

Ha lehet, valaki el tudná magyarázni, miként lehet? 24 LED-del tervezem, de ezt a "Ha lehet" rész után szerintem megbeszélnénk, mert én szeretnék PIC-es "multifunkciós" fényeffektet, egy része már megvan, csak gondolom érdeklődök, miket lehetne még beleépíteni a programba.
(#) szilva válasza Doncso hozzászólására (») Júl 25, 2008 /
 
Elég rejtélyes jelenség ez, hogy nem ismeri fel a PIC-et. Igen, minden PIC-et fel kellene ismernie csak a baseline-oknál kell kézzel beállítani.

Az asm-et meg MPLAB-ban kellene megmatatni és lefordítani újra, majd az így előállt hex-et betölteni a PIC-be. Viszont ha jól emlékszem, az használ lebegőpontos számítási rutinokat, amiket máshonnan kell összevadászni - már ha ez az az LC mérő, amit egyszer én is nézegettem a neten. Szóval lehet, hogy nem triviális újrafordítani, de megoldható kis utánajárással.
(#) Doncso válasza szilva hozzászólására (») Júl 25, 2008 /
 
Akkor jól sejtettem, MPLAB-ban nyitottam meg az ASM-et, majd egy két karaktert, pl az üdvözlőszöveget , módosítottam, majd lementettem HEX-be. Persze nem lett jó valamiért mert amikor megnyitottam pickit2-be a hexet csupa nullát irt. Ugyanezt megcsináltam módosítás nélkül, tehát ASM-et HEX-re forditottam majd, mentés, égetés, igy sikerült, ez pötyög most benne. Csak azt nem értettem, hogyha egy két karaktert átírok akkor miért nem tudom megetetni vele. Egyébként a Everyday Practical Electronics- féle LCF-mérőről van szó. Ebben van a 628-as.
(#) cpumaster válasza trudnai hozzászólására (») Júl 25, 2008 /
 
Szia! Úgy akartad gondolom írni hogy RB6 RB7 a 32.768HZ-es kvarc helye. De nem megy sehogysem. Már átkötöttem az MCLR lábat egy 4,7K-val +5V-ra.(4,91V az az 5V) Kicseréltem a kondikat 15pF-ra. Mi lehet még a hiba? Teszek mindjárt egy képet is csak feltöltöm a digitgépet.
(#) Brad hozzászólása Júl 25, 2008 /
 
Tiszteletem!

Az utóbbi időben igyekeztem követni ezt a topicot, hogy elkerüljem a felesleges kérdésfeltevést, azonban most szükségem lenne egy kis segítségre.

Korábbi hozzászólásokban olvastam a mikroelektronika online könyveiről, és inkább azt olvastam minthogy feleslegesen kérdezzek.

Ráakadtam az egyik könybven egy oldalra ahol olyan asm parancsokat találtam melyek nagyon megkönnyítenék a programozást.

Az oldal:
http://www.mikroe.com/en/books/picbook/3_chapter.htm

Itt a 3.9 alcímben az IF vezérlési szerkezetre mutat példát, de alkalmazni nem tudom.

Azt szeretném tudni, hogy ez esetleg egy előre megírt macro lehet?

Amennyiben az akkor hogyan tudnám használni?

Mert lényegesen könyebb lenne ilyen elágazást használni mint bit tsztet, amenyibben összetett a szerkezet, mert sokkal átláthatóbb maradna.

A segítséget előre is köszsönöm.
(#) Norberto válasza Brad hozzászólására (») Júl 25, 2008 /
 
Az az igazság, hogy ez nem az assembly programozási nyelv sajátja, ez nem is tartozik bele tulajdonképpen. Ez az IF, amit most megmutattál, az előfordítónak szól, tehát az assembly programodban (a programtörzsben) ilyen utasítást nem tudsz használni. A fordítás pillanatában értékelődik ki az utána álló feltétel, és aszerint fordítja le a programodnak bizonyos részeit. Persze természetesen saját IF-makrót létrehozhatsz, ami működhet a programjaidban
(#) cpumaster válasza Brad hozzászólására (») Júl 25, 2008 /
 
Hello! Nem akarok semmi hülyeséget mondani de sztem nem macro ez. Pascalt tanulgattam és ott ez a felépítés volt használatos. Bár egyéb programnyelveket a basicon és pascalon kívül nem ismerek nagyon.
(#) Brad válasza Norberto hozzászólására (») Júl 25, 2008 /
 
Értem tehát akkor valószínűleg macro.

Hát ilyen macro megírása kissé nagy falat lenne még nekem. Viszont, ha az előfordítótól függ akkor jó lenne tudni, az oldalon úgyláttam mpasm-et használtak.

Érdekes.

Azért örülnék neki ha használhatnék IF ELSE WHILE stb. (sőt while-lal for ciklus is símán készíthető)

Lehet, hogy nem olyan hatékony, de lényegesen egyszerűbb.

Lehet akkor inkább macro után kutatok, hátha szerencsém lesz.

Köszönöm a segítséget.
(#) Brad válasza cpumaster hozzászólására (») Júl 25, 2008 /
 
Igen elképzelhető, hogy előfordító.

Viszont azt is tudom, hogy manapság iszonyúan hatékonyan szoktak progikat írni, előre megírt macro-k segítségével assembly-ben.

Szintaktikájában valóban a pascal-ra hasonlít.
(#) Norberto válasza Brad hozzászólására (») Júl 25, 2008 /
 
Idézet:
„Azért örülnék neki ha használhatnék IF ELSE WHILE stb. (sőt while-lal for ciklus is símán készíthető)”


Abban igazad van, hogy néha ez egyszerűbb, főleg egy kezdőnek, csak az a "baki", hogy az assembly nyelvben ilyenek ciklusos szerkezetek egyáltalán nincsenek definiálva. Tehát csak magadnak készíthetsz esetleg (makróként), viszont az assembly az legfőképpen a hatékony programozást segíti elő, és ha ilyen makrót assembly-ben megírnál, akkor az assembly nyelv úgymondva elvesztené az "erejét és szépségét, sajátosságát". Ezek a fent említett szerkezetek nem feltétlenül mindig a leghatékonyabbak.
(#) Brad válasza Norberto hozzászólására (») Júl 25, 2008 /
 
Igen azt tudom.

Csak ha már 3-nál több elágazás van akkor már nagyon megbonyolódik ha biteszttel próbálom megoldani, egy komolyabb összetettebb szerkezetet megvalósításában nagy a hibalehetőség sokáig tart átvizsgálni.

Természetesen nem olyan hatékony, sőt semmilyen fejlett programnyelv (vagy akár összetett ut.) nem olyan hatákony nyílván mint assembly

De egyelőre feláldoznám ezt egy esetleges bonyolultabb progi egyszerűbb áttekinthetősége érdekében, ugyanakkor ezért még nem feltétlen akarok mondjuk c fordítót használni hisz rengeteg dolog egyszerűbbnek tűnik asm-ben, csak az összetett utasítások a vezérlési szerkezetek hiányoznak.

Persze lehet elegánsabb lesz mindent asm-ben megírni.

Ezért is örültem nagyon, hogy találtam ezeket a control direktívákat.
Következő: »»   252 / 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