Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Idézet: „Légvonalban 3 km, de tudok egy rövidebb utat az erdőn át esete. Höhö...” Nem biztos, hogy légvonalban el is lehet oda jutni A hozzászólás módosítva: Feb 26, 2013
Szia!
Valódi feladat adatait írtam. Ugyan azt a programon írtam meg 16F1829 -re assembly -ben és XC8 -ban. Ennek a tapasztalatait írtam meg itt illetve innen néhány hozzászólásban. Összehasonlításkép a 18F -re a C18 fordító nem ilyen rossz, ott az arány (a fenti feladat 18F2620 -ra) optimalizást esetben 2 - 2.5, nem oprimalizált esetben 4 .. 5. XC8 -at 18F -re nem próbáltam. Idézet: Valószínűleg azzal van ez összefüggésben, hogy a PIC18 (illetve a PIC17C) az első, amelyikre azt mondja a gyártó, hogy a hardver "támogatja" a C nyelv használatát. „Összehasonlításkép a 18F -re a C18 fordító nem ilyen rossz”
Nem, azzal van összefüggésben, hogy a free XC8 teleszemeteli fölösleges utasítással a kódot. De ezzel már több topikot tele off -oltam... Nézzétek meg az disassembly list -et, mit fordít egy-egy sorra. Kitéptem a hajamat.. Egy gorsan letötölt idézet a Microchip fórumáról: „For me this is no surprise at all, Hitech/XC8 are pure s**** in free mode. ” Bővebben: Link
Köszönöm az értékes hozzászólásokat ,és arra a következtetésre jutottam amit le is teszteltem ,hogy ha függvényből hívok újabb függvényt és még abból is hívok másikat (a NENU -rendszerem most igy müködik) az egésznek a mérete 2K fölött van akkor jön a fordító a Out of ROM üzenettel. Ujra gondolom az egész MENU szerkezetet és figyelek hogy ne lépjem tul a 2K-t és akkor menni fog a progi.
Még 1x köszi mindenkinek (megint ujjat tanultam ) A másik kérdés ,hogy melyik fordítót használjak?Hi-tec , XC8 ,CCSC, vagy a MikroC .Most elbizonytalanodtam ,akkor az XC8 felejtős vagy nincs valami okosítás hozzá(most kérek előre elnézést a moderátoroktól:bowEsetleg a mikroc amit nézegettem ,de MPlab-ba nem lehet használni sajna. CCSC már találkoztam benne bug-al (bosszantó pedig ennek a helpje szerintem a legjobb ,kivéve a sample cod-jai mert azok nagyrésze nem jól működik a 16F-en) Akkor melyik irányba induljak tovább??
Miért van az, hogy egy optimalizált C18 kódban nem található infsnz ill dcfsnz utasítás. Illetve egyetlen darab van belőlük a startup kódban az inicializált adatok ram -ba másolásánál.
Optimalizált kódja miért tartalmaz ugrást? Miért nem az alábbi módon csinálja?
Érdekes, pedig igen gyakran használt művelet a 16 bites szám növelése csökkentése... A hozzászólás módosítva: Feb 26, 2013
Ah, so!
Én úgy értettem, hogy ha ugyanezt a kódot assemblyben írná meg, akkor 2x ... 4x rövidebb lenne a kód (ami kb. igaz is lehet), de ha XC8-ban operál, akkor 12x kisebb lesz a kód. És sóval is behintetted az XC8 nyomait?
A régebbi fordítókkal jobb eredményt lehetett elérni.
Magamból kiindulva maradj a CCS fordítónál. Ne hidd, hogy a többi fordító gond nélküli csupa öröm és boldogság. Legalább a helpje tetszik neked.
Sziasztok, CCS C 4.136-ot használok. Eddig frankón működött is, de most azt írja ki, hogy "Demo period has expired". Újramásoltam a .crg file-okat, de nem változott semmi. Szerintetek mi lehet a baj?
Fordítok." A bemutató időszak lejárt."
Kösz, erre én is rájöttem, de a megoldás érdekelne inkább.
Sziasztok!
Megint beleütköztem egy problémába: Próbálok egy PIC18F4550 -est rávenni arra, hogy adatot küldjön SPI-n keresztül, de nem tudom beállítani az órajelet, ha ezt használom, hogy SPI_CLK_DIV_4 vagy 16 akkor megvan az órajel, de ez túl gyors, ha beállítom, hogy 64-el osszon, akkor nincs is órajelem, ha pedig a Timer2-t akarom használni arra, hogy beállítsam az órajelet, akkor meg az egyedüli beállítás amit NÉHA elismer, ez: setup_timer_2(T2_DIV_BY_1, 15, 1); viszont ilyenkor is túl magas az órajel, ha átírok benne bármilyen paramétert akkor ugyancsak nincs sem órajelem, sem kiküldött adatom. Már egy napja szenvedek ettől a fordítótól, a neten is szétnézetm a témával kapcsolatban, de sehol nem találtam hasznos információt. Mellékelem a kódot, igaz már le van csupaszítva a minimumra, de még így sem akart menni. Még annyit, hogy a cél órajel az 250KHz lenne, egy PS1 kontrollerrel szeretném felvenni a kapcsolatot...
20 MHZ-es kvarcot használtam, és a SPI órajelét szkóppal figyelem. Ha tudja valaki, hogy hol hibázok, kérem segítsen, köszönöm. Üdv Máté
2 órányi próbálgatás után végre sikerült mindent beállítanom. A megoldás az volt, hogy be kell iktatni 10 us várakozást minden adatküldés után, így stabil lett a kapcsolat és fogadja is az adatokat.
Sziasztok!
Azt szeretném kérdezni, hogy 18F4620-nál RB-INT-hez (azaz, hogy működjön) a TRIS-en és az interrupt engedélyezésén kívül kell-e még valamit beállítani? Utánaolvasva több féle választ kaptam kérdésemre... Elvileg kellene az ADCON regisztereket is állítani? Azt hiszem úgy olvastam, hogy a PIC indulásánál lehetséges, hogy analógra van állítva a bemenet?
Tiszteelt fórumlakók. Adott két PIC, I2C kapcsolattal, illetve van még a buszon egy másik IC is. Az egyik master módban megy, a másik slave módban. Az lenne aprobléma, hogy a slave PIC az harmadik IC-nek küldött adatot is veszi attól függetlenül, hogy más címre van állítva. Az igaz, hogy a küldött adat ugyanaz, de a cím nem. PIC C compilerben van írva a programja, be van állítva a cím, de hiába. Ha teljesen értlemetlen címet állítok be (amit a compiler még enged) akkor is veszi az adatot a slave PIC. Mit hagyhatok ki, vagy a címzést a programba is bele kell írni?
Sziasztok!
(Remélhetőleg itt már jó lesz) Segítséget szeretnék kérni: PIC18F4550-et a CCS-sel programozom, egyelőre virtuálisan. USB bootloader-t szeretnék beleégetni, gondolom az ex_usb_bootloader.c hex fájlját kell egy az egyben használni. Használta ezt már valaki? Nem találtam róla minimális hardver rajzot, hogy a boot gombnak hol kell lennie (MicroChipnél ugye B4). Egyáltalán van? Ha sikerült a bootloadert beleégetni, akkor a PIC-et USB HID kapcsolathoz használnám (Visual C#). Ha új szoftververziót szeretnék felrakni a PIC-re, akkor a SIOW.EXE-vel tehetem ezt meg? Köszönöm előre is!
Sziasztok!
Olyan gondom van, hogy míg a Pickit3 csatlakoztatva van a PIC16f628A-hoz addig a program működik rendesen mikor tesztelem, viszont mikor eltávolítom a programozót nem működik megfelelően. Nem csinálja meg például az élfigyelést stb. Tehát felborul a működés. Találkozott már valaki ilyennel?
Szia,
A CCS-t az MPLAB-ba integrálva használod? Ha igen, akkor a felső sorban van egy legördülő menü, ott válaszd a Debug helyett a Release opciót, továbbá használsz felhúzó ellenállást az MCLR lábon? 100 nF-os hidegítő kondenzátort használsz közel a PIC-hez? Ezek okozhatnak ilyen hibát. Üdv Gyimate
Szia!
Igen úgy használom és Release van kiválasztva. Van 4,7k az MCLR-en. Hidegítő kondival és nélküle is ugyan az a hiba. Sőt próbáltam nem csak belső oszcillátorral hanem külső kvarccal is az sem javít a helyzeten. Nem tudom mivel másabb ha rajta van a programozó.
Ugye a PicKit3-at programozóként használod az MPlab-ban és nem debuggerként?
Más nem jut eszembe ami ilyen jelenséget okozhat.
Igen programozóként használom. Nekem se jut eszembe semmi más. Ilyet még nem láttam az tuti.
Esetleg az LVP nincs letiltva (Config bit), a PGM láb meg nincs lehúzva?
Na az tuti hogy nincs letiltva. Holnap kiderül megjavul-e tőle, remélem igen. Köszi az infót!
Sziasztok!
Valaki tudna segíteni, hogy az RB interrupt miért nem megy?
Elvileg tudnia kellene mindkét interrupt-ot kezelni nem?
Olvasd ki a portot és töröld az interrupt-ot. pl.:
Üdv!
Azt is megteheted, hogy ha ICD-t vagy PicKitet használsz, hogy az MPLAB-ban debuggolod, ezzel megtudod, hogy belép-e a megszakításba és máshol van-e a hiba.
Sziasztok!
Úgy tűnik, hogy én küszködöm a legtöbbet ezzel a fordítóval. Azt szeretném megkérdezni, hogy az miért lehet, hogy a ccs támogatja a PIC16F1454-es kontrollert, de mégis azt a hibát írja ki, hogy hiba van a 16F1454.h 2. sorában, azt írja ismeretlen eszköz. Azt nem értem, hogy lehet az, hogy megvan a header fájl, utánanéztem, a fordító támogatja a PIC-et, de mégis hibát ír ki, eddig nem találtam rá választ, ha valaki tud kérem segítsen, köszönöm! |
Bejelentkezés
Hirdetés |