Fórum témák

» Több friss téma
Fórum » CCS PIC Compiler
 
Témaindító: (Felhasználó 1542), idő: Ápr 3, 2006
Lapozás: OK   28 / 118
(#) vicsys válasza pepe33 hozzászólására (») Okt 16, 2009 /
 
Pepe!
A rutinok jó lennének, ha nem prellezze. Egy kattanásra 3-4 -et ugrik. Hasonló jelenség volt nekem megszakítás nélkül, csak durvábban. Hw vagy sw beavatkozás segítene?
(#) Petika válasza vicsys hozzászólására (») Okt 16, 2009 /
 
Hmm, tudom, h ilyen nem lehet, de lekötöttem földre, és az egész kijelző teli lett (mind a két sor üresről átváltott teli sorrá).
Az LCD adatlapja pedig azt írja, hogy föld esetén írni lehet rá :S 5x megnéztem, még műszerel is kimértem, tényleg az RWt kötöttem le a földre, és nincs rövidzárba semmivel (csak a GNDvel)
pontos típusa az LCDnek: rt162-7
(#) vicsys válasza Petika hozzászólására (») Okt 17, 2009 /
 
Az talán jó lenne. A kontrasztot állítottad a teli soroknál?
(#) Petika válasza vicsys hozzászólására (») Okt 17, 2009 /
 
Nem, de most megpróbáltam és ugyan az
Úgy indítottam el a programot, hogy RW a 21. lábon volt (RD2), majd amikor futott átdugtam földre, és az egész kijelző ismét teli lett. Próbáltam kontrasztálltó potit tekerni, de semmi nem változott Amikor visszadugtam(RD2-re), akkor megint össze-vissza betűket írt ki.
Már azon gondolkodok, hogy fel van cserélni LCD adatlapján pár láb, vagy nem tudom
(#) icserny válasza Petika hozzászólására (») Okt 17, 2009 /
 
Letilthatnád a Watchdog-ot és (ha nem használod) az LVP-t is!
  1. #FUSES NOWDT
  2. #FUSES NOLVP


A kiírások között pedig nagyobb szünetet is be lehetne iktatni (minek ez a nagy sietség?), pl.: delay_ms(500);
(#) Petika válasza icserny hozzászólására (») Okt 17, 2009 /
 
A jelenség ugyan az, csak lassabban
1x elsötétül a kijelző, majd, a következő kiírások lesznek("Hello123456!" kellene kiírnia): (X az üres karakter)

XXXHellf123456!X
XXXXXXXXXXXXXXXX
1mp múlva:
XXXHelf123456!X
XXXXXX3456XXXXXX

leállítottam a programot, levettem a PicKitet és újraindítottam az egészet akkor:
XXXXXXlo123356!X
XXXXXXXXXXXXXXXX
Majd 1mp múlva:
XXXXXXlo123356!X
XXXXXXXXXXXXXX34

Tehát nem is ugyan azokat írja ki mindig, hanem mindig mást.
Már a monitort is kikapcsoltam, és a vezetéket is egész rövidre vágtam, nehogy az zavarja, de akkor is ugyan ez a jelenség. Csak akkor írja ki jól a szöveget, ha nagyon kicsi kristályt teszek rá, akkor pedig kihagy egy szünetet. Lehet, hogy a a CCS ben lévő lcd.c nem jó ehhez a típusú LCDhez?
(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 /
 
Szia!
Ezzel be kellene állítani, milyen LCD-t használsz: setup_lcd( )
Honnan találja ki, hogy hány soros vagy hány karakteres az LCD?

Ezt meg az aktuálís kvarchoz átállítod? #use delay(clock=40000000) mert az időzítésekkel baj lesz.
(#) Petika válasza p_istvan hozzászólására (») Okt 17, 2009 /
 
Szia!
A setup_lcd nem csak az olyan PICkeknél kell, ami rendelkezik külön LCD meghajtóval?
Még nem használtam LCDt sose, de amiket láttam mintaprogramokat egyiknél se írták bele a setup_lcd-t, még a CCS mintaprogramjaiba se.
(#) vicsys válasza Petika hozzászólására (») Okt 17, 2009 /
 
  1. ...
  2. #FUSES HS //High speed Osc (> 4mhz)--ha csak 4MHz-es a kvarc akkor ide XT kell!!
  3. #FUSES MCLR //Master Clear pin enabled
  4. #use delay(clock=40000000) //tényleg 40MHz-es a kvarc???
  5. ...
(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 /
 
Erre sem válaszoltál: Honnan találja ki, hogy hány soros vagy hány karakteres az LCD?

Én saját rutint használok, nagyon nem mindegy...
(#) pepe33 hozzászólása Okt 17, 2009 /
 
Valaki használt már HP03MA tipusú nyomásszenzort ?

Annak a lekérdezésével kűzdök, de ha valakinek van hozzá kész library az nagyon hasznos lenne most.
(#) Petika válasza p_istvan hozzászólására (») Okt 17, 2009 /
 
Jaj bocsi!
40Mhzes a kvarc, mert elvileg tud annyit, de 10Mhzel is próbáltam.
A CCS mintaprogramjába se ír setup_lcd-t, csak annyit láttam, hogy a HD44780-as nál mindenki az lcd.c-t használja, 4x20nál pedig az lcd420.c-t
Annyit láttam még, hogy lcd_type -ot definiálni kell, de 2x16-osnál senki nem definiálta, csak eltérő LCDknél. (de próbálkoztam azzal is)
(#) potyo válasza Petika hozzászólására (») Okt 17, 2009 /
 
A 40MHz-es kvarc nem jó. 40MHz-es órajelbemenetet tud, az nem ugyanaz, mint a 40MHz-es kvarc.
(#) Petika válasza potyo hozzászólására (») Okt 17, 2009 /
 
Hmm, akkor jól átvertek engem.
mindjárt kiszedek egy 4Mhzeset valahonnan, és megpróbálom azzal.
(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 /
 
Ez is jól van beállítva? delay(clock=40 000 000)
Ennek órajelnek kellene lennie (nem feltétlen a kvarcnak), ha nem stimmel, rossz időzítéseket fog használni az LCD rutin (meg más időzítő rutin is) és ettől is hibásan működik az LCD vezérlés.
(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 /
 
Jó a 10MHz kvarc csak akkor #USE delay(clock=10000000)
kell.
De ha #Fuses: H4 -et is beteszed (HS helyett) akkor a 10MHz-es kvarccal 40MHz-en fog menni a PIC és akkor jó a #USE delay(clock=40000000)
(#) Petika válasza p_istvan hozzászólására (») Okt 17, 2009 /
 
10Mhz-esel ugyan az mint a 40essel.
4Mhz-es H4el ugyan az
4Mhz-es XTvel jól működik, csak szünetet hagy.
Viszont a következő furcsaságot vettem észre:
Kiíratok valamit, és minden második karaktert kihagyja.
beírtam neki egy gotoxy 0,1 -et, és akkor közé ír. a program:
Idézet:

while (TRUE) {
delay_ms(500);
lcd_putc("\f");
delay_ms(500);
printf(lcd_putc, "13579");
delay_ms(500);
lcd_gotoxy(0,1);
printf(lcd_putc, "24680");


ennek az eredménye:
először: X1X3X5X7X9XXXXXX
majd 0,5mp múlva: X1234567890XXXXX
(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 /
 
- Azt nem írtad hogy milyen #USE delay(clock=??????????) értékeket használtál a különféle oszcillátor beállításokhoz!
Mint írtam, ennek összhangban kell lenni a PIC órajelével!
Ha a H4 beállítást használod akkor a kvarc négyszeresét kell beállítani. (4 Mhz-en meg nincs értelme H4-et beállítani)
- Nem kísérletezni kellene különféle nem összetartozó beállításokkal, mert abból jó nem fog kisülni.
Még egy olyan beállítással nem próbáltad ami korrekt lenne... (legalább is a leírásod alapján).
Szerintem, egyértelműen időzítési gondjaid vannak a helytelen alapbeállítások következtében.
(#) Petika válasza p_istvan hozzászólására (») Okt 17, 2009 /
 
Bocsánat, tényleg nem írtam!
Tudtommal mindig a kristály órajelét kell beírni, kivéve H4nél, vagy ez nem így van?
Szerinted milyen beállítás az ami jó lenne? Sajnos még sose programoztam C-ben PICet
Én eddig ezekkel próbáltam, és ilyen eredmények születtek:
4Mhz:
h4 beállítva, clock=16M -össze visszaságot ír ki
XT beállítva, clock=4M - szünetet hagy
10Mhz:
HS clock=10M - össze visszaság
H4 clock=40M - Nem tud belépni a debug üzemmódba

40Mhz
Hs clock=40M - össze visszaság
(#) icserny válasza Petika hozzászólására (») Okt 17, 2009 /
 
Na, ilyenkor kellene leellenőrizni a kapcsolást!
(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 / 1
 
Valami ilyesmi van az #include < lcd.c > előtt a programodban?

#define LCD_ENABLE_ PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

Illetve az RW jó helyre van kötve vagy definiálva?


(#) Petika válasza p_istvan hozzászólására (») Okt 17, 2009 /
 
Nem volt beírva, mert alapból ezek vannak definiálva, de beírtam, és semmi változás.

Végignéztem az összes vezetéket műszerrel (PIC lábától az LCDn lévő csatlakozóig), így vannak bekötve:
19.láb Enable
21.láb RS
22.láb RW
27.láb D4
28.láb D5
29.láb D6
30.láb D7
Szerintem ez jó.
Lehet, hogy az LCD.c nem jó a HD44780-as kijelzőhöz? A kijelző tuti jó, legalább is AVRel működött.

(#) p_istvan válasza Petika hozzászólására (») Okt 17, 2009 /
 
Nem annyira jó, szerintem..

19.láb Enable -> D0
21.láb RS -> D2, D1 helyett!
22.láb RW -> D3, D2 helyett!
27.láb D4
28.láb D5
29.láb D6
30.láb D7
(#) Petika válasza Petika hozzászólására (») Okt 17, 2009 /
 

Megvan...
Működik...
közel 1 hetet szenvedtem vele...
A hiba a következő volt:
A CCS-t nem épp hivatalos helyről szereztem be, és az LCD.C fájl rossz volt...(torrenten valaki szórakozott)
Leszedtem egy oldalról az LCD.C fájlt, és utána egyből működött az egész!

Ha valaki ugyan ebbe a hibába esik mint én akkor keressen rá neten, és szedje le a jó fájlt!

p_istvan-nak nagyon szépen köszönöm a kitartó segítségét! Nélküle már feladtam volna, és sose jöttem volna rá!

(Bocsi igazad van, a lábkiosztást illetőleg! csak véletlen elírtam a lábkiosztást!)
(#) laki1 hozzászólása Okt 21, 2009 /
 
Hali!
Tudna valaki adni 1 használható linket amiről a legujabb(vagy ami ujabb 3.168nál) NEM demo verziót le tudnám tölteni.. a rapidshare már nem müködik.
Köszi
(#) El_Pinyo válasza laki1 hozzászólására (») Okt 21, 2009 /
 
Szia!
Ez a link még működik!
Üdv.
(#) brugo hozzászólása Okt 21, 2009 /
 
Miből áll a " CCS prototype card " ?
(#) brugo hozzászólása Okt 22, 2009 /
 
az MPLAB-ba betett CCS pluginnal hogyan kell dolgozni ?
- úgy mint az MCC18-al, tehát a main.c hez hozzáadom az illető IC linker szkript-jét és Bildet neki ?
(#) icserny válasza brugo hozzászólására (») Okt 22, 2009 /
 
Melyik miből... Mivel többféle van.
Itt nézz körül!
(#) icserny válasza brugo hozzászólására (») Okt 22, 2009 /
 
Kiválasztod Language Toolsuite-ként, aztán Build és örül, ha Succeeded.

A linker scriptet tudtommal csak akkor kell a C(18) projektekhez adni, ha nem a defaultat akarod használni. (Pl. bootloder miatt, vagy más okból kifolyólag)
Következő: »»   28 / 118
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