Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
A #ROM arra való, ha már a program betöltésekor akarsz az EEPROM-ba értéket írni. A #ROM-al megadott adatok a program beégetésekor beíródnak az EEPROM területre.
Ennek allor lesz/van jelentősége ha programparamétereket vagy előre definiált, később módosítható beállításokat stb. akarsz eepromban tárolni, és igényli a kezdőértéket.
Értem. Mostmár világos. Tehát a #rom után tudom állítani az értékeket. Akkor ez olyan mint ha a PICkit programjában az EEPROM területeket átírnám és úgy égetném be a PIC-be.
Lenne még egy kérdésem a CCS-ről.
Ha elindítom a PIC Wizard-ot, akkor a soros kommunikációt bármelyik lábra be lehet állítani. Ez így szép és jó meg működik is persze, de mégis hogyan? Gondolom szoftveresen megoldja magának a fordító, de nem látok erre utaló header fájlt vagy forrást. Remélem valaki tudja hogy milyen "trükköt" használ erre a program.
A fordito a megadott PIC alapjan tudja hogy hol talahato a HW USART. Tehat ha Te nem oda kered akkor SW USART es azt forditja be a LIB-bol.
Köszönöm a választ. Viszont én PIC16F716 is kihasználtam már ezt, és ezen nincs hardveres USART. Mégis működik a kommunikáció.
Itt az adatlapja: Bővebben: Link Idézet: „Mégis működik a kommunikáció.” Már megkaptad erre is a választ: "akkor SW USART es azt forditja be a LIB-bol."
Hopp valóban.
Menet közben alszok.... ![]() Elnézést az új felesleges kérdésért és köszönöm az választ!
Mivel a fejlesztőkártyám hardveréhez való demo programjaim ccs c-ben vannak újra itt (is) vagyok.
[code=c] #include void delay(unsigned int x) { unsigned int i,j; for(i=0;i } void main() { unsigned char i,a; TRISB=0;PORTB=0; while(1) { PORTB=0; delay(500); PORTB=0xff; delay(500); /* a=0x01; for(i=0;i<8;i++) { PORTB=a; delay(10); a<<=1; };*/ } } ez a rövid demo program a fordításra adott válasz a következő: error file can not be opened. a gondom a következő: (azon kívül, hogy megint ott vagyok, ahol egy hete, hogy fordításkor nem fordít, hanem bedobja a ccs programot) - hogyan állítsam be, hogy megtalálja a pic 18.h filet? egyáltalán azt kell-e beállítanom, vagy a 18f4520 filet? Úgy érzem, hogy egy hete ugyanitt tartottam ![]()
A kacsacsoros include a PICC include konyvtarbol lesz betoltve, az idezojeles pedig a projekt konyvtarbol. Persze az MPLAB alatt a project beallitasoknal be kell allitani az eleresi utvonalakat. Ez a forditora es az include konyvtarra vonatkozik. Amit kuldtem peldakat abban is lathatoak ezek a dolgok. Ezert nehez egy kesz HW-re elinditani a projektet, mert amit ok adnak, az altalaban mas eleresi utvonallal dolgozott, ezert a Te gepeden nem fogja megtalalni a megfelelo fileket.
Ehhez még annyit, hogy a CCS header-ben a TRISB és a PORTB nincs definiálva, arról külön kell gondoskodni az adatlap alapján.
Köszi nagyon sokat segítettél, én meg sokat hibázok
pl: én is úgy szeretném belinkelni a programrészletet, de az sem ment. az a hibás sor az eredeti programban a következőképpen nézett ki: # include és arra kaptam a hibaüzenetet
ha valamit kacsacsőr közé írok , akkor az eltűnik a hozzászólásból
tehát az include után oda kell képzelni kacsacsőrben pic18.h file nevet így már talán érthetőbb a kérdésem és az előző hozzászólásom ettől függetlenül javítom a hibát
Ha programsorokat idézel, akkor használd a Kód gombot, légy szíves!
Erdekes nekem a kodban ott maradt a kacsacsor. A "Kod" gombot a kod elejen es a vegen is nyomni, akkor nem tunnek el a spec karakterek.
Termeszetesen ez nalm is igy mukodik. Viszont ha a mintapeldaban az include tartalmazza ezeket a deklaralasokat, akkor mar termeszetesen nem kell megegyszer megcsinalni.
csak a program elején nyomtam a kód gombot, valószínűleg ez volt a hiba
ez egy más helyről küldött példaprogram, de a ccs itt is a titokzatos pic.h filet hiányolja. hibaüzenet: file can not be opened ebből számomra az következik, hogy mindegy honnan kapok példaprogramot ugyanaz a file hiányzik, akkor ez most valamit rosszul állítottam be?
Az így kezdődő programok valószínűleg nem CCS c-hez készültek.
köszönöm a választ.
Azért hittem azt, hogy ccs c, mert a 'kínai' is a ccs telepítőjét mellékelte a példaprogramokhoz. Illetve egy teljesen más helyről is ccs-hez mellékelt példaprogramban találtam ezt. Kezdőként nem jöttem rá, hogy ez nem ccs-hez való. talán az is jelezte, hogy könnyebben alakítottam át működővé a programot (microchip) c18-ra
Nem akarok hülyeséget mondani, de azt hiszem, hogy a Hitech C fordítónál szokott pic.h-val kezdődni a program.
Mindenestre alapvetően elhibázottnak tartom a megközelítésedet (célozva a másik topikban folyó társalgásra is), mert ez így "fenn az ernyő, de nincsen kas" esete. Előbb tanuld meg a C18 és a mikrovezérlő rejtelmeit alaposan, utána próbálkozz a perifériák élesztgetésével, egyenként szép lassan. S szánj erre sok-sok hónapot! A CCS, Hitech és egyéb programok átírása azt igényelné, hogy minkét (vagy mindhárom) nyelvjárás rejtelmeiben is járatos legyél, ráadásul a perifériák kezelését is ismerd már. S ha véletlenül sikerül, akkor sem ad olyan tudást, mintha az adatlapok forgatása után magad rakod össze a programot. A példaprogramokat tehát tekintsd csak ötletadónak!
Egyenlőre nem szeretnék minden perifériát 'feléleszteni', de valamennyi kell a gyakorláshoz:
- ledek alapként - nyomógombok bevitelre - lcd összetettebb adatok megjelenítésére - az is lehet, hogy igazad van - nem szánok rá elég időt (ez lehet hogy azért van, mert egy hét tanulás után a fenti perifériákon kívül ment az - AD konverzió (hőmérséklet mérés) - SPI kommunikáció (hőmérő ic) - soros port kezelése ( a mért adatokat pc-re küldtem) továbbra is köszönöm a tanácsaidat, a te példaprogramjaidból tanultam a legtöbbet, csak amikor az oldaladra találtam akkor már úton volt a megrendelt gyakorlópanel, ezért nem az általad javasolt panellel dolgozom.
Nem tudom hogy volt-e rola szo, de ne kapkodj, mert az nem vezet jora (meg leversz valamit). Mar elmondtuk tobbszor. De... ha CCS C-t akarsz hasznalni, akkor ne a Picula projekt peldait hasznald. Viszont ha a CCS C peldait hasznalod, akkor ne C18-at hasznalj. Kuldtem egy marok mintapeldat ugye. Probald meg szisztematikusan, lepesrol lepesre az elsotol egyenkent vegigprobalni. Persze kezdheted az utolsoval is, de akkor nem fogsz megerteni semmit, es a szintaktikat sem fogod atlatni. Lassan peldankent, olvasva a PIC doksit hidd el gyorsan bele lehet jonni. Mar elszurtal sok napot, es meg nem csinaltal semmit. Ezert mondtam a legelejen, hogy felesleges egy szuper univerzalis panelt megvenni, mert egy kis munkaval, keves penzzel Te magad tudsz kimondottan gyakorlasra valo panelt gyartani. A bonyolult HW-nel belekavarodsz a sok kiegeszitobe, es nem tudod mitol kellene mukodnie. De vegulis ha azt akarod hogy jo legyen, ugy csinalod ahogy neked tetszik, de utana ne sirankozz.
Sziasztok 3x4-es billentyűzetet szeretnék CCS-ben kezelni de valami nem stimmel. A csatolásban benne van a driver.
Egy char változót létrehozok a lenyomott gomb értékének. Aztán ugye kbd_init(); majd a változó egyenlő kbd_getc(); Mikor a kapott értéket kirakom LCD-re, akkor csak vízszintes vonalak jellennek meg. Tehát egy karakteren belül egy sor aktív egy pedig nem. Valaki nem tudja mi lehet a probléma?
Bocsánat, hogy nem elemeztem végig a működését, de ránézésre is van néhány szintaktikai hiba benne:
short int ALL_ROWS (void) (a short utáni int nem kell, mert csak egy visszatérő értéke lehet a függvényeknek és a programból kiderült, hogy a short a jó tipus) az alábbi két sorban nem byte a változó tipusa, mert olyat nem használ a CCS, hanem int vagy char: static byte kbd_call_count; static byte col; Egyébként lehet, hogy akár működhetne is a program.
A "short" és a "short int" az ugyanaz a típus, csak az egyik a rövidített neve neki.
A driver tokeletesen mukodo, en is hasznalom. Lenyeges hogy a ROW bemeneteket fel kell huzni 5 V-ra. Ez a driver a lenyomott gomb ASCII kodjat adja vissza, tehat rogton irhatod a LCD-re barmi varazslas nelkul. Ja a masik fontos dolog, hogy
Köszönöm a válaszokat.
Este majd letesztelem a javaslatokat! ![]()
Igazad van, csak én a rövidített kifejezést használom, azért volt nekem furcsa.
A byte ügyében is ostobaság, amit írtam? |
Bejelentkezés
Hirdetés |