Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Számolod a timer megszakításokat, kompenzálod az esetleges hibákat...
De az nem hardveres megszakítás lesz hanem szoftveres. De még az se nagyon, mert a feltétel vizsgálat az időt visz el. Nekem hardveres kell
Nekem megy 20deka 20ezres...
Esetleg ha valaki tudna egy világegyenletet megoldó rutint adni, megköszönném! ASM-ban kéne!
Hali
A TMR1 IT beutesekor novelek egy szamlalot (vagy csokkentek). Amennyiben be lovod, hogy a TMR1 500 mS IT-t adjon, ezt ketszer veszed, es ott a 1 sec. Persze elooszto hasznalat, TMR1 load. A mellekel program 50 mS IT-t general, es a "it_cnt" szamlalo 20-ig szamol, tehet a szamlalo 1 sec utan fut nullara. Ezt fel lehet hasznalni mint idoalapot. Persze nem pontossaga fugg a kvarc pontossagatol.
Az most nekem nem kell. Jó akkor másképpen teszem fel a kérdést. Egy kvarc alkalmazásával tudok 1 másodperces hardveres megszakításokat generálni, úgy hogy nem KHz nagyságú kvarcot használok?
Igen, tudsz. Pontosan ezt írta watt a 893894-es hozzászólásban, hogy hogyan...
Arra Írtam, hogy az szoftveres. Nekem akor van szükségem az 1 másodperces megszkításra amikor a timer megszakítást generál. Ami mindig időben 1 másodperckor van.
Vagyis két megszakítás között a számláló számolgat addig amíg egymásodpercnyi idő eltellik és ha éppen annyi akkor megszakít.
Hali
Ez a program 4 MHz kvarcnal 524 mS megszakitast general, 2 MHz nel a duplajat. Mar csak a TMR1 load erteket kell kiszamolni. Itt a teljes hosszt szamolja, azaz 65535.
De az ha nekem még vizsgálnom kell, hogy elérte e az értéket. Jön a megszakítás, növelek egy számlálót és megvizsgálom. Az idő tellik. Tehát valódi kvarc frekvenciához hozzáadódik a műveletvégzés ideje. Ezzel csúszik. Ha azonban a kvarc alapján leszámolt impulzusok periódus ideje megszámolva éppen 1 másodperc akkor jön a megszakítás akkor az valódi hardveres. Ekor kell indulni a folyamatnak. Annek végrehajtásáig éppen pontosan egy másodperc idő van. Amit megszakit a hardveres negszakítás ha nem birom befejezni.
Azt tudod, hogy a feltétel kiértékelési ideje mindig ugyanannyi, és két ilymódon indított folyamat között pontosan egy másodperc telik el?
Igen így van. Vilmos a timert miért 15542 vel tölti fel? Nem 15625 kellene? Mert 4MHz/256 =15625
Mivel az IT lekezelese es a TMR1 toltese idobe telik, igy ez az ertek adja ki a pontos 50 ms IT erteket. Egyszeru: forditsd le, es merd meg a futasi idot.
Köszi mindeninek a segítséget, most visszavonulok..
Tiszteletem!
Már jó ideje próbálkozok LCD vezérléssel, de sajnos nem tudok rájönni mi lehet a probléma, már átolvastam minden, itt is, külföldi lapokat is böngésztem, de valahogy nem tudok rájönni mi lehet a baj, biztos bennem van a gond, mert egyszer kétszer sikerült bekapcsolni a kurzort, de azt is csak nehezen és az is csak össze vissza sikerült. Amiket használok PIC16F887 + BC1602B LCD modul A pic lábkiosztása: enable pin -> rc3 rs pin -> rc1 rw pin -> rc2 data4 -> rc4 data5 -> rc5 data6 ->rc6 data7 ->rc7 egyéb lábkiosztás: kontraszt -> ra6 led -> ra7 data1 -> ra0 data2 -> ra1 data3 -> ra2 data4 -> ra3 Még ami fontos lehet lehet, hogy ccs c -t használok. A data1-4-ig, azért van bekötve, mert 8 bites módban is kísérleteztem, mondhatni 0 sikerrel. Lehet, hogy az elméletet nem értettem meg, nem tudom mi lehet a baj, nem tudom még csak bekapcsolni se a kurzort. Egyszer-kétszer sikerült, van egy olyan gyanúm, hogy az időzítéssel lehetett a gond. Amiket próbáltam eddig: 8 bites módban, rw->0, rs->0, data 1-4 -> 1, data 5-8 ->0, enable 0, majd enable 1 és utána vissza enable 0, eredmény semmi. Enable 1 és Enable 0 között késleltetéseket is próbáltam... Próbáltam úgy is hogy enable 1 és utána állítottam be a data1-4-g és utána enable 0 + késleltetéseket itt is próbáltam. Próbáltam volna a ccs c beépített függvényével, 4 bites módban hajtani, úgy se történt semmi. Kezdő pic-es vagyok, nem tudom mi lehet a baj, csatolom a 4 bites próbálkozást. Az LCD-vel kapcsolatosan nem lehet gond, mert kettő is van, addig mindig eljutok, hogy a kontrasztot és a háttérvilágítást be tudom kapcsolni, de csak ennyi. Ha valaki tud kérem segítsen, itt is olvasgattam a fórumot, meg külföldieket is néztem, de nem megy egyszerűen. Tisztelettel, smith
A CCS PIC Compiler topikban több segítséget remélhetsz. Például az ebben a hozzászólásban található flex_lcd.c egy kipróbált program-modul az LCD kezeléséhez.
Idézet: Csak .HEX-ben van meg, de esetleg tudok adni egy DISASM.EXE-t. „Esetleg ha valaki tudna egy világegyenletet megoldó rutint adni, megköszönném! ASM-ban kéne!”
Mekkora az a .hex? Felfér az 1T-s winyómra?
PIC-kwik hibaigazítás: most látom, hogy a common/pic24_uart.c állományban bennmaradt egy korábbi módosításom, ami hibás adatátvitel (frame error) miatti reset-et okoz, ha túl gyorsan jönnek egymás után a beérkező karakterek. A "Cserny" kulcsszóra keresve könnyen megtalálható a módosított sor. Cseréljük vissza az eredetire:
Elnézést kérek a kellemetlenségekért! (A büntetést már megkaptam érte, két estém ráment a hiba megtalálására ). Egyébként régóta csorgott a nyálam a TTL-232R-3V3 FTDI kábelért, amit aranyáron mérnek. Most vettem helyette egy ilyen USB-UART átalakítót, ami kellően kompakt, és a soros vonalakon kívül 3,3 V, ill. 5 V tápfeszültséget is ad. Ideális a dugaszolós próbapanelon megépített PIC24 kísérleti áramkörhöz, ráadásul igen baráti áron. CP2102 chip van benne.
Üdvözlet.
Most kóstolgatom a piceket ezért napokban beszerzek egy pickit-ez csak az a kérdés hogy 2 vagy 3 legyen? Mivel tud többet egyik vagy másik vagy melyik éri meg?
A 2 éri meg jobban. Ha rákeresel keresővel és szánsz rá kis időt az olvasásra, láthatod, nagyon sokan kérdezték már pont ugyanezt és nagyon sokszor meg is lett válaszolva.
Hali!
Nem direktbe van kötve a led. Tranzisztorral van, és a kontraszt előtt is van előtét ellenállás... Bocsi, kimaradt a leírásból.
Idézet: Ennek mi értelme van? Egy 0,5 - 0,6 V közötti potenciál kell neki, vagy szimpla megoldásként egy ~500 ohmos ellenállással földre kell kötni. „a kontraszt előtt is van előtét ellenállás”
Sziasztok! Milyen programban lehetne megnezni hogy mit fog csinalni a PIC-re megirt program? Ha lehet egyaltalan ilyet
Vannak itt .HEX, .COD, .ERR, .A16, .INC és .asm fájlok...
Kipróbáltam a flexes program modult, de így se megy sajna. Mellékelem az átírt programomat.
Üdv.
A leírásod szerint bekötötted az az LCD_RW lábat is!
enable pin -> rc3 rs pin -> rc1 rw pin -> rc2 #define LCD_RW PIN_C2 #define LCD_E PIN_C3 #define LCD_RS PIN_C1 A rutin amit felhasználtál már módosítva volt RW nélküli fix bekötéshez. Az eredeti rutinban még benne volt ez: // If you only want a 6-pin interface to your LCD, then // connect the R/W pin on the LCD to ground, and comment // out the following line. //#define USE_LCD_RW 1 Tehát neked kell még az elejére a #define USE_LCD_RW 1 Hogy az #ifdef USE_LCD_RW ágba be tudjon lépni. |
Bejelentkezés
Hirdetés |