Fórum témák
» Több friss téma |
Lehet, hogy megemlegetjük még ezt az előrendelést! Túl hosszú a hibalista...
A SLAU144i.pdf 17.4 szekciója tartalmazza, hogy reset után mi az USCI B0 alegységgel kapcsolatos regiszterek állapota. Ezeket visszaállíthatod, bár én túlzásnak tartom. (Ha jól értem a G2553 adatlapját, akkor abban csak A0 és B0 egység van?)
Arra külön fölhívják a figyelmet, hogy bizonyos regisztereknél csak a releváns biteket állítsuk át, nehogy mellékhatásként valamit elállítsunk! Idézet: „Ha jól értem a G2553 adatlapját, akkor abban csak A0 és B0 egység van?” Igen, és ez a bajom. Megpróbálom csak azokat a regisztereket visszaállítani, amiket az i2c-vel állítok, hátha... Bár nem szeretek próbálgatni, mert abból még jó soha nem származott. De ennek meg az lesz a hátránya, hogy túl sok időt fog felemészteni a váltás, és akkor már nem lesz értelme az egésznek. Egy "egyszerű" kazánvezérlés lenne belőle, melyben lenne egy, i2c-s real time óra ic, az óra/dátum kijelzéshez, egy i2c-s eeprom, az adatrögzítéshez, egy bluetooth modul, a PC + telefon kapcsolathoz, és egy SPI-s JD-T1.8"-as lcd a kijelzéshez. Plusz még két hőmérő szenzor, de az valószínü analóg lesz. Lehet, hogy túl sok modult akarok egy ilyen "kis" vezérlőre ráakasztani?
Van rá esély, hogy rövidebb lesz a lista?
Vagy ezt már így kapjuk meg és szevasz...
Szerintem még sokat kiírtanak belőle, nem szoktak "szemetet" árulni. Még az is lehet hogy a hibák miatt késni fog a megjelenés, bár kétlem.
Ha ennyi a vesződés vele, akkor miért nem keresel egy "nagyobb" procit amiben elég kommunikációs periféria van?
Ez inkább kihívás. Néztem nagyobb procit, de túl sok lába van, és sajnálnám felhasználni. A g2553-nak is marad szabad kivezetése, az előzetes tervek szerint.
Na, ma jutott időm próbálgatni a port lábakat és úgy tűnik, hogy a p1 és p2 portnak csak a felső 4 bitjét fogadja el az lcd adatvonalnak. Amint átállítom az alsó 4re vagy köztes bitekre egyből előjön a mandarin az lcd-ből.
Ezzekkel a módosításokkal működik:
Idézet: Természetesen nem az LCD ennyire háklis, hanem az általam "takarékosan" megírt lcd_write() függvény. „úgy tűnik, hogy a p1 és p2 portnak csak a felső 4 bitjét fogadja el az lcd adatvonalnak.” ![]() Ha visszakeresel a topikban, megtalálod a megoldást: (keresés lcd_write-ra)
Sikerült!
Ha valakit érdekel, a g2553-ban a hardveres SPI és az I2C működik együtt, egy modulon (UCB0), illetve felváltva. A hiba bennem volt ismét. Megint benéztem az operátorokat, illetve ott használtam, és olyan operátort, ahol nem kell, és nem jó ![]() Pl. az I2C-t így állítottam be: (részlet)
Az SPI-t meg így:
A hiba: |= . De ebbe a csapdába egyszer már beleestem. A lényeg, hogy az SPI, és az I2C adatvonal, mehet nyugodtan egy lábról, mert még a felhúzó ellenállás sem zavar be! A hozzászólás módosítva: Szept 1, 2012
Helló.Egy olyat szeretnék kérdezni hogy msp430g2231-es ic-vel lehet az 1soros 16 karakteres kijelzőn szöveget léptetni?(futtatni).A program mely a kjelzőt vezérli a hobbielektronika egyik cikkéből van és azzal megy,bár én nagyobb szöveget szeretnék vele kiíratni mint 16 karakter és ezért lenne szükség a léptetésre.Aki tud segíteni ebben a problémában annak előre is köszönöm!
Igen, lehet, a 0x18-as parancs kiküldése balra lépteti a szöveget.
ÉS azt hova kell a főprogramba beleírni mert annyira azért nem értek hozzá.
Kiolvasom az eeprom tartalmát egy tömbbe (rx_ee_adat). A kiolvasott tartalmat ki szeretném íratni az lcd-re, de valamit elrontok. Mit?
Az eepromba ezt írom be:
Az eredeti lcd vezérlő programban, a drawChar függvényt, így hívja meg a szerző: drawChar(10, 1, 'A');
Kedves Icserny!
Lehet rosszul fogalmaztam. Az lcd_write-nál a biteltolást mindig megcsináltam, úgy ahogy régen írtad. A probléma nem mindig jön elő valamikor helyesen ír, de valamikor nem, viszont a felső 4 bitnél mindig jó. Elkezdtem utána olvasni és rátaláltam colosseum kommentjére amiben van egy jó példa az egyszerű adatvonal kezelésre. Ezzel sikerült megoldanom gondomat, így bármelyik portlábról működik és csak a portvezérlő bitek megadásánál kell matatni. Kirakom hátha találtok benne hibát:
Idézet: Lehetőleg egy ciklusba, mivel egy 0x18 parancs kiküldése csak egy karakterhellyel lépteti balra a kijelzőt, tehát ismételgetni kell. Például így:„ÉS azt hova kell a főprogramba beleírni?”
(A második sorba léptetés és a második sor kiírása elhagyandó, ha csak egysoros a kijelző, s természetesen az inicializálást is módosítani kell.)
Kipróbáltam a linkelt programsorokat kiváncsiságból és nálam az lcd mindkét sorát lépteti egyszerre. Létezik olyan beállítás, hogy az egyik sor fix a másik pedig mozog?
Valamint, ha jól számoltam maximum 40 karaktert képes léptetni utána előlről kezdi. Lehet ezen bővíteni? A hozzászólás módosítva: Szept 2, 2012
Nem és nem. Mármint ha az LCD képességeire vonatkoztak a kérdések.
Szoftveres megoldás nyilván mindenre található... 1. Ha csak az első sort akarod görgetni, akkor a képernyő léptetése helyett mindig újra kell írni azt a 16 karakternyi szöveget, amit az ablakban láttatni akarsz (az lcd_write(0x80,0) paranccsal előttte mindig meg kell címezni az első sort). Itt akkor nem a képernyő görög, hanem egy mutatót léptetsz, ami a memóriában tárolt szövegből az első kiolvasandó karakter címére mutat (ha a tömb végére értél, akkor vissza kell ugratni az elejére! 2. A fenti módszerrel természetesen 40 karakternél hosszabb szöveg is kiíratható.
IAR-ban hol lehet azt beállítani, hogy úgy mentsen el egy projektet, hogy a régebbi verziók is meg tudják nyitni?
Csináltam egy egyszerű projektet az 5.50-el, és az 5.40-el nem tudom megnyitni.
Erre én is kíváncsi vagyok.
![]() A hozzászólás módosítva: Szept 4, 2012
Találtam némi dokumentációt ezzel kapcsolatban, és arra jutottam, hogy a válasz: sehogy. Igaz, hogy nem az MSP-s szekcióban volt, hanem az AVR-ben, de azt írják, hogy egy magasabb verziószámú IAR-al írt projekt, nem kompatibilis az alacsonyabb verziószámú IAR-al, valami driver miatt. A lényeg, hogy az egyik gépemre feltettem a 30 napos 5.50-et, írtam benne egy kis led villogtató progit, és az 5.40-el nem tudtam megnyitni a projektet. Sőt miután felraktam az 5.50-et, egyik projektet sem tudtam lefordítani az 5.40-el, valami licenc hiba miatt, de erről is írnak az IAR oldalán. Úgyhogy csak vigyázni a frissítéssel!
A hozzászólás módosítva: Szept 4, 2012
Sziasztok! Ha jól tapasztalom, akkor az msp430 nem kezeli a tizedes számokat.
![]()
Attól függ mire gondolsz, nincs benne FPU, de ilyen nem sűrűn fordul elő ilyen pici mikrovezérlőkben.
Ettől függetlenül számolhatsz törtekkel, csak lassabb lesz mint egészekkel.
Csak arra gondoltam, hogy megcsináltam a belsőhőfokmérő projektet az 2x16 char LCD kijelzővel. S mindig egész számú szobahőfokot kapok, melyet a belső hőmérő mér. Még kezdő vagyok az msp témában.
Nézz szét a topikban ("outdec" a varázsszó), találsz rá megoldást! A hőmérsékletet tizedfok egységekre konvertáld, s a kiíratásnál jelezzük, hogy egy tizedesre kérjük a kiíratást.
Ugyanezt a módszert használom soros porti kiíratásnál is. Bővebben: link.
Sziasztok.
Lenne pár kérdésem. Egy új számítógép nem túl boldog tulajdonosa lettem. Feltelepítettem az IAR 5.40.2 vagy 3-at, ami megy is szépen, egész addig amíg nem nyomok rá a "Make Restart Debugger" gombra. Kétszer-háromszor lefordítja a programot, és szimulálható is, de aztán folyamatosan hibát ír. A hiba, hogy nem találja a launchpad-ot, és csak akkor tudom újra elindítani a szimulációt, ha lehúzom és visszadugom a launchpad-ot. Mitől lehet ez? Valaki tudna valami ötletet adni, hogy mit csináljak vele, mert ez így elég idegesítő. A "régi" és új lp-vel egyaránt csinálja. Op: win7 x64. A másik. Lcd kérdés lenne, JD-T1800. Bár lehet, hogy csak én kísérletezek ilyen lcd-vel, és erre is magamtól kell rájöjjek. A problémám a képen látható. A fent említett lcd-re próbáltam szerkeszteni nagyobb karaktereket, de nem sikerült, mert valamiért csak össze-visszaságot írt ki. Próbáltam nagyobb karaktertáblát (8x12, 9x16, stb) is, de azt sem írta ki. Ezért úgy döntöttem, hogy összerakom pixelekből. Ez legalább félig sikerült. A kérdés az lenne, hogy miért hagyott ki a betűkből, számokból egy csomó pixelt? A programrészlet, az http://www.43oh.com/forum/viewtopic.php?f=35&t=2246&sid=17e510cdc0c...art=20 innen letöltött program átirata. Nem én írtam, csak kiegészítettem! A válaszokat előre is köszi. A hozzászólás módosítva: Szept 7, 2012
A Column és Row addres beállításait nézd át én úgyanígy szívtam a 3510i szines lcd -vel mikor nagyobb karakterekkel kísérleteztem és ott Column és Row beálításokat kellett módosítanom, hogy helyesen jelenjenek meg a nagyobb karakterek. Igaz a két lcd össze sem hasonlítható, de lehet itt is az a bibi
A hozzászólás módosítva: Szept 7, 2012
Idézet: Nem ismerem sem a kijelzőt, sem a program felépítését, de az a gyanúm, hogy a betu_meret() függvényben a for ciklus belsejében kellene meghívi a SetAddress() függvényt. Nem lehet, hogy most minden pontot ugyanarra a címre küld ki?„miért hagyott ki a betűkből, számokból egy csomó pixelt?” Idézet: Én nekem is tetszik, de most elköltöttem a zsebpénzem egy hobbi routerre (TL-WR703N), amelyen openwrt-vel szeretnék játszani. Ja, egyelőre időm sem lenne rá...„Bár lehet, hogy csak én kísérletezek ilyen lcd-vel ” A hozzászólás módosítva: Szept 7, 2012
A pontos hiba, hogy szélességben jó a pl. 8 vagy 9 pont, az megjelenik, de hosszúságban csak 6 vagy 7 pont jelenik meg, és ebbe sűríti bele a 11-12.. pontot. Pedig átírtam a "drawChar" függvényben, mind a két while ciklust.
|
Bejelentkezés
Hirdetés |