Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Bevallom olvastam a kérdést, de erre nem jöttem rá! Gartulálok a találathoz, még akkor is, ha te úgy gondolod ez egyértelmű! Hát láthatóan nem az!
Idézet: „Most nézem a ccs könyvet a delay-re: Idézet: „... the variable 0-65535(int16) or a constant 0-65535...”” Amit itt írsz az a delay_ms(time) time nevű paraméterére igaz, vagyis itt vagy 'int16' típusú változót vagy 0 és 65535 közötti számot adsz meg. A CCS-ben az "int" típus 1 byte nagyságú! Ha a te 'i' paramétered típusa 'int', akkor abba az 1000 illetve "5 jegyű szám"(ha az tizes számrendszerben van) nem fér bele!
Írtam Dávidnak, hogy nem ismerem a CCS-t, jeleztem is, hogy ilyen típusú probléma lehet, de nem gondoltam, hogy az 'int' 8 bites változó ezen a nyelven ( fordítva gondoltam, hogy nem lehet 'int' típusú a paraméter a késleltetésnél ! )!!
Biztos ez lesz a probléma, várjuk a visszajelzést! Steve
A megszakítás jogos hogy nem működik, de a polling, illetve a vételi túlcsordulás bit sem csinált semmit. A lényeg hogy némi nyák kapargatással és a portok költöztetésével megoldódott a dolog :yes:
Kérdés melyik biteket is vizsgálod? Vannak ilyen bitjei a szoftveres modulnak? Mert a hardveres bitek nem fognak változni az tuti!
Idézet: „némi nyák kapargatással és a portok költöztetésével megoldódott a dolog” Ez a jó megoldás. És ezért nem szeretem a CCS-t, mert elhiteti az emberrel, hogy mindent lehet, mert csak annyiból áll, hogy megadunk két lábat, csak aztán meg lesünk, hogy miért nem megy...
Köszönöm szépen a segítséget! Tökéletesen működik ha long-ként deklarálom. Ilyen váltózóval még fenn állhat a probléma sok ciklus eltelte után? Elnézést ha a kérdés számotokra nonszensz. Még egyszer köszönöm mindkettőtöknek.
Biztosan nem áll fenn, csak épp felesleges long típust használnod. Használd az int16-ot, az pont addig tud menni, ameddig a delay függvény képes fogadni.
Köszi
Bocs, hogy belekotyogok, de a potyó sem ismeri a CCS-t, mert a long és az int16 az ugyanaz a változó tipus.
Egyszer azért érdemes elolvasni az idevonatkozó szakirodalmat is. A CCS szerintem nem hitet el semmit, mert ez nem a hitbizomány intézménye, hanem leírja a doksiban, hogy mit lehet és mit nem. Egyébként a szoft peifériák is szinte mindent tudnak a HW megszakításokon kívül.
A CCS C (es a tobbi is) altalaban rendelkezik egy "Help" nevu segito alkalmazassal. Amikor hozzafogsz a programozashoz erdemes egy kis idot szanni az adattipusok tanulmanyozasara. Egyertelmuen leirja a hasznalhato adatok mertet, ervenyesseget. Ezeket nagyon meg kell jegyezni. Persze minden fordito maskeppen ertelmezi (nem szuksegszeruen) az int, a signed int, a long, a float tipusu valtozokat. Es termeszetesen a tipuskonverzio is mas lehet forditokent. Melle meg a beepitett fugvenyeknek is van egy leirasa, aholis leirja a hivo es a visszatero parameterek adattipusait. Ezek betartasa kotelezo jellegu, az ettol eltero adattipus alkamazasa hibas mukodest okozhat. Ezeket a dolgokat erdemes tanulmanyozni a programiras folyaman, kulonben sok meglepetes erhet.
Nem győzöm köszönni a segítségeteket.
Na, valami ilyesmit akartam leírni, csak nem sikerült ennyire szofisztikáltan megfogalmaznom. Szóval a PIC belső ismerete és a fordító manualjának a tanulmányozása elengedhetetlen, hogy tudjuk, mivel, mit lehet és érdemes csinálnunk. És a kérdések feltevésének milyensége sem közömbös.
off: Ha megkérdezi Kohn a rabbit, hogy lehet-e a talmud tanulmányozása közben dohányozni, akkor azt a választ kapja, hogy semmiképpen sem, mert a dohányzás lerövidíti a talmud tanulmányozására fordítandó időt. Ha Grűn kérdezi meg, hogy dohányzás közben lehet-e a talmudot tanulmányozni, akkor a rabbi azt válaszolja, hogy természetesen lehet, mert a talmudot minden testhelyzetben lehet tanulmányozni. on
Helló mindenki!
Egy DS1307 es IC-t szeretnék használni pic el. Találtam hozzá egy projektet ,de nem tudom leforditani és nem igazán tudok rájönni hol a probléma. Valaki segítene kijavítani? (MPLAB 8 at használok CCS el) Előre köszi!
Honnan vetted a projektet? Ott biztosan le volt írva, hogy milyen fordítóhoz való. A header állományokban pl. SDCC-t emlegetnek...
CCS C-hez való kódot itt látok.
De ezt a projektet SDCC nyelven es 8951-re irtak. A CCS mintapeldakban van hasonlo projekt. A telepito konyvtarban megtalalod.
Ez sem fordul le. Ennél a sornál:
int8 bin2bcd(int8 binary_value) ezt írja ki: A #DEVICE required before this line De ez ,h lehet?
Erdemes vegignezni a telepito konytarat a gepeden. Sok erdekes peldat talahatsz. Van kulon driver alkonyvtar, ahol sok eszkozre van megirt pelda. Erdemes meg nezelodni a CCS forumon. Sok mintapeldat lehet talalni.
Senkinek nincs ötlete mi baj ezzel a sorral?
Vagy legalább mi akar ez lenni?
Amit mondtam: Nezz szet a CCS telepito konytarban a x:\programfiles\picc\examples konytarban, es nezz meg egy peldat hogyan kezdjuk a CCS forrasfile megirasat. Eloszor is meg kell adni a device (PIC) tipusat, majd jonnek a tobbi kotelezo dolgok.
Na ne mondd....
Hahó ez egy kész "működő projekt" Csak valamiért nem fordul le. Fogalmam sincs miért , tudtommal nem kell include file egy függvény definiálásához... Idézet: Mar mondtam mi a baja. „Hahó ez egy kész "működő projekt"” Na csa.
Vegyél vissza légyszives! Köszi!
Bővebben: Link
Idézet: „II. Mielőtt írunk a fórumba, több dolgot is megtehetünk annak érdekében, hogy a többiek ne szóljanak be. Olyan apróságokat például, hogy összeszedjük a gondolatainkat és azt érthető formában, nyelvtanilag helyesen írjuk meg. Fogalmazzunk úgy, hogy az egyértelmű legyen mert senki nem szereti találgatni na vajon mire gondolhatott amikor ezt írta? Arra hogy… vagy arra hogy... A régebbi fórumozók általában az ilyen találgatós kérdéseket vagy morcosan reagálják le, vagy sehogy. III. A fórumnak van egy hasznos, ámde valószínűleg rejtett szolgáltatása (kevesen találjuk meg és még kevesebben használjuk) minden oldal tetején, melyet "keresés"-nek hívnak . Legyünk menők, legyünk trendik, használjuk csakazértis! IV. A fórumon nem követelőzünk. A fórum léte, fenntartása és a lehetőség, hogy írjunk bele mondjuk úgy hogy egy "szívesség", amit egyrészt a fórum gazdája tesz azzal hogy üzemelteti, másrészt a fórum közössége tesz azzal, hogy ír bele. Neked, választ. Ezek nem alanyi jogon járnak. Ezért ha kérsz vagy kérdezel vmit, légy udvarias és ha kaptál valamit, köszönd meg. Például a választ a kérdésedre. V. Ha megszólítanak a fórumon (kérdés vagy bármely egyéb formában), illik válaszolnunk, hacsak nem akarjuk, hogy bunkónak tartsanak. VII. Mielőtt kérdést teszünk fel a többieknek szétnézünk, hogy azt esetleg más előttünk már nem tette-e fel illetve hogy született-e rá válasz. Senki nem szereti sokadszorra leírni ugyanazt csak azért, mert valaki lusta szétnézni írás előtt. VIII. Ha beírtunk egy kérdést és arra nem jön rövid időn belül válasz, nem írjuk be hogy a mi kérdésünkre miért nem válaszol senki. A tagok nem vakok, valószínűleg elolvasták amit írtunk, a hallgatásnak több oka is lehet: - a kérdés érthetetlen volt és nem lehet rá válaszolni - a kérdés túl nehéz volt és senki nem tud rá válaszolni - a kérdés már milliószor elhangzott és senki nem akar újra rá válaszolni Azt meg ugye nem várjuk el hogy a kérdésünkre ha nincs válasz, majd minden egyes fórumozó beírja: "én nem tudom". ....”
Szerintem az include-ok sorrendje nem stimmel nálad. Csatolj forráskódot, hogy lássuk mit csináltál.
Már megoldottam a problémát.
De van egy újabb. CCS ben nincs boolen?
A szabványos C-ben nincs boolean. CCS-ben van az int1 típus, az lesz az, amit te keresel. De ez nem szabványos, ha hordozható kódot akarsz írni, akkor inkább ne használd.
|
Bejelentkezés
Hirdetés |