Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Bocs hogy belevau.. Szerintem jobban jarnal, ha a MPLAB alatt fejlesztenel, es elfelejtened ez a CCS IDE-t. Sokkal jobban hasznalhato a debug, PicKit2-3 hasznalhato debugra (igen hasznos lehet). Le lehet tolteni a CCS-tol a MPLABPlugint, instalalni, es utana a MPLAB alatt tudsz forditani CCS C forrasokat. Persze a MPLAB 8.9x rol beszelek, nem a csigaverseny MPLABX-rol. Igen jo a debug ahol mindent talalsz, pl a valtozok, a regiszterek ertekeit lathatod, logikai analizator, breakpoint kezeles, stimulus.. Persze egy kicsit tobbet kell gepelni, de ez megeri a faradsagot. A config beallitasok pl (sajnos) nem minden tipushoz azonosak, de megnyitod az aktualis PICxxx.h filet es maris lathato minden egyedi elnevezes. Ez csak egy jo tanacs, mindenki ugy csinalja ahogy akarja.
Én tuti megbocs, hogy belevau ... kb ilyen válaszra vártam! Remélem a többiek is egyetértenek Veled!
Akkor felmegy az MPLAD IDE 8.92 CCS-ből melyik verziót telepítsem, ha a 4,104-es és 5.011-es verzió közül kéne válaasztani?
Halihó!
PIC16F685-ön szeretnék analog outputot kreálni. A CCS helpben ezt találtam: setup_vref(); "Establishes the voltage of the internal reference that may be used for analog compares and/or for output on pin A2." Ezek szerint az A2 lábon meg kellene jelennie az analog fesz értéknek. Kérdésem, hogy ehhez mit kell a setup_vref-en kívül beállítani, mert nálam egyelőre nem működik. Köszi! üdv: P
Ha jól tudom, akkor a Vref nincs kivezetve lábra. Csak a belső analóg áramköröket látja el feszültséggel. Mint például a C1 comparátort, aminek a kimenetét kapcsolhatod ki az A2 lábra. Sajnos ez van. Válassz olyan PIC-et, amiben D/A átalakító is van.
Létezik-e magyar nyelven egy olyan lista amiben az utasításkészlet le van írva.
Csak 1-2 szóval, hogy egyáltalán mit csinál. Az angol súgóból már talán ki tudom hámozni hogy mit hogyan csinál, de ahhoz meg kell előbb találnom a számomra megfelelő utasítást, de ha nem tudom hogy van olyan, akkor nem is keresem, vagy ha gondolom hogy van, akkor sem tudom hogykeressem...
Azt a kb. 10 C-nyelvű utasítást szerintem egyszer lefordítod magadnak és 1/2 óra alatt megtanulod. Ennyi.
Egyébként létezik az interneten a Kernighan_Ritchie_C_konyv.doc állomány. Ha nem találod meg, akkor szóljál és elküldöm neked. A hozzászólás módosítva: Feb 4, 2015
Húha ... lehet rosszul fogalmaztam ...
Tán függvényeket kellett volna írnom ... bocs, de annyira még nem vagyok képbe... ilyenekre gondoltam: delay_ms div ldiv ...
A saját súgója nagyon hasznos. Vannak példák is benne.
"C:\Program Files (x86)\PICC\Ccsc.chm"
Na igen ... csak épp nem magyar
Ha keresek egy feladat megoldására lehetőséget akkor elég körülményes megtalálni azt az utasítást, függvényt ami nekem kell, pláne úgy hogy nem tudom mi a neve. Ha már megvan akkor az angolból ki tudom bogarászni hogy működik ... de megtalálni ... ahhoz mindent végig kell bogarászni... Azt hiszem az lesz a vége, hogy kinyomtatom a CCS C manualt, és tele jegyzetelem. MicroC-ben pl van PS/2 billentyűzet kezelés, CCS-ben is van ilyen?
Na, az jó lesz, ha valaki végre lefordítja magyarra a manuált. akkor sokkal többen fognak ebben a CCS-Cben programozni és sokkal több segítséged is lesz hirtelen.
PS/2 kezelés nincs a CCS-ben, de hamar lehet írni egyet, mert abszolute szinkron adatátvitel. Lehet, hogy az USART-al is meg lehet oldani. Kb 5-10 sor program. Ez még a kezdőknek is jó, mert sokat lehet (szívni) tanulni belőle.
Üdv!
Szabvány UART-al nem lehet megoldani, mivel ennek egy kicsit eltér a felépítése, viszont tényleg nem nehéz írni rá egy kódot. ITT egy link a billentyűzetek kezeléséről, pár évvel ezelőtt ez alapján írtam meg egy ilyen programot.
Ez a hibaüzenet miért van?
Interrupts disabled during call to prevent re-entrancy (Decode) Van egy Decode függvényem, ha jól értem akkor ennek a meghívásakor letiltja a megszakításokat ... A problémát megoldottam (mekerültem) csak nem értem hogy miért csinálta... A főprogramból a számítási feladatokat átraktam a függvénybe és most nem reklamál...
Mert a megszakításban nem illik olyan részt tenni, ami késlelteti a lefutását. Célszerű flag-ekkel operálni, amit a főfüggvényben kezelsz majd le a flag állapota alapján.
Ne épp ezért nem értem, mert akkor lett jó amikor a főfüggvényből kivettem a számításokat, és betettem abba a függvénybe amit a megszakításból hívok meg!
Tudom, jó lenne látni hozzá a forráskódot, de azt inkább nem mutatom meg, mert tele van "szeméttel" ... ha lesz időm kitakarítom, aztán felteszem, hogy kicsit "megköpködjétek" ... ezt a flegekkel operálni... ez hogy is van konkrétan? Mondjuk ha egy LED sort akarok léptetni megszakítással? A hozzászólás módosítva: Feb 9, 2015
A hibaüzenet elég beszédes, letiltja a megszakításokat a Decode függvény futása alatt, hogy megakadályozza a függvénybe történő újrabelépést. Az ok pedig az, hogy ugyanazt a függvényt hívod mind a főprogramból, mind a megszakítási rutinból, és az ilyesmi egy ilyen kis mikrovezérlőn nemigazán kivitelezhető, mivel nem tud másik memóriaterületet adni a függvény ismételt belépésekor. Ugyanezért nem lehet rekurzív függvényt sem írni.
Akkor nagyvonalakban: Képzeld el, hogy van egy 1bites változód (flag). Ezt tudod nullából egybe állítani- ha volt megszakításod. (a megszakításban van)
A főfüggvényben figyeled az értéket. Ha 1 az értéke, elvégzed a kívánt műveletet, majd visszaállítod a flag-et 0-ra.
Ja, ja ... így már világos! Köszönöm!
Átszerkesztem a progit...
Nem jó ...
A megszakítással vezérelném a 4db 7 szegmenses kijelző léptetését, de a főfüggvényemben van egy késleltetés, ezért hiába állítom át a megszakításban a flag-et, csak a késleltetés letelte után tudom ismét leellenőrizni.
Vedd ki a késleltetést, és oldd meg másképp. Vagy mutasd meg, mit csinálsz, hogy tudjunk segíteni.
Szerk.: ha már hétszegmenses kijelző, azt emberek nézik, ott nem számít némi késleltetés az adat beérkezése és a megjelenítése között. Tehát a megszakítási rutinban vezéreld a kijelzőt, de ne ott számolj, hanem egy pufferből vegye a megjelenítendő számot. A pufferbe meg pakolod a főprogramból, amikor változás van. A hozzászólás módosítva: Feb 10, 2015
Sziasztok!
Remélem nem csak a figyelmetlenségem okozza a következő problémát. Mplab:8.92 CCSC:5.024 PIC:16F628A Az mclr lábat földre teszem és továbbra is fut a pic-ben a program egyszerűen nem értem. beszúrom a kódot hátha láttok valamit rajta benne. Segítségeteket előre is köszönöm.
A konfigurációs regiszterben a MCLR funkció le van tiltva.
Akkor ez látszana: #FUSES NOMCLR
Ez van a programban: #FUSES MCLR
Olvasd ki, írd meg a konfigurációs szó értékét hex -ben.
A hozzászólás módosítva: Feb 11, 2015
Ebben pici segítségedet kérném mert a config regiszternek nem találom címét 16f628A-nal
Sziasztok.
Pic kit2-vel megnéztem hogy a hex-ben mit generál a config regiszter tartalmának az mplab vagy ccsc.... megint szörnyű amit tapasztaltam. Pickit2 programban direktben írva a config regisztert minden ok. Azt sem tudom hogy az mplab vagy a ccsc generál hibás dolgokat hihetetlen mindig rájön az ember hogy a ccsc-t el kell hagyni.....
Nem használom a CCSC-t, de úgy gondolom az elterjedtségéből, hogy ennyire amatőr hibákat nem véthet... Nem lehet, hogy valamit nem teljesen a specifikációknak megfelelően adtál meg vagy a telepítés nem 100 %-os ?!
|
Bejelentkezés
Hirdetés |