Fórum témák
» Több friss téma |
Sziasztok!
Az megvalósítható, hogy egy LCD-nél amit ki szeretnék írni szöveget ne így kelljen megírni assembly-ben hanem:
Hanem C-hez hasonlóan: "<== 2x16 LCD ==>" C-ben van a printf fv. meg eléggé sokféle módot találtam a neten C-re de hát assembly-be nem lehet *.h fájlt berakni(tudtommal) és a C-vel még nem akarok komolyabban foglalkozni. Köszönöm!
Köszönöm Hp41C!
Előbb kellet volna kérdezzek mert keresgetés során találkoztam ezzel a DT paranccsal csak nem tudtam, hogy pont ez kell nekem.
Uraim, mondja már el valaki nekem, hogy miért nem tudok lebegőpontos (float) változót kiíratni az LCD kijelzőre?
A kód amivel próbálkozom sallang nélkül:
Sajnos az itoa() függvény sem segít mert mikor átkonvertál egy csomó zagyvaság kerül a változóba. Előre is köszi. ui: PICCOLO projekt LCD driver-ét használom. A hozzászólás módosítva: Márc 8, 2014
Ahogy icserny jelezte, nincs megírva... Az ezedménynek vedd az egész részét, írasd ki egészként int változóból, írj tizedespontot, a törtrészt szorozd meg 10 annyiadik hatványával, ahány tizedes jegyet szeretnél, írd ki az egész részét unsigned int változóból. Ha az egész rész nagyobb, mint 32767, akkor használj long -ot. Ha a5 tizedes jegynél több kell, akkor használj ott unsigned long -ot.
A hozzászólás módosítva: Márc 8, 2014
Azt most átírtam.
int flo_at = 12.334563; változó értékét kiíratom az most 12 és megjelenik. Írtam mögé egy pontot vagyis tizedes lesz. 2tizedesig akarom kiíratni a végeredményt. Ez eddig világos. "a törtrészt szorozd meg 10 annyiadik hatványával, " Ehhez előbb szét kéne szednem a változó értékét vagy legalább is meg kellene szereznem a tizedes utáni részt. Ezt hogyan kell csinálni? Egy kis példaprogramot nem tudsz összedobni ami bemutatná ezt az egész folyamatot? Köszi előre is a segítséget. Idézet: Azért, mert nem úgy csinálod, ahogy mondtam.„Uraim, mondja már el valaki nekem, hogy miért nem tudok lebegőpontos (float) változót kiíratni az LCD kijelzőre?”
A kiírató rutint a PICCOLO projektben megtalálod:
Felteteleztem, hogy az _user_putc() függvényt úgy definiáltad, hogy az LCD-re írjon.
Köszi, ebből már kihámozok valamit.
Ez a függvény nekem nem volt benne az LCD driverbe. Köszi még egyszer. ui: _user_putc() definiálva van mert jól működik. Majd még a a képernyő törlést kell megoldanom, hogy ne ragadjon be a nem használt terület illetve, hogy a tizedes elé, hogy ha kisebb az érték 1-nél akkor egy 0-át tegyen be. Ezeket már megírom. A hozzászólás módosítva: Márc 8, 2014
Nem tudok saját példát megadni, mert eddigi mikrokontrolleres programjaimban nem használtam float típust. (Pedig már néhány tucatot megítam...) Fogadd meg, amit Icserny ajánl. Az int műveletek sokkal gyorabbak, tömörebbek, hatékonyabbak. Idézet: Miért is volna benne, amikor semmi köze az LCD-hez? Az a felhasználó magánügye, hogy az _user_putc()-t hova definiálja... Egyébként a piccolo_usb.c-ben használom/definiálom az outdec() függvényt. „Ez a függvény nekem nem volt benne az LCD driverben.” A hozzászólás módosítva: Márc 8, 2014
Idézet: „hogy a tizedes elé, hogy ha kisebb az érték 1-nél akkor egy 0-át tegyen be.” Ezt ebben a hozzászólásban már megválaszoltam néhány napja VSzabi fórumtársunknak.
Ohh
Azt hittem ez az LCD vezérlés része volt még. Érdekes viszont akkor, hogy megy nekem egyből. Vagy lehet a header állományomban még benne van ez a függvény. Gyakorolgatok ezerrel, de nem könnyű így kezdőnek. Ne haragudjatok, ha az idegeitekre megyek az alap kérdéseimmel, de muszáj segítséget kérjek, hogy tanuljak a hibákból és a megoldásokból. Köszi még egyszer.
Ha csak simán két tizedesig (3.14) akarom kiíratni a feszültséget akkor milyen módosításokat kell elvégeznem?
Itt is a megszakítás feltételéhez kell nyúlni?
Érdeklődnek hogy a kvarc mellett a kondenzátoroknak milyen szerepe van és mit befolyásol az értéke.
Konkrét problémám hogy van egy 32.768 kHz kvarcom és azt az adatlap szerint két 33pF es kondival kellene bekötni de olyanom nincs szóval vagy vagy kap 1-1db 22pF eset vagy kap 2-2db 15pF-t párhuzamosan kötve.
Szerintem tedd be a 2db. 22pF-ot és egyikkel párhuzamosan elég tenni egy 15pF-ot, ha nem indul.
Asszem meg van a baja. A panelra C-ben kell rátölteni a progit nem assemblyben.
Közben megoldottam magam is a kérdést:
Ez már úgy van átalakítva, hogy ha kisebb 1nél az érték akkor a tizedes pont elé teszt be egy nullát és meghatható hány tizedesig írjon ki. Pl: Volt = 345678 outdec(volt, 3, 2); Eredmény: +3.45v Ha van szebb és hatásosabb megoldás akkor kérlek jelezzétek. Köszi. A hozzászólás módosítva: Márc 8, 2014
Uraim, kérném, hogy ellenőrizétek le a kapcsolási rajzomat nehogy elrontsak valamit.
Csatolom a képet. Szeretnék készíteni egy olyan teszt környezett ahol az összes felhasználható portot tudom használni, ha akarom. Nem vagyok túl jó a kapcsolásokban sem szóval bíráljatok felül. Köszi előre is.
Ha belső órajelről hajtod a PIC-et, akkor nem kell rá kvarc, egyel több portot tudsz tesztelni. A 100 n kondi legyen a lehető legközelebb az IC-hez, a másik oldalra is tegyél egyet. Ha a Reset lábat bemenetként használod, szintén kapsz plusz egy portot. Ha mégsem, akkor az 1 k ellenállást cseréld 10 kOhm-ra.
Sziasztok!
Újabb problémába ütköztem C-ből Assebly-be alakítás terén. LCD-be definiált 8 karakter (á, é, í, ó, ú, ü, ö, ő) 0x00.. 0x07 kódjait szeretném hozzá rendelni a neki megfelelő ASCII kódhoz. A PICCOLO-nál találtam ezt, de ez sajnos C:
Valaki tudna segíteni ez, hogyan nézne ki Assembly-ben? Köszönöm!
Köszi,
Kiegészítettem, kérlek nézd meg, hogy így már jó e. Thanks
A 7805-ös stb. IC bemenetéhez az adatlapja szerint 330 n dukál, a kimenethez 100 n. A biztonságos üzemeltetéséhez legalább 7,5 V (de inkább 8 V) bemeneti feszültség kell. Ha csak a kontroller lesz rajta akkor nem, nagyobb terhelésnél már kell hűtőborda is a hátára. A többi jónak tűnik.
Üdv linkelek egy gyári demo panel leírást az alapján tudsz te is készíteni Farnell.com
A hozzászólás módosítva: Márc 9, 2014
Köszi, van már Piccolo, de korlátoz. (nem látom át rendesen)
Saját kell amin nincs semmi sallang. A hozzászólás módosítva: Márc 9, 2014
Akkor ehhez jó a tantál kondenzátor?
Az adatlapján nem látom hogy fontos lenne a polaritás.
Ha egy kondenzátoron jelölve van polaritás, akkor fontos, hogy milyen irányban kötöd be.
A 7805 adatlapja kerámia kondenzátorra számít, annál tényleg mindegy a polaritás.
Nem, mert a tükörképe lesz a nyákra vasalva.
Tehát most a nyák hátulját látod. A nyákot hátulról megvilágítva lesznek szemből olvashatóak a felíratok. ui: bár most elbizonytalanodtam Igen a rajz van rosszul, de az IC-ét meg lehet fordítani. Figyelni kell majd beültetésnél a ki és bemenetet. Amúgy alapértelmezett az 1-es láb = input-al? (7805) A hozzászólás módosítva: Márc 9, 2014
|
Bejelentkezés
Hirdetés |