Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   472 / 1320
(#) Prince86 hozzászólása Ápr 28, 2009 /
 
Sziasztok!
Ma kipróbáltam működik e a sebességmérő amit csináltam a simsonomhoz!
Nem indult elsőre de ennek több oka is volt!
Mindet kijavítottama programban! És elindult működik!
Annyi baja van hogy nehezen indul el az oszcillátor vagyis erre tippelek. Mert mikor ráadom a tápfeszt a kijelzőn csak a felső sor megy de úgy mintha PIc nélkül kapcoslnám be. Aztán a tápfeszt elveszem majd megint ráadom és ezt többször eljátszva már elindul és működik is!
4Mhz ez kristályt használok 15pF os kondikkal. A PIC típusa 16F874. Miért lehet ez a nehézkes indulás és menetközbeni leállás?
(#) trudnai válasza Prince86 hozzászólására (») Ápr 28, 2009 /
 
PIC vagy az LCD nem megy? Amugy a Power-on Timer be van kapcsolva a konfigban? (PWRTE)
(#) Prince86 válasza trudnai hozzászólására (») Ápr 28, 2009 /
 
A PIC oszcillátora nem indul el, vagy ha nagy nehezen elindul akkor leáll néha! és összeviszsaságokat ír ki utána. Be van kapcsolvaa PWRTE.
(#) pepe33 válasza Prince86 hozzászólására (») Ápr 28, 2009 /
 
Az LCD nek hagysz elég időt inditáskor hogy feláljon mielött használnád ?
(#) Prince86 válasza pepe33 hozzászólására (») Ápr 28, 2009 /
 
250ms-ot ha minden igaz!

Ezzel:

DELAY

WAITMS MOVWF MSTIMR
WAITMS1 MOVLW d'249'
ADDLW -1
NOP
SKPZ
GOTO $-3
DECFSZ MSTIMR
GOTO WAITMS1
RETURN
(#) szilva válasza Prince86 hozzászólására (») Ápr 28, 2009 /
 
Configban LVP engedélyezve van-e, a PGM láb földre van-e húzva? 100nF a tápon a PIC mellett van-e? MCLR láb fel van-e húzva? Milyen oszcillátortípus van a config-ban kiválasztva? Az LCD kijelző initjénél betartod-e az adatlapban megadott szekvenciát, időzítésekkel?
(#) trudnai válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Idézet:
„A PIC oszcillátora nem indul el, vagy ha nagy nehezen elindul akkor leáll néha!”


Ezt honnan tudod, hogy a PIC oscija nem stabil? Milyen a config? HS? XS?
(#) trudnai válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Hat igen, ha W-be 250-et toltesz mielott a WAITMS rutint meghivod akkor az tobb, mint 300ms -et fog varakozni, annak elegnek kell lennie. A GOTO 2 ciklus, szerintem 1-el szamoltad, de ez most a hiba szempontjabol nem lenyeges.
(#) Hp41C hozzászólása Ápr 29, 2009 /
 
Sziasztok!

Újratervezett mikrokontrollerek a PIC16-os családban:
Kibővített utasításkészlet, nagyobb belső RAM (512 bájt), két FSR utasításban megadható növeléssel, csökkentéssel, szeparált BSR (bank select regiszter)...
Adatlapok
(#) potyo válasza Hp41C hozzászólására (») Ápr 29, 2009 /
 
A hír már nem mostani, már néhány hónapja bejelentették. Itt található összefoglaló, hogy milyen újítások vannak: Link. Csak sajnos ahogy nézem, még mindegyik "Future product" jelzés alatt fut
(#) Kisvé hozzászólása Ápr 29, 2009 /
 
Sziasztok.
Kb egy hónapja tettem fel egy programot, ami egy elalváskapcsoló volt tv-hez. Most ezt megírtam újra, mert rájöttem, hogy egyszerűbb módon is meg lehet írni a a programját. Viszont most is felmerült két probléma, amikkel nem jutok dűlőre. Röviden:
A PICre egy 7 szegmenses kijelző van kötve, itt írja hátra lévő idő egységeket. Értelem szerűen 0-9-ig lehet állítani az időt. A programban lévő időzítő alapján egy beállított idő után csökkenti a hátra lévő időt eggyel. Az INT lábra adott impulzussal lehet növelni az időt, ha viszont az PORTA,2-n lévő gombot nyomja tartva adunk jelet az INT-re akkor lefele számol. Nos a le fele számolás csak szimulátorban megy, gyakorlatban nem.
A másik dolog ami szintén csak szimulátorban megy, hogy ha már egy időegység a vége felé jár, akkor elkezdi villogtatni a kijelzőt egy tranzisztor és a PORTA,1 segítségével.
Nos hát ezek lennének a problémák. Remélem valakinek lesz rá pár perce Előre is köszi.

fel-le.asm
    
(#) icserny válasza potyo hozzászólására (») Ápr 29, 2009 /
 
A hír szerintem úhgy került elő, hogy történt valami bejelentés az extrém kisfogyasztású mikrovezérlők új típusairól, s ezek között szerepel az említett átdolgozott 16F családba tartozó is.

Talán az is jelent valamit, hogy a PIC16F1937 családot a ChiCAD már "beárazta".
(#) Prince86 válasza szilva hozzászólására (») Ápr 29, 2009 /
 
PGM láb? Nem EEPROM ez hanem PIC! MCLRE láb 47k val a +5V-on.
100nF van a PIC lábára forrasztva közvetlenül.
XT oszcillátor
van kiválasztva, LVP kikapcsolva.

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _LVP_OFF


250ms csak elég indulás előtt a kijelzőnek, mert amikor játszogatok a tápfesszel vagy kézzel érintgetem akkor elindul.
(#) Prince86 válasza trudnai hozzászólására (») Ápr 29, 2009 /
 
XT típusút választottam a 4MHz-es kvarchoz.

Itt a program is de nem hiszem hogy amiatt nem menne!

prg.asm
    
(#) trudnai válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Adatlapban az MCLR-nel az R1 < 40k az ugye csak viccbol van ott? Tegyel oda 20k-t!>
(#) szilva válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Ránéztem a programra, én tudom, mit kellene kijavítani, hogy menjen a kijelző normálisan, de mivel már korábban utaltam, sőt kérdeztem is rá, te meg nem feleltél, így most nem írom le mégegyszer.

Egyébként ilyen projektek esetén a kulcsszó az adatlap, itt most érdemes tanulmányozni a 16F877 család adatlapját (abban benne van a PGM láb is, meglepő módon), valamint a HD44780, mint LCD vezérlő adatlapját.
(#) Prince86 válasza szilva hozzászólására (») Ápr 29, 2009 /
 
"Az LCD kijelző initjénél betartod-e az adatlapban megadott szekvenciát, időzítésekkel? "


Erre gondolsz?

De biztos ezért? Mert van hogy mikor elindul és pl adok egy impulzust az RB0 ra akkor is lefagy nem kezeli le a megszakítást.

Mikor elindul akkor a hőmérő résznél ugrálnak az értékek ami normális is mert nincs rajta érzékelő.
De amint megszakítást hívok beragad egy értéken és onnantól fagyi van. De van hogy ezt induláskor is eljátsza, sőt legtöbbször csak sokadik próbára indul el!
(#) tirisztortetróda hozzászólása Ápr 29, 2009 /
 
Sziasztok. Elakadtam az egyik feladatommal , és gondoltam kérek egy kis segítséget. Röviden arról lenne szó, hogy kb 30 bájtnyi adatot szeretnék i2c eepromba írni, kb 10 mp-enként, majd ezeket egyenként vissza is olvasnám idővel. A pic amit használok 16f877a, van hardveres i2c busza, a memória kezdésnek egy 24lc16 b (16 k) . Nem túl sok tapasztalattal bírok a témában, és abban bízok, hogy valaki megtudna esetleg kínálni egy "keret programmal". Segítségeteket előre is köszönöm.

(#) icserny válasza tirisztortetróda hozzászólására (») Ápr 29, 2009 /
 
Ha az adatlapokat és a PICmicro Mid-Range MCU Family Reference Manual-t már rongyosra olvastad, akkor először a Microchip honlapján, az Application Notesközött érdemes szétnézni (Communication menüpontban alul a legördülőlistában I2C-t választva).

Idézet:
„Abban bízok, hogy valaki megtudna esetleg kínálni egy "keret programmal"”

Ebben ne is reménykedj, amíg azt sem árulod el, hogy assembly-ben, BASIC-ben vagy Pascal-ban akarsz programozni.
(#) szilva válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Igen, arra gondoltam. Viszont ha ez még mindig kérdés nálad, akkor még biztosan nem vetted elő a HD44780 adatlapját és nem nézted meg, hogyan is kellene iniciálni a kijelzőmodult. HD44780 adatlap

Ajánlom figyelmedbe a 45. és 46. oldalon lévő folyamatábrákat, amik a kijelző 4 vagy 8 bitesre inicializálásának menetét mutatják minden egyéb szükséges információval. Pl. azt sem szabad kifelejteni, hogy az első pár mozzanat alatt a busy flag (BF) nem használható, oda mindenképpen időzítéseket kell betenni.

Ha a kijelző már stabilan működik, indul mindig, ahogy kell, akkor az esetlegesen fellépő többi problémával is lehet, illetve kell majd foglalkozni, de egyszerre csak eggyel. Apropó: az MCLR-en lévő felhúzást lecserélted már kisebbre?
(#) szilva válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
A másik amit most nézek, hogy a megszakításban rengeteg mindent csinálsz. Még tán a "save" és hasonló rutinokat is hívkodod, amik meg GIE-t állítanak, időzítenek, osztást számolnak rengeteg idő alatt, ez így biztos nem lesz jó. Ja és nem mentesz-állítasz helyre semmilyen regisztert, se státuszt, se semmit a megszakítás elején-végén.

A megszakításban a használt regisztereket (de főleg a státuszt) el kell menteni, a visszatérés előtt pedig visszaállítani. A megszakítást kiszolgáló rutinba csak azokat a dolgokat szabad beletenni, ami a kiváltó (hardveres) okot lekezeli, időben a lehető legrövidebbre kell fogni a kiszolgáló rutinban a ténykedést. Lehet persze jelzőket állítani a megszakításban, amiről majd a főprogram tudja, hogy valamit csinálnia kell, de az időigényes dolgokat nem szabad a megszakítás törzsébe így belepakolni.
(#) Cunici hozzászólása Ápr 29, 2009 /
 
Sziasztok!

A PIC-ek terén angyon kezdő vagyok csak ismerkedek velük. Az lenne a kérdésem, hogy megoldható e az, hogy az egyik lábra beveztek egy feszeültséget és egy másikon ugyanezt kikapom csak csökkentve ,végülis a pic lábát ellenállásként szeretném használni, úgy h programozhassam az ellenállás értékét. Ha ez nem lehetséges akkor az lenne a következő kérdésem, hogy a pic-ek úgy működnek, hogy ha van fezsültség valamelyik lábon akor az az az 5v ami a tápról jön neki.
Válaszokat köszönöm.
(#) watt válasza Cunici hozzászólására (») Ápr 29, 2009 /
 
És hogy állsz az elektronikával? Mert az fontos egy PIC-el foglalkozni akaró amatörnek! Olvasd el az oldalamon, mit gondolok erről!
(#) Prince86 válasza szilva hozzászólására (») Ápr 29, 2009 /
 
Az MCLR felhúzását cseréltem 10k-ra de úgy sem jó!

A status regiszter és a w tartalmát nem menti el automatikusan a stackbe?

Igazad van tényleg hosszú lett a megszakítás, de ez az első programom még kezdő vagyok a PIC es témában. Megcsinálom úgy ahogy mondtad és az osztást stb átteszem a főprogiba. A megszakításban meg csak annyit hagyok amit muszály.

Köszi a tanácsokat! A kijelzőm tipusa Displaytech 162B, és átírom az inicrészt az adatlapon megjelölt időzítésekkel. Eddig úgy gondoltam hogy hagyok neki sok időt az indulásra és akkor tuti jól indul. De úgylkátszik rosszul gondoltam. De ettől még gyanus a PIC oszcillátora is.
(#) szilva válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Ha gyanakszol a PIC oszcillátorára akkor csinálj egy egyszerű LED villogtatót erre az áramkörre, és nézd meg, hogy indul-e a villogás, szabályos-e, vagy valami külső behatásra esetleg rakoncátlankodik. Megpróbálhatsz a kvarcra nagyobb kondikat tenni, mert ahogy néztem az adatlapot, a 15pF az ajánlott tartomány alsó széle.
(#) dudzsi hozzászólása Ápr 29, 2009 /
 
Hali

Felraktam itt a forumba egy kérdést. De valamiért kitörlödött. Vagy valaki törölte? Tud erröl valaki valamit?
(#) MPi-c válasza dudzsi hozzászólására (») Ápr 29, 2009 /
 
(#) trudnai válasza dudzsi hozzászólására (») Ápr 29, 2009 /
 
Idézet:
„Felraktam itt a forumba egy kérdést. De valamiért kitörlödött. Vagy valaki törölte? Tud erröl valaki valamit?”


Nyilvan ha nem PIC-es temahoz tartozott akkor a moderatorok toroltek vagy athelyeztek. Ha ide tartozott akkor kicsi az eselye, hogy ilyesmi megtortenjen. Nem lehet, hogy csak masik oldalon van? Mikor tetted fel a kerdest?
(#) trudnai válasza Prince86 hozzászólására (») Ápr 29, 2009 /
 
Idézet:
„A status regiszter és a w tartalmát nem menti el automatikusan a stackbe?”


Nem, a stack csak a visszateresi erteket tarolja el. Van olyan PIC, aminel ezek eltarolodnak ill eltarolodhatnak. Pl 18F eseten ezt meg lehet tenni ha egy szintu megszakitasokkal dolgozol csak ill ha ketszintu akkor a magas prioritasunal.

Olvasd el a PIC Mid-range Manualt, ott gyonyoruen le vannak ezek irva hogyan kell statuszt menteni stb.

4MHz-nel kiprobalhatod, ahogy Szilva is mondta, hogy a leheto legegyszerubb LED villogtato aramkor, es azzal latni lehet az osci (a PIC) mukodik-e. Config-ban neha HS-sel stabilabban megy a 4MHz, mas kristaly XT-vel. De ha van belso oraja akkor eloszor azzal kisereletezd ki a LED villogtatot, es ha azzal megy akkor terj azt a kristalyra. Ha nincs probalj ki pl rezonatort vagy RC tagot vagy egy teljesen masik kristalyt masik gyartotol.

Azonkivul ahogy mar Szilva irta a 15pF-eket ki kellene probabol cserelni nagyobbra, pl 22pF vagy akar 33pF is -- valoszinuleg a startup time ettol megnovekszik, de epp erre valo a PWRTE hogy ezzel ne legyen gondod.

Lehet egy soros ellenallas sem artana az OSC2 lab fele - hogy mekkora gozom sincs... ezt az infot a kristaly adatlapjabol kellene kinyerni... Esetleg meg egy 1M kornyeken levo parhuzamos ellenallassal is lehet kiserletezni.
(#) watt válasza dudzsi hozzászólására (») Ápr 30, 2009 /
 
Alap fórum szabály: Egy kérdést csak egy helyen teszünk fel, és ha nem kapunk rá választ, akkor sem ismételjük meg, mert valószínű nem azért nem válaszolnak, mert nem olvasták, hanem ezért, mert nem lehet rá érdemben, vagy nem tudnak, vagy nem akarnak(mert ugye nem kötelező!) válaszolni. Hidd el a válaszolók megnézik a kérdéseket. A "kezdő vagyok, atomreaktort akarok építeni, adjatok rajzot!" típusú kérdések nem közkedveltek.
Következő: »»   472 / 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