Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Nem a kapcsolásodban van a hiba? Tehetnél be egy rajzot.
Egy kis adapterkártyát készítettem, amit fejlesztőpenelemhez tudok kötni.
18F4520- al probálgattam utoljára, C5,C4,C3 lábakra kötve.
Bár az én kártyám még gyártási szakaszban van, egy nagy csomó kész kapcsolást néztem át és az alapján a csatolt módon terveztem meg a foglalat bekötését. Elvileg ennek így működnie kell. Én ebben az esetben az RB4,RB5,RB6,RB7 lábakat használom.
Pillanatnyilag ezt a kódot próbálom életre kelteni, a CCS fórumon található ez eredetije.
Igazából csak a portokat írtam át meg a PIC típusát. Csatolom a projektet, hátha valaki meg tudja mondani, mi lehet a gond. Már a kártya inicializálásánál probléma van. Ahogy néztem a response értéknek 0 nak kellene lenni a sikeres inicilizációhoz. Sajnos nálam ez SD kártya esetén C0, MMC esetén FF. Egyelőre nem tudok rájönni mi probléma oka. A kártyát DOS ablakból formáztam meg a következő paranccsal: format I: /A:512 /V:KARTYA /FS:FAT32
Sikerült megoldani a kártya inicializálását, de sajnos a DIR parancsnál hibát ad vissza a program.
Pedig a PK2-vel debug módban már látom a mappa és file neveket, amik a kártyán vannak. Megpróbáltam egy append parancsot is, de még az a tartalom is elromlik a fileban ami, benne volt.
Sziasztok
Szeretnék egy pici segítséget kérni. Szeretnék beleilleszteni a meglévő programba, egy olyan sort hogy kb 30 másodpercenként irjon ki egy main függvényt, és utána térjen vissza a program az addigi alapképernyőre, majd ismét 30 másodperc múlva irja ki megint a main függvényt. Tudna valaki segíteni hogy mit kell ilyenkor a programba beleirni.
Megbocsáss, de szerintem ezt rajtad kívül nem sokan értik......
hogy is kell kiírni egy main függvényt, és mi az az alapképernyő?
Bocsi lehet hogy kicsit hülyén fogalmaztam,
van egy C-ben irt program ami alap esetben folyamatosan az LCD-n az időt jeleníti meg! én irtam bele pluszba egy sort ami induláskor a készülék nevét irja ki, azt szeretném elérni hogy ezt a sort ne csak induláskor irja ki a PIC hanem kb 30 másodpercenként váltson képernyőt az idő kiirás és az indulási képernyő között.
Hali
Hat ez igy bizony keves info. Ismerni kellene az altalad irt programot, hogy erdemben tudjunk segiteni. Azert lehet pl figyelni a "sec" valtozot, es ha "0" vagy "30" kiirod a copyright-ot. Udv Vili
Magát a programot nem én irtam hanem Topi fórumtárs
én csak saját részre szeretném ennyiban módosítani az eredeti forrást, igazábol Topi engedélye nélkül nem is akartam feltölteni a forrást, de mivel láttam hogy az időkapcsolós topicban márt fent van azért gondolom nem lesz leharapva a fejem érte ha ide most felrakom.
vilmosd már jól leírta. Van a sec nevű változód. Ha az 0 vagy 30 értékű akkor kiíratás. Ennyi. Ha gondolod választhatsz más értékeket is....
Hali
Kb igy kellene :
Udv Vili
Köszönöm
megpróbáltam ahogy mutattad de sajnos mikor leakarom fordítani hibát ad a fordító. {} jeleknél irja a hibát
Próbálgattam közben és ilyen formában lefordult hiba nélkül a kód:
//================================================== void dsp_cpyrgt (void) { lcd_gotoxy(3,1); lcd_putc("4 csatornas"); lcd_gotoxy(3,2); lcd_putc("Idokapcsolo"); } viszont nem jeleníti meg a szöveget maradt továbbra is az alapképernyő.
Hibát konkrétan nem ír.
void dsp_cpyrgt (void) { printf(lcd_putc,"\f4 csatornas\nIdokapcsolo") } ha így akarom fordítani akkor csak fordítás után villog a kurzor. } itt ennél a jelzi a hibát! én PIC C Compillert használok
Hali
Azert nem fordult le mert a printf(... sor vegerol lehagytam a semicolont (. Probald meg igy. Udv Vili
Köszi
így már lefordult meg is próbáltam de sajnos magát a szöveget nem irja ki az LCD-re.
Hali
Lehet hogy rovid az ido es nem latszik a kiiras, mert rogton felulirja. Jobban bele kellene melyedni a programba. Probald ki a fvenyt a main elejen, ahol kiirta eredetileg a ket sort. Udv Vili
Miért nem teszel bele egy Timer megszakítást? Így ha a megadott idő van megszakítod, kiírod, delay-el kicsit vársz és utána fut tovább a program. Szerintem ez a legjobb megoldás. De lehet én tévedek.
köszi
sajnos annyira nagyon azért nem vagyok profi Pices de majd próbálkozom még vele! igazából úgy gondoltam az elején még hogy mindig irja ki ezt a sort, és mikor bármely gomb lenyomásra került akkor váltson át az alapképernyőre melyen az időt jeleníti meg és mikor letelt az idő ujra váltson át.
Hali.
Most kezdtem foglalkozni PIC processzorokkal és már írtam egy-két villogtatós programot. De meg tudná nekem valaki mondani hogy a portokat hogyan lehet beállítani? A TRIS és LAT parancsokat megpróbáltam de hibát ír ki rájuk. A segítséget köszönöm.
A CCS Reference Manual (a telepítés tartalmazza és az MPLAB-ből is behívható) pontosan leírja az I/O portok kezelését. Ez CCS-ben alapból nem úgy történik mint más, pl. MC18, Hi-Tech fordítóknál (szerintem az utóbbaik megoldása az egyértelműbb), de megoldható ez a módszer is. Olvasd el Topi "Nullától a robotokig..." és deguss "PIC programozás C nyelven - CCS" cikkeit!
Helló!
Elolvastam a cikkeket és azt vettem ki belőle hogy a CCS C fordító egyszerű mindent meg lehet benne írni a HI-TECH C (PICC) ez profiknak való de sokkal jobban lehet benne a portokat kezelni. Még azt szedtem ki, hogy a CCS C-nél a portokat automatikusan állítja be a program de ha a #FAST_IO parancsot alkalmazom akkor be kell állítanom a TRIS-eket. A PICC-nél pedig a felhasználónak kell beállítania, hogy melyik portokat hogyan akar kezelni. Ezek szerint a PICC fejlesztőkörnyezet az amely a felhasználó beállításitól nagyon függ és a CCS C amely egyszerű és hobbi célokra megfelelő. Azt hiszem hogy meg is kaptam a választ. De akkor most melyik fordítót használjam inkább? Ha esetleg valamit rosszul írtam vagy nem így van javítsatok ki. És kösz a segítséget.
CCs C-ben működik a tris...
Itt van 1-2 minta, ami szerepel a user manualban is: Port b-re egy érték
bitenkénti meghatározás:
high low toggle float, is... Szerintem töltsd le a felhasználói könyvet. (Azért írtam ide, mert megvádoltak minket azzal, hogy mi soha sem segítünk, csak leugatunk mindenkit)
Az elugatást és nem segítséget hülyeségnek tartom.
Nagyon sokat segítetek mindenkinek és minden felhasználó szerintem azon van hogy másnak is segítsen. Nos visszatérve a tárgyhoz ha a portot bemenetnek akarom megválasztani és a belső felhúzó ellenállást szeretném használni azt hogyan állítsam be?
A TRIS-nél: ami 0 (nulla) az output, ami pedig 1 az input. Hajaz a kezdőbetű arra, hogy minek állítottad be.
Valamiért a felhúzó ellenállások beállítása nem megy.
'Undefined identifier port_d_pullups' errort ír ki.
Talán mert a D porton nincsenek is felhúzók?
|
Bejelentkezés
Hirdetés |