Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
#FAST_IO preprocessort a CCS nem fogja felismerni, mert az helyesen #use fast_io(x) (x helyén a port betűjele) nézd csak meg az a letölthető Reference manual-t!
A Hi-Tech is megfelel hobbi célokra, ugyanakkor a CCS-sel is lehet nagyon profi dolgokat művelni. Csak azt kell eldönteni, hogy mennyire akarja az ember "kézben tartani" a dolgokat vagy megelégszik pl. a CCS felkínált automatizmusaival. Ahhoz jól meg kell ismerni mind a két fordítót, hogy el tudd dönteni, melyik a számodra szimpatikus. Pl. ez az output_b(..., output_low stb. nekem kimondottan nem tetszik, jobban fekszik a Hi-Tech-es port vagy bit névvel hivatkozás. Persze - mint ahogy Topi cikkéből is kiderül - megoldható ez a CCS-ben is pl. egy saját headerrel (pld-nak mellékelek egy ilyet). Ezután már mehet az ilyesmi :
Helló!
Nekem sem tetszik az hogy a program megcsinál mindent helyettem. Szeretem ha mindent nekem kell megadni és én állíthatom be a portokat. Ezek szerint nekem a HI-TECH PICC-et kellene használnom. Körülnézek és megkeresgetem. Köszönöm az eddigi segítséget.
Épp most írtam, hogy a CCS-t is rá lehet venni arra, hogy ne legyen túl intelligens...
De macera, neked megírni a header fájlt hozzá, hogy a portokat és a biteket használhasd. Hi-Tech fordítónál meg már ez megvan.
Kövezzetek meg, de én szeretem ha "olvasható" a kód (akár laikusoknak is) és ha kinyalják a s**emet. Persze ez nem kisebbíti a Hi-Tech (és egyéb fordítók erényeit)! Egy érv még a CCS mellett, hogy az általam kipróbált kódok zöménél mindig kisebbet kreált mint pl. a Hi-Tech.
A kód olvashatósága szerintem inkább kommentelés függvénye. Lehet minden fordítóval olvashatatlan és olvasható kódot is írni, mint ahogy minden nyelven lehet Fortran programot is írni. Kódméret az inkább fordítófüggő ugyanannál a kódnál, mivel lehet úgy írni kódot, hogy egyik fordító jobban ki tudja optimalizálni, mint a másik. De biztosan lehet olyan kódot is írni, amit a Hi-Tech fordít kisebbre.
Persze ez mind igaz amit írtál. Azt is tegyük hozzá, hogy majd egy bizonyos szint után. Nem pedig az abszolút kezdő kategóriában... Gyanítom, hogy itt is arról szól az élet, hogy sokan elkezdenének mikrokontrollerre programot írni, csak kínai a nyelv. Azért azt Te sem vitatod, hogy az angol parancsszavak és utasítások sokat nyomnak a latba. (lásd pl. a basic vagy logo sikerét)
Nem vitatom, hogy ezek jó dolgok, csak nemis okvetlenül egy kezdőnek valók véleményem szerint ezek a beépített cuccok. edison14 is vacakol ezekkel a felhúzókkal, közben meg ha elővenné az adatlapot (amire előbb-utóbb szüksége lesz), akkor abból egyből látná, hogy INTCON regiszter RBPU bitjét kell nullába rakni ahhoz, hogy a felhúzók bekapcsoljanak. Lehet, hogy kezdetben lassabban haladna, de utána viszont önállóbbá válna és sokmindent átlátna, amit így nem vagy csak sokkal nehezebben.
Ez igaz potyo. MNagyon gyorsan akartam azt elérni amit nem lehet. És szerintem most nekiállok és egypár hetet rááldozok arra hogy megismerjem a PIC-emet + elolvasom a nulláról a robotokig c. cikkeket és a PIC programozás C nyelven c. cikket. Utána elölről kezdem az egészet és sokkal precízebben és nyugodtabban fogok haladni az egésszel.
Köszönöm az eddigi válaszokat és a helyrepofozást.
Macerás, de csak azért, mert a port, bit neves hivatkozást "komálom jobban". Nem kötelező így használni és ezt is csak egyszer kell megírni.
Én programozgatok CCS-sel és Hi-Tech-kel is és ha láttátok, edison14-nek pont azt javasoltam, hogy ismerje meg mind kettőt vagy többet, hogy a számára tettszőt kiválassza, és hogy eljuthasson egy olyan szintre, amikor már a projekthez a számára megfelelő fordítót tudja kiválasztani, mert van amit az egyikben, van amit a másikban egyszerűbb megoldani... de, erre már - olvasva a topikot - elég sok szó volt vesztegetve... Üdv!
Sziasztok!
Próbálgatom a c fordítókat. Elakadtam egy kicsit a config biteknél. Próbáltam összeszedni az adatlap, a fordítóhoz kapott header fájl, és egy icsernytől származó c18 alapján. Egy részét sikerült is, de egy párat nem igazán tudok hová tenni. Megköszönném ha valaki segítene némi iránymutatással.
Vedd elő a CCS mappájából a Devices almappából a chipedhez tartozó .h fájlt, annak az elejében ott vannak a konfig bitek elnevezései.
Más fordítók konfig bit elnevezéseivel felesleges próbálkoznod, egy részüket megeszi a CCS, egy részüket nem.
Az a header fájl amire azt írtam, hogy a fordítóval volt. De ott csak egy vesszővel elválasztott felsorolás van, minden megjegyzés nélkül, ezért vagyok megakadva, mert nem tudom az adatlaphoz párosítani. A mellékelt fájlban az alsó részen vannak ezek. A c18as headert csak a kommentek miatt vettem elő. Már csak egy pár maradt,amit nem tudok "belőni". Persze ez nem jelenti ugyebár azt, hogy a többi jó Ja, a proci 18f4550.
És közben hasonlítgatom a lefordított hexek konfig részét, már egész közel állnak. Idézet: Melyiket nem tudod hová tenni? „egy párat nem igazán tudok hová tenni”
Amik ki vannak kommentezve, az volna az alap amit Te írtál, ez van a file eljén. A végén ami a ccs 18f4550.h-ban volt confignak, csak már egy kicsit széttördeltem, a Te kommentjeid után oda raktam azokat amikből szerintem "választani lehet", az adott bithez. (Később jól jöhet jegyzetnek )
Sziasztok!
Újabb problémám volna. Szeretnék gombnyomásokat számolni, és egy lcd-n kiírni. Nem igazán jön össze. A kódban a kommentek közt le van írva, hogy mi a bajom, mert nem tudtam röviden, és pontosan megfogalmazni Előre is köszönöm a segítséget!
Sziasztok!
(Még csak ismerkedek a PIC-ekkel) Lenne egy egyszerű problémám. Hogy lehet elérni hogy a B porton kimenetként magas szintet érjek el? Eddig annyit írtam meg amit a txt-ben csatoltam. Az RB1-en így csak 1,6V jön ki. A PIC típusa 16F84A. Hogy lehetne elérni hogy alacsony szinten 0V, magas szinten pedig 5V körüli érték jöjjön ki. Kell valami felhúzó ellenállás vagy ilyesmi? Ha jól tudom a "B" porton vannak programozható felhúzók. Remélem tudtok segíteni ebben az egyszerű problémában. Köszönöm előre is. Üdv: Dempsey.
Mi a helyzet az MCLR lábbal? Mert ha az nincs felhúzva tápfeszre, nem fog stabilan működni. Egyébként H szintnél közel tápfesznek kell kijönni.
Elfelejtettem írni hogy fel van húzva tápfeszre az MCLR. Ezért nem értem hogy miért nem működik
Gondolom a 100nF-os hidegítés is rajta van a táplábakon.(?)
Mindegyik kimeneten csak ennyit mérsz? A tápfeszt mérve okés? Megvan a +5V?
Igen mindegyik kimeneten 1,6-1,8V van. A hidegítés az nincs rajta. Tápfesz rendben megvan az 5V.
Akkor forrassz minél közelebb, minél rövidebb kivezetésekkel egy 100nF-ot a táplábakra közvetlenül.
Ráforrasztottam így 2,15V ra emelkedett a feszültség minden lábon. A tápot a laptop USB-jéről kapja. Túl sok a zaj vagy mi a gond?
Ott valami táp gond lesz. Nem tudsz neki stab IC-ről normális tápot adni?
Most kihúztam a tápot aztán megint bedugtam rámértem és megint 1,8 V van a lábakon. Csinálok egy stabil 5V- os tápot gyorsan és megírom van e változás.
Stabil tápról is ugyan az pedig tettem kondenzátorokat a stab IC elé és után is ahogy kell.
A végtelen ciklus utáni része a programodnak szerinted mikor fog lefutni?
Inkább így próbáld:
Az output_high()/output_low() helyett az output_b(0xff)/output_b(0) függvényhívásokkalis próbálkozhatsz, ami elvileg a B port összes lábát macerálja.
Azt csak véletlenül elírtam. A te megoldásoddal sem jó így is csak 1,5V van a RB1-en.
|
Bejelentkezés
Hirdetés |