Fórum témák
» Több friss téma |
Azt úgy kellene szabályosan csinálni, hogy a .c fájlhoz létre kellene hozni egy .h fájlt is, és abba pakolni ezeket a fejléceket, a .c fájlba be kell includolni a .h fájlt. Másik forráskódokba pedig csak a .h fájlunkat includoljuk, a fordító pedig megkeresi magának, hogy mi hol található, illetve majd kiabál, ha valamit nem talál.
Ez így igaz, de én egész másról írtam.
Az általad említett megoldásban csak a header állományok tartalmaznák a prototipust, én arra akartam rávilágítani, hogy bár nem kötelező, sokat segíthet ha ezeket a forrás IS tartalmazza.. Egy másik gondolat: a header-ek használata okés, ha a függvényeket máshol is akarod használni, de mi van azokkal amelyek rejtve kell maradjanak?! Ebben az esetben csak a forrásban lehet elhelyezni a prototipusokat, esetleg egy static kulcsszóval meg is védeni...
Sziasztok!
Ehhez a HIGH-TECH C-hez mit kell pontosan feltelepítenem MPLAB-hoz, hogy használni tudjam? Én ezt találtam: HI-TECH C HI-TECH C Compiler for PIC10/12/16 MCUs (PRO/Standard/LITE) Update v9.83 Ő lenne az? 16F-es controllerre kellene. Meg valami jó kis oldalt tudtok ajánlani kezdésnek? assembly már nagyjából megy, csak megfájdul tőle a fejem. Olvasgattam már Topi "Nulláról a robotokig" cikkét is, de az nem valami jól magyaráz a C-nyelvnél.
Szia!
Magát a fordítót és a HI-TECH Universal Toolsuite v1.37 (MPLAB IDE Plugin)-t. A linkelt lapon a legalsó sor.
A MCHP XC forditojat is letoltheted, telepitheted. Hasonlit a HiTech forditohoz. Esetleg egy par leiras itt van. Vannak mintapeldak is benne, igaz inkabb CCS C-re.
És melyik a compiler? Mert amit belinkeltem ott csak update van, a Project Wizard-nál meg egy nagy piros X van a PICC compiler mellett, vagyis nincs feletelepítve.
(A linkelt oldalról mind a kettőt feltettem).
Azt hiszem meg van, ki kellett tallózni a picc-9.83-win.exe-t.
vilmosd: Köszi, mindjárt megnézem mit tudok hasznosítani belőle. Igazából csak pár alap dologra lenne szükségem, mint pl. előjeles törtszámok összadása, szorzása, osztása, kivonása. A többi egyszerűbb assemblybe. Talán...
Újabb nehézségek már az elején:
Miért nem tudom a bitek konfigurálásánál az órajelemet beállítani? És miért nem akarja lefordítani ezt a mérhetetlenül nagy bonyolultságú programot a fordító? Még azt sem írja ki, hogy build failed. Íme:
Mi hiányzik még belőle, hogy működőképes legyen? És vajon miért a feladatkezelőből kell kilőnöm az mplabot? Valaki igazán meglökhetne, hogy el tudjak indulni a C irányába.
Szia! Miért nem nézel meg egy példa programot? Gyorsabb lenne mint oldalakat írogatni!
Miért nem a gyári fordítót használod, ha már most tanulod a C-t?
Topi villogtatós példa programját néztem meg, csak kivettem belőle a delayt meg a button-os részt mert arra most nincs szükségem, így ennyi maradt.
Bővebben: Link És nem hinném, hogy oldalakat kellene írogatni egy PORTC-re kiküldött 1-es állapottal. C nyelvet már tanultam, csak nem PIC-re alkalmaztam, tehát csak elindulnom kellene. Kezdetbe az assembly-s kódom sem akart lefordulni, MPLAB hülyeségei miatt. Szerintem most is valami ilyesmiről lehet szó. De ez az órajelbeállítás miért nem működik? Topi cikkéből azt vettem le, hogy a bit konfigurálásnál kell beállítani. Próbáltam ezt is, de pirossal kiszínezi a parancsot, tehát nem tetszik neki. #use delay(clock=4000000) (delay nélkül sem) Mert azt sem tudom, hogy melyik a gyári fordító, ezeket nem nagyon szokták cikkekben írni, mert alapismeretnek gondolják, pedig egy kezdő elvész a sok információ halmazba. Ha a CCS-C-re gondolsz akkor azért nem azzal kezdem, mert rákeresve ebbe a topicba nem nagyon ajánlották. Idézet: „#use delay(clock=4000000)” Ez ha jol emlekszem nem HTC hanem CCS C.
Azt tudom, mert a CCS-C-s résznél volt, de kínomban kipróbáltam ezt is.
De most esett le, hogy a "Value" a "Configuration Bits"-nél nem is azt jelenti. Tehát a kérdés hogy tudom beállítani az órajelet? (20Mhz) Idézet: Én először is elolvasnám a telepített C fordító dokumentációját, utána pedig megnézném a fordítóval települt mintapéldákat. „Valaki igazán meglökhetne, hogy el tudjak indulni a C irányába.”
Ez ennyire specifikus kérdés lenne, hogy nem lehet rá egyszerű választ adni? Fentebb leírtam, hogy mit telepítettem fel. A cikkben is ez volt, hogy ezt kell feltelepíteni. De akkor hogy van ez? Mégsem használja senki?
Mellesleg ha a HI-TECH ANSI C Compilert jelölöm be a Project Wizard-nál, akkor sem fordul le semmi. Még ennyi sem: #include void main{ } Lehet inkább újra telepítem az MPLAB-ot, mert amilyen béna szoftver, lehet azzal van a gond. Egyszer már segített az újratelepítés. Idézet: Én nem használom, tehát nem tudok választ adni. Tanácsot viszont adtam, elmondva, hogy én hol keresgélnék. „Ez ennyire specifikus kérdés lenne, hogy nem lehet rá egyszerű választ adni?” Mégegy tipp: a Hitech fordító (legalábbis amikor két éve utoljára próbáltam) parancssorből is futtatható. Így ellenőrizhető, hogy az MPLAB bekavar-e vagy sem.
Látod, lassan megvan az egy oldal, és még semmire sem mentél! Halgass a tanácsokra, telepítsd fel a HI-TECH-et és nézd meg a példaprogramokat. Az MPLAB pedig messze nem béna, erről biztosíthatlak, legfeljebb most még meghaladja a képességeidet, amit szorgos tanulással és némi fórum olvasgatással meg tudsz változtatni. Használd a keresőt is, sok téma erről is szól. Arra ne számíts, hogy mindez holnapra menni fog, meg kell adni neki az időt, mire minden kitisztul...
Csak az a baj, hogy azt az 1 oldalt nem TI írtátok! Én csak teszem fel az újabb kérdéseket és választ meg nem igazán kapok. Kezdem azt hinni, hogy itt senki sem ért a C-ben történő programozáshoz.
De érdekes, pedig leírás alapján csináltam mindent és mégsem működik. Ha nem béna szoftver, akkor azt mivel magyarázod, hogy ugyanaz a plugin a feladatkezelőben 5-ször is fut egyszerre, alig lehet kilőni őket. MPLAB bezárása sem állítja le az MPLAB-ot! Elég bugos. A szimulációja sem kifejlett, az Oshon 10-szer hatékonyabb nála. HI-TECH-et meg már feltelepítettem, ezt leírtam. Idézet: „Arra ne számíts, hogy mindez holnapra menni fog, meg kell adni neki az időt, mire minden kitisztul...” Akkor itt már nem csak bennem van a hiba, ugyanis ennél könnyebb kérdést már nem fogok feltenni. És egy ilyen kis problémát egy hozzáértő ember 1 hsz-ban 5 perc alatt megold. De mindegy, megoldom egyedül, mert úgy látom, hogy ez a topic csak lassítja a probléma megoldást, pedig az ellenkezőjét kellene tennie.
Nálam semmi olyasmi nem történik és soha nem is történt, mint nálad. Fogalmam nincs mit rontasz el. Valami baj lehet a rendszereddel, ha ilyen dolgok történnek.
Itt nem szerencsés lehülyézni mindenkit, de te tudod. Sok szerencsét...
Nálam ezt simán lefordítja, az MPLAB 8.76-al együtt települt HI-TECH C (lite mode) v9.82 pic16f690-re. A hiba nem a programban, hanem a telepítésnél vagy a project beállításokban lesz. Az include pedig azért kell hogy a fordító tudjon mit kezdeni az ADCON1, TRISA stb. szavakkal. Ezek ugyanis nincsenek a fordítóba (picc.exe) fixen bedrótozva, hanem a pic.h vagy az abba beinclude-olt más header file-ok tartalmazzák.
Mivel nem használok PIC16-ost nem használom ezt a fordítót.
Na végre lefordult a Universal Toolsuite-tal, a másikkal még nem! És az a helyzet, hogy a hozzászólásaimban benne van az összes hiba amit vétettem, és amit észre kellett volna annak vennie aki elolvasta!
benjami: Köszi! Végre valaki aki válaszolt is valamire érdemben! Idézet: Lehet, hogy rosszul látom, de a kérdéseidnek szerintem nem sok köze volt a C programozáshoz... „Kezdem azt hinni, hogy itt senki sem ért a C-ben történő programozáshoz.” Szeretnélek emlékeztetni, hogy a Microchip mikrovezérlők hardver felépítése csak a PIC18-től felfelé teszi lehetővé a hatékony C programozást. A PIC16-hoz nem is fejlesztett C fordítót, a Hitech C fordító nem túl régen, egy cég felvásárlása kapcsán került a tulajdonába. Tehát ne lepődj meg, ha úgy tűnik, nem sokan ismerik ezt a fordítót.
Idézet: „C nyelvet már tanultam, csak nem PIC-re alkalmaztam, tehát csak elindulnom kellene.” Ezek után kezded azt hinni, hogy senki ezen a fórumon nem ért a C-hez. Mégis te kérdezed miért kell include-olni egy header állományt?! A Topi féle program átírásánál is vétettél egy hibát mert önkényesen kitörölted a végtelen ciklust. Először is tisztában kéne lenni pár alap dologgal, utána szidni fordítót, fórumtársat, fejlesztőeszközt...
Igen, biztos elég gyakran includoltam pic.h állományt PC-re történő programozásnál. Mellesleg kb. 3 éve nem használtam már a C-t és csak 1 évig tanultam, akkor is csak az alapokat. A kérdés meg inkább arra irányult, hogy mit tartalmaz.
Nem vétettem nagy hibát, mert végtelen ciklus nélkül is le kell fordulnia a programnak. Nem az volt a kérdés, hogy miért nem működik, hanem az, hogy miért nem fordítja le! Olvass vissza. Csak senki nem vette észre a másik hibát ami miatt nem fordított, mert gondolom csak felületesen olvastátok el a hsz-t. Offolást befejeztem, több off-ra nem válaszolok.
Sziasztok, ideje a C-t is gyakorolnom. 16F és 18F-es PIC-ekkel és egyéb jószágokkal játszadozom. Letöltöttem a Hi-tech C progit. feltelepítettem, de nem tudom hogy hogyan tudnám ezt az MPLAB-ban is használni. Amikor a projekt varázslóval létrehozok egy új projektet, és ott megadom hogy C nyelven akarok fejleszteni, akkor ki kell választani a C fordítót. De a HI-Tech C mappában van 2 almappa a HC51 és PICC Gondolom a PICC mappában kell keresgélnem. Ott is van lite ill. std mappa. Azon belül egyéb mappák. Ha valaki megmondja nekem az exe fájl nevét már az is elég lenne.
Üdv.: Miki
PIC10/12/16 esetén picc.exe
Köszönöm.
Üdv mindenkinek!
Nem rég kezdtem C18-al foglalkozni (eddig CCS-el mókoltam), de máris megakadtam. Egy PIC18F6722 ADC-jét próbálom életre kelteni, de sehogy nem akar menni a dolog. sem így:
sem pedig így:
A jelenség mindkét esetben az, hogy az ADCON-ban 0x0000 van, még akkor is ha tápra húzom. A teljességhez hozzátartozik, hogy egyenlőre csak proteusban próbálom életrekelteni. Mit rontok el?
A dolog időközben úgy alakult, hogy hosszas szenvedések után csináltam egy kis programocskát. 18F4550-el gyönyörűen megy a szimuláció, ugyan az 18F6722-vel meg sem makkan....
Lehetséges hogy a 18F6722 hibás a proteusban? Nincs valakinek ilyen tapasztalata?
Napok óta bújom az adatlapot és nem és nem....
Ha valakinek lesz rá ideje megtenné hogy ránéz? A dsn-t és a többi szükséges file-t csatoltam.
Nem szorosan ide tartozik, de múltkor találtam valami elírást. PIC14k50 doksiban a timer3 RD16-os bitje a szimulációhoz(MPLAB SIM-mel) képest pont fordítva működik. Végül a szimulációnak lett igaza. Hátha nálad is hasonló a helyzet.
|
Bejelentkezés
Hirdetés |