Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   888 / 1320
(#) watt válasza szabics hozzászólására (») Jan 15, 2011 /
 
Számolod a timer megszakításokat, kompenzálod az esetleges hibákat...
(#) szabics válasza watt hozzászólására (») Jan 15, 2011 1 /
 
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
(#) watt válasza szabics hozzászólására (») Jan 15, 2011 /
 
Nekem megy 20deka 20ezres...
Esetleg ha valaki tudna egy világegyenletet megoldó rutint adni, megköszönném! ASM-ban kéne!
(#) vilmosd válasza szabics hozzászólására (») Jan 15, 2011 /
 
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.

binclock.ASM
    
(#) szabics válasza watt hozzászólására (») Jan 15, 2011 1 /
 
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?
(#) potyo válasza szabics hozzászólására (») Jan 15, 2011 /
 
Igen, tudsz. Pontosan ezt írta watt a 893894-es hozzászólásban, hogy hogyan...
(#) szabics válasza potyo hozzászólására (») Jan 15, 2011 1 /
 
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.
(#) potyo válasza szabics hozzászólására (») Jan 15, 2011 /
 
Az nem szoftveres...
(#) vilmosd válasza szabics hozzászólására (») Jan 15, 2011 /
 
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.

binclock.ASM
    
(#) szabics válasza potyo hozzászólására (») Jan 15, 2011 /
 
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.
(#) potyo válasza szabics hozzászólására (») Jan 15, 2011 /
 
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?
(#) szabics válasza potyo hozzászólására (») Jan 15, 2011 1 /
 
Igen így van. Vilmos a timert miért 15542 vel tölti fel? Nem 15625 kellene? Mert 4MHz/256 =15625
(#) vilmosd válasza szabics hozzászólására (») Jan 15, 2011 /
 
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.
(#) szabics válasza vilmosd hozzászólására (») Jan 15, 2011 /
 
Rendben lemérem..
(#) szabics válasza szabics hozzászólására (») Jan 15, 2011 /
 
Köszi mindeninek a segítséget, most visszavonulok..
(#) SmithWebster hozzászólása Jan 15, 2011 /
 
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

lcdtest.c
    
(#) icserny válasza SmithWebster hozzászólására (») Jan 15, 2011 /
 
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.
(#) zenetom válasza watt hozzászólására (») Jan 15, 2011 /
 
Csak 20deka?
(#) icserny válasza watt hozzászólására (») Jan 15, 2011 /
 
Idézet:
„Esetleg ha valaki tudna egy világegyenletet megoldó rutint adni, megköszönném! ASM-ban kéne!”
Csak .HEX-ben van meg, de esetleg tudok adni egy DISASM.EXE-t.
(#) watt válasza icserny hozzászólására (») Jan 15, 2011 /
 
Mekkora az a .hex? Felfér az 1T-s winyómra?
(#) icserny válasza watt hozzászólására (») Jan 15, 2011 /
 
Miért, nem PIC16F628A-hoz kell?
(#) icserny hozzászólása Jan 15, 2011 /
 
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:
  1. CONFIG_STOPBITS_UART1(1);            // 1 Stop bit

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.
(#) koczka hozzászólása Jan 15, 2011 /
 
Ü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?
(#) Norberto válasza koczka hozzászólására (») Jan 15, 2011 /
 
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.
(#) SmithWebster válasza (Felhasználó 15355) hozzászólására (») Jan 15, 2011 /
 
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.
(#) icserny válasza SmithWebster hozzászólására (») Jan 15, 2011 /
 
Idézet:
„a kontraszt előtt is van előtét ellenállás”
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.
(#) accaboj hozzászólása Jan 15, 2011 /
 
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...
(#) potyo válasza accaboj hozzászólására (») Jan 15, 2011 /
 
MPLAB-ban van szimulátor.
(#) SmithWebster válasza icserny hozzászólására (») Jan 15, 2011 /
 
Kipróbáltam a flexes program modult, de így se megy sajna. Mellékelem az átírt programomat.

Üdv.

lcdtest.c
    
(#) p_istvan válasza SmithWebster hozzászólására (») Jan 15, 2011 /
 
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.
Következő: »»   888 / 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