Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
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?
PIC vagy az LCD nem megy? Amugy a Power-on Timer be van kapcsolva a konfigban? (PWRTE)
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.
Az LCD nek hagysz elég időt inditáskor hogy feláljon mielött használnád ?
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
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?
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?
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.
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
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.
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".
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.
XT típusút választottam a 4MHz-es kvarchoz.
Itt a program is de nem hiszem hogy amiatt nem menne!
Adatlapban az MCLR-nel az R1 < 40k az ugye csak viccbol van ott? Tegyel oda 20k-t!>
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.
"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!
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.
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.
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?
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.
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.
És hogy állsz az elektronikával? Mert az fontos egy PIC-el foglalkozni akaró amatörnek! Olvasd el az oldalamon, mit gondolok erről!
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.
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.
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? 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? 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.
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.
|
Bejelentkezés
Hirdetés |