Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   474 / 1320
(#) Prince86 válasza watt hozzászólására (») Máj 1, 2009 /
 
Köszönöm a türelmeteket és a tanácsokat!

Átírtam a programot!

Most indul elsőre az elemmel is!

Az RBIE megszakítást töröltem egyellőre!
Beírtam a megszakítás programrészbe a Status mentését és a végére a visszaállítását úgy ahogy az adtlapban van. Szerinted így jó lesz?
Mégis valami miatt lefagy amikor meghívódik a megszakítás.
A hardverről annyit hogy az RB0 lábon egy hall jeladó van és amikor odaér a mágnes a hall elé akkor ad egy logikai 1-est. Az RB1 lábra tettem a napi km nullázó gombját amit ha megnyomok akkor az RB1 re logikai nulla kerül.

Az RBIF flag csak akkor áll be ha RB7-RB4 en van szintváltozás? Az RB1-re nem?

A megszakításba beírtam egy olyat is hogy figyelje honnan jött a kérelem. Szerinted ez így jó lesz?
(#) Prince86 válasza Prince86 hozzászólására (») Máj 1, 2009 /
 
Ez lemaradt!

prg.asm
    
(#) Prince86 hozzászólása Máj 1, 2009 /
 
Mekkora marha vagyok hát elírtam az egyik regiszter nevét a mentésnél PCLATH_TEMP helyett PCLATH ot írtam.
Mostmár működik, indul elsőre méri a távolságot és ha benne lenne az órakvarc akkor a sebességet is mérné valószínűleg!

Már csak ezt a nullázó gombot kell megoldanom!
Maradhat az RB1 lábon vagy át kell kötnöm az RB7-RB4 közül valamelyikre?

Vagy ha csinálok egy olyat hogy az elején letiltom az RBIE megszakítást aztán az INIC ek végén vizsaengedélyezem akkor működhet akár az RB1 en is?

prg.asm
    
(#) szilva válasza Prince86 hozzászólására (») Máj 1, 2009 /
 
Az RBIE csak az RB4-RB7 bemenetek változása esetén váltódik ki, ha engedélyezve van. Ha a gombot megszakításosan akarod kezelni, és az RB1-re van kötve, akkor át kellene kötni RB4-RB7 közül valamelyikre.

A megszakításban a kiváltó okot jelző bitek szerint szét kell ágazni, jobban mondva azt a programrészt, ami a nem aktív megszakítást kiváltó állapotbithez tartozik, azt át kell ugrani. Minden típusú megszakítást a saját módján kell lekezelni (adatlap). A megszakításban nem kell állítgatni a GIE bitet!
(#) mammut hozzászólása Máj 1, 2009 /
 
Sziasztok!
Mi a véleményetek arról, hogy ki lehet-e égetni egy PIC16F628A-t egy olyan programmal, ami egészlépéses léptetőmotorhoz van írva, miközben a motor viszont csak féllépéses üzemmódban hajlandó elindulni, egészlépésben csak áll és a PIC kezd el izzadni!
A programozó tuti megy (igaz, hogy egy 60cm-es Iomega ZIP drive kábelhez csatlakozik az Oshon féle égetőm, az égetőhöz meg 2m-es árnyékolt riasztókábelen keresztül csatlakozik a céláramkör, de kíválóan megy)!
A PIC 2MHz-es kristállyal van hajtva 2x22pF kondival GND-re húzva, és 10Kohm-on át +5V VCC-re kötött MCLR-rel üzemel(vagy nem)!
(#) bladika válasza mammut hozzászólására (») Máj 1, 2009 /
 
Nekem nem is igazán tiszta amit írsz! Milyen léptető az ami nem indul el egész lépésben? Ilyenről még nem hallottam. Mit jelenet az, hogy kiégetni? Ha egy PIC kiég, akkor sanszos, hogy a lakás is! Nem inkább beégetni? Mellesleg mi az, hogy a PIC izzad? Ugye nem közvetlen a PIC lábairól hajtod a motort? Milyen motor? Kicsit többet mondj!


Ja látom a pic lábairól közvetlen! Ezt felejtsd el, vagy legalább védődiódát használj! Nagyon hamar meg fog feküdni az a pic!
(#) watt válasza Prince86 hozzászólására (») Máj 1, 2009 /
 
Most értem ide... A megszakításokban már jól mentesz, ez rendben. Valahogy a megszakítás forrását is azonosítod, csak kicsit kusza. Tudom, hogy első körben a működés a fontos, de próbáld meg megfésülni az egészet, hogy jobban áttekinthető legyen számodra is. Érdemes a forrásokhoz külön részeket elkülöníteni és megjegyzésekkel jelölni a kezdeteket. Az ellenőrzés(BTFSS intreg,xxF) a rutin elején legyen, és ha nem az a forrás szakított meg, akkor goto a következő ellenőrzésre, és így tovább láncolva. Ha több megszakítás is bejöhet egyszerre, akkor azt kell előrébb tenni a láncban, amelyik fontosabb.

Nem muszály a nullázót megszakításban lekezelni, de ott is lehet, csak akkor át kell kösd.
Szilva a többit megválaszolta.
(#) mammut válasza bladika hozzászólására (») Máj 1, 2009 /
 
Nem közvetlenül hajtom természetesen , van beiktatva egy L702B unipolár meghajtó védődiódákkal összekötve!
A programban vannak defelve a páratlan számú lépések, ha azokkal küldöm a mocit pillanatra megmoccan, a tekercse gerjesztve marad úgy, hogy nem is lehet megtekerni és ekkor kezd el a PIC melegíteni! A páros számú definíciókkal viszont szuperul megy! Ez egy nyomtató, vagy szkenner fejmozgató motorja volt egyébként. 48 pozíciós.
(#) KipKap hozzászólása Máj 2, 2009 /
 
Sziasztok!

PIC18F4520-on szeretném, ha TMR1 túlcsorduláskor megszakítás keletkezne. TMR1 külső kristályt használ (32.768kHz) 27pF kondival. A megszakítás nem jön létre, tehát a program nem lép be a megszakítás ciklusba. Érdekes, hogy TMR0-val nem volt ilyen gondom. Kihagytam valamit az inicializálásból?

movlw b'01111111'
movwf OSCCON
movlw b'10000000'
movwf INTCON
movlw b'00000001'
movwf PIE1
movlw b'00001111'
movwf T1CON
(#) MPi-c válasza KipKap hozzászólására (») Máj 2, 2009 /
 
Mégegyszer nézd meg az INTCON regiszter bitjeit!
(#) Amarton válasza KipKap hozzászólására (») Máj 2, 2009 /
 
Szerintem az INTCON 6. bitjét is egybe kell rakni.
Gyakorlatilag nincs engedélyezve a PEIE.
(#) KipKap válasza Amarton hozzászólására (») Máj 2, 2009 /
 

Mekkora egy ökör vagyok! Köszönöm a segítséget! Így már tényleg jó!
(#) KipKap válasza MPi-c hozzászólására (») Máj 2, 2009 /
 
Köszönöm!
(#) Prince86 válasza watt hozzászólására (») Máj 2, 2009 /
 
Igaz, most megcsináltam polingos módszerrel a nullázót és tökéletes. A nyák miatt nem lett volna szép átkötni az RB4-RB7 közül valamelyikre!
Működik a mentés is, már csak a hőfokmérőt kell kalibrálnom és szereznem egy órakvarcot hogy beindítsam a sebességmérést!

Köszönöm a segítségeteket és a türelmet!
(#) watt válasza Prince86 hozzászólására (») Máj 2, 2009 /
 
Örülök, hogy végül sikerült!
Az órakristály miért kell a sebesség méréshez? Nem jó a 4MHz-es FOSC freki?
(#) csonthulye hozzászólása Máj 2, 2009 /
 
Sziasztok. Egy olyan kérdésem lenne, hogy egy PIC18F1320-E/P -et be-e lehet égetni egy olyan égetővel, amivel eddig PIC16F84-et égettem? Soros portos, JDM égető. Úgy néztem, hogy működnie kéne, de nem szeretnék csalódni. Tud valaki segiteni?
(#) Prince86 válasza watt hozzászólására (») Máj 2, 2009 /
 
A 4MHz-es frekivel 12km/h alatt nem mérne, mert folyton túlcsordulna a számláló és ezt 1:8 as előosztás után számoltam ki!
A 32.768kHz már egész baráti sebességgel számláltat!
(#) potyo válasza Prince86 hozzászólására (») Máj 2, 2009 /
 
12km/h alatt válts üzemmódot, és mérd a két bejövő jel között eltelő időt. Azért van a kontroller, hogy alkalmazkodjon a helyzethez
(#) watt válasza Prince86 hozzászólására (») Máj 2, 2009 /
 
Használd a CCP modult. Ha túlcsordul, számold hányszor, add hozzá a maradékhoz és kész is vagy.
(#) Prince86 válasza potyo hozzászólására (») Máj 3, 2009 /
 
Most kipróbáltam a saját 4MHZ es órajeléről de még vannak gondok!

Egy kérdés:

A TMR1IF akkor is beáll 1 be ha nincs engedélyezve a TMR1 túlcsordulása által generált megszakítás?
(#) potyo válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Igen, beáll. Nézd meg az adatlapban a logikai hálózatot a megszakításokról!
(#) Prince86 válasza potyo hozzászólására (») Máj 3, 2009 /
 
Beáll?
Ezesetben nemértem miért nem nullázódik a sebesség kijelzés, pedig én megnézem a PIR1 be hogy túlcsordult e és ha igen akkor nullázom a sebesség kijelzés bitjeit.

HFOK címke után nézem meg a főprogramba.

prg.asm
    
(#) Prince86 válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Áttettem a sebesség számítás után a kiíratás elé a PIR1 nulladik bitjének vizsgálatát és ennek megfelelően a nullázást de nem működik!
Az adatlapban nem találtam utalást arrra hogy a TMR1 IF bit mikor áll be.
(#) Prince86 válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Megint lemaradt!

prg.asm
    
(#) csonthulye hozzászólása Máj 3, 2009 /
 
Sziasztok! PIC18F1320-E/P vezérlőnek nem kell rezgőkvarc, ami órajelet előállit? Csak mert csinálok épp egy kapcsolást és nem tartalmazza. De ahogy néztem, vannak más kapcsolások, amikben szintén nincs. Ezek szerint már tartalmaz alapból?
(#) berci1987 válasza csonthulye hozzászólására (») Máj 3, 2009 /
 
Szia ! Nézd meg az adatlapján a 11. oldalt
(2.1 Oscillator Types) ott találod meg a választ
(#) watt válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Az IF akkor áll be, amikor túlcsordul a TMR1 számláló.
(#) Prince86 válasza watt hozzászólására (») Máj 3, 2009 /
 
Igen, de annak túl kéne csordulnia 2másodpercenként és amikor túlcsordul akkor nullázni a kijelzésnél a sebességértéket.
Most nem ez történik, csak annyi, hogy mikor mozgatom a mágnest a hall jeladó előtt magyarul hívogatom a megszakításokat csak összevissza mutat értékeket és mikor elveszem a mágnest akkor sem nullázza le hanem benne marad a legutóbbi kijelzett érték!

prg.asm
    
(#) trudnai válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Atvaltod a bankot a PIR1,TMRIF1 vizsgalatahoz es utana a BCD torlese elott elfelejted vissza allitani...

Amugy nem ertem miert nem teszel be 2 db magnest 180 fokkal egymastol es maris 6km/h lesz az also meresi hatar... Akar betehetsz 3-at is ...
(#) Prince86 válasza trudnai hozzászólására (») Máj 3, 2009 /
 
Már van órakvarcom azzal nincs gond!
Átváltom a bankot? A PIR1 a nulladik bankban van és a BCD1, BCD2, BCD3 is itt van. Vagy nem?
Következő: »»   474 / 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