Fórum témák
» Több friss téma |
Hello
Pic-et szeretnék programozni HITECH C-nyelven már asmben úgy ahogy megy, mindent úgy csinállok ahogy itt le van írva, de ezt a csatolmányban levő hibaüzenetet kapom. Viszont ha Universal toolsuitot használlok, akkor lefordítja, beégetem a PICbe a fájlt, de nem akar működni. A PIC és az égető is jó assemblerből fordított fájlal működik.
Az a "#FUSES" nem HI-TECH C-s, annál inkább CCS! (Ki is írta neked, hogy nem érti... "Warning [107]....illegal # directive "FUSES"". Ettől még lefordítja, csak a config. biteket nem állítja be.)
Igen, igen tudom, beálítottam a config biteket úgy ahogy kell, de szintén nem megy, nemértem hol lehet a hiba
Tudna valaki pontos linket adni és leírni hogy hogyan bírta működésre ezt a HITECH fordítót?
Ahogy a névtelen.png képen van, ha úgy csinállom akkor elég furcsa HEX fájlt generáll, ha megnyitom az égetőprogrammal csak az első 9helyre van más írva a többi 3FFF... Beálítottam a config biteket is, 14,41818Mhz es kvarcot használlok.
Ezt próbáld meg beégetni. Próbáld lefordítani és nézd meg egyezik-e a két hex.
Le se akarja fordíttani...
A HEX amit küldtél a PICbe égetve működik.
szerintem kell még valami include pl. pic.h
a hitech telepitési mappájában találsz mintákat, nézz rá
Lehet, rosszul vannak beállítva az elérési utak. Nézd meg hová települt a Hi-Tech és az MPLAB-ban keress rá a beállításoknál(zöld fogaskerekes ikon) a linker, header stb. pontokon.
Közben hazajöttem, és megnéztem, nincs mit beállítani(szemben az mcc18-al).
Javaslom szedd le az MPLAB-ot. és tedd fel a legújabbat és ha nem lenne a Hi-Tech kijelölve, jelöld ki telepítéskor. Még annyit előtte nézz meg, hogy egy rövidebb elérési útra tedd a projectet. Az MPLAB 64 karakternél hosszabb elérést nem tud kezelni, legalább is régen így volt!
Azért nem fordul le, mert a 9.81-ben megváltoztatták a konfigurációs bitek beállitásánál a megnevezéseket. Pl. "BORDIS"-ből "BOREN_OFF" lett. Az include mappában meg tudod nézni az adott PIC konfigurációs beállításainál mit kell beírni. Esetleg a 9.80-nal fordítod, mert azzal simán megy.
Nem túlzottan
Mondjuk annyira következetesek voltak, hogy a PIC18-nál is így variáltak. Egyébként a fordítokból több verzió is fent lehet egyszerre és akkor azt kell előhúzni, amelyik fordítja hát, ez sem normális...
Az a "legjobb" mikor oda vissza variálnak !
18 -as fordítónál volt olyan hogy hagyományos hitech , majd MplabC18 szerű, aztán meg valami hitech féle, de új nevekkel. Írtam is nekik, hogy OK hogy fejlesztenek, de döntsék már el az irányt legalább. És ezt művelik a regiszter nevekkel is, nem csak a konfig bitekkel. Újabban már beleírom a C forrás elejébe, hogy mivel kell lefordítani, ha újból elő kell vennem később.
Azt már megszoktam, hogy különböző PIC-eknél eltérő a megnevezés, egye kutya, de hogy verzió váltáskor ugyanarra a PIC-re más neveket használnak, azaz nem tudom lefordítani a korábban írt programomat, az enyhén szólva is dilettáns megoldás. A hasznát nehezen látom, akárhogy is nézem!
Amugy sima #define-okkal lehet kompatibilitasi headert faragni, de az is igaz, hogy azt a gyarto cegnek kell(ene) biztositania. Most lusta vagyok rakeresni de elkepzelhetonek tartom, hogy valaki mar csinalt ilyet es le lehet szedni a netrol...
Sőt talán a régi headerekkel is megoldható, hiszen a valós címek nem változtak...
Sziasztok!
Szeretnék megtanulni pic-et programozni HI-TECH C nyelven. Felhúztam a gépre a HI-TECH-et és utána egy integrálót amit az egyik cikkben találtam. DE a program azzal a hibaüzenettel zárt, hogy kézzel kel megcsinálnom a betöltést. Most akkor mit is kell csinálnom? Aztán probálgattam a project wizard-ot (mblab) ahol a picc.exe-t hozzárendeltem a C fordítóhoz nem tudom, hogy ez-e a válasz az előbbi kérdésemre! Majd egy nagyon egyszerű programot szeretem volna "bildelni" de nem tudtam. Nevezetesen; #include void main(void) { } Mi lehet a probléma? Mit csináltam rosszul? ui:16f690-et szeretnék programozni és igen már 3 éve programozok C-ben és szintén igen már tudok pic-et programozni assembly-ben.[sub]
Szia!
A forrásban meg kellene adni a kontrollerhez tarozó header állományt is. Mplab betöltése, Project Wizard, 16F688 típus, HiTech C fordító, a main.c az alábbi tartalommal:
És sikeres a fordítás... Sajnos a verzióm nem ismeri a 16F690 -et..
Szia!
gyanús hogy valami régi verziós hitech c-t telepítettél, a maiak már automatice integrálódnak
A hibauzenet sokat segitene a hiba felderiteseben -- neha egy kepernyokep is sokat segit...
Köszönöm mindenkinek majd próbálkozom.
Egyébként a forditót a honlapjukról szedtem le sacperkábé 4 napja. Az
Igen a pic.h betölti a megfelelő állományt attól függően,hogy mi van kiválasztva a fordítóban.
Gondolom a microchip oldaláról szedted le az új MPLAB-ot? Mert az tartalmazza a fordítót, ha jól emlékszem...
Igen
A hi tech 9.81-es verziója van meg. Itt vannak a hibaüzenetek. Azért as16f690.h-t includolok mert ezt találtam meg a (fordító) könyvtárában de mással sem működik. (pic.h,16f690(.h),pic16f690(.h))
Túl hosszú az elérési útvonalad(path). Az MPLAB 64 karakternél hosszabb útvonalat nem kezel. Nemrég írtam, igaz nem neked...
A pic.h-t használd, azzal jónak kell lennie.
Mi nem jó? Lerövidítetted az elérési utat?
A másik, amit watt elfelejtett említeni, hogy az MPLAB az ékezetes betűket sem kedveli sem a fájlnévben, sem a könyvtárak nevében.
Minek a útvonalát rövidítsem és mihez képest?
Természetesen az MPLAB-ban létrehozott project útvonalát.
Pl.: C:\PIC\projectem nevezetű mappába mentsd a projectedet, amikor létrehozod.
A teljes elérési útvonalad ( minden karaktert beleszámolva ) nem lehet több a bűvös 63 karakternél ( ha jól emlékszem, de ezt ki is írja hiba esetén ! ) ! Nem tudom, miért nem küszöbölik ki, de így van. Az ékezetekkel viszont nagyon vigyázz ( ne használj! ), mert alattomos hibákat csinál: néha gond nélkül megy, máskor meg nem ( gondolom az op. rendszer aktuális állapotától függően, ez meg nagyon szerencse kérdése!): én sehol nem használok, se elérési útban, sem változónévben, se címkében !
Steve |
Bejelentkezés
Hirdetés |