Ahoj. Našel by se někdo, kdo by poradil jak nastavit MPlab IDE a MPlab C32?
Bohužel se v tomhle nevyznám - zbylo to na mě. Mám program napsaný v C. A potřebuju z toho dostat hex soubor - je to Pro PIC16F73. V Mplabu mi to vždy vyhodí chybu
(Executing: “C:\Program Files\HI-TECH Software\PICC\9.81\bin\picc.exe” --pass1 “C:\pokus lih\Lihen_blaha.c” -q --chip=16F73 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist “–errformat=Error %n] %f; %l.%c %s” “–msgformat=Advisory%n] %s” “–warnformat=Warning %n] %f; %l.%c %s”
Error [141] C:\pokus lih\Lihen_blaha.c; 13.19 can’t open include file “system.h”: No such file or directory
********** Build failed! **********)
Toolsuite nastaveno na hi-tech ansi c compiler
Popřípadě může prosím někdo zkompilovat? Děkuji Lihen_blaha.c (32.8 KB)
Nebo by mohlo pomoct dát ho do lomených závorek <system.h> - tím se říká, že ho překladač nemá hledat v lokálním adresáři, ale v systémových include souborech.
Tenhle soubor jsem nasel primo instalacnim adresa mplabu. je nakopírovaný i do adresáře kde mam soubor ke kompilaci. Stále to stejné. Jen mi není jasné co je to vůbec za soubor.
zdroják je evidentně v HI-TECHu a výstup z překladače taky
teď k závorkám - u většiny překladaču se takto umístěný soubor hledá v adresáři do kterého je daná cesta v konfiguraci projektu - asi je špatně a proto ji nemůže najít
kromě "select language toolsuite " je ptřeba nastavit i “set language tool locations” v záložce Project
je li soubor zkopírovaný do stejného adresáře s ani ne tak souborem .c ale hlavně s projektovým souborem ( u C32 .mcw - U HI-TECH nevím) tak ho určitě najde , když bude v uvozovkách.
a pokud bude v jiném adresáři, tak mu stačí říct ve kterém :
#include “…\jiny_adresar\system.h”
jinak to je hlavičkový soubor od **system.c **ve kterém jsou definovány nejspíš funkce pro ovládání periferií mcu ( set_bit( portc, 2 ) clear_bit( portc, 2 ) atd.,a jistě i něco jiného.
no a proto by i tento soubor měl být ve stejném adresáři jako system.h
no a kdyby se nedařilo - tak zdroják upravit pro C32 ( C18) a přeložit to v tom
ještě mně napadlo, jestli ho máš taky v okně projektu - klepnout pravým na header files a zvolit “add files”
a pokud bys to chtěl od někoho zkompilovat, tak musíš dát k dispozici i ty soubory system.c a system.h - aspoň já je v mojem HITECHu lite nemám - neumí dokonce ani ten typ pic16F73
Jj. Tohle je normálně funkční. Jen potřebuji změnit otoc_imp na jinou hodnotu. a buď mám tento soubor nebo hex vytažený z pic procesoru. Bohužel zadny system.c a system.h soubor nemam. Jen soubory s koncovkou cof, ist, map, c, pre. Jak jsem psal. Ja se v tomhle uplne nevyznám a autor tohohle nesmyslu přerušil kontakty.
administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
Tak zakomentovat ten #include “system.h”, zkusit překlad, podívat se na jakých jménech to bude hlásit chyby a ta jména pak hledat v systémových souborech (např. Total Commanderem), aby se vědělo co includovat místo toho.
Tak to je problém - ty soubory jsou nespíš taky dílem autora - teoreticky by mohly být součástí IDE, ale to už by ses k nim nějak po všech radách dostal-a jestli jsem to dobře pochopil, tak od autora se jich asi nedočkáš.
Neznám samozřejmě pozadí, ale pokud autor dostal zaplaceno, měl by dodat kompletní dokumentaci a kompletní sw.
Pokud to bylo naopak - tak se mu ani nedivím.
Ale takhle je to zralé na kompletní předělání - v kódu je spousta funkcí, které jsou definované někde jinde a i když by se asi jednoduše daly napsat, protože v komentáři je někdy vysvětleno, co dělají je tam ještě spousta dalších, které nevím co mají dělat - pravděpodobně jsou všechny definované v těch neexistujících souborech, protože jiný než ten **system.h ** tam includovaný není.
A protože to je evidentně komerční projekt - bude to určitě něco stát - bohužel.
Takže je na zvážení - vymámit,případně vytlouct z autora kompletní sw, anebo do toho investovat další prostředky.
A ještě jednou jsem si ověřil přímo v HI TECHu, že zápis : **if ( b.7 ) ** je prostě nesmysl - vyhodilo mi to chybu - v C se prostě takhle k jednotlivým bitům dostat nedá (je to asi zas nějaký vynález autora) - tečková anotace se prostě používá pro přístup ke členům struktury, nebo unionu.
Vyjímku jsem viděl jenom u Codevisionu AVR, kde se dá takto dostat k jednotlivým bitům speciálních registrů - což je ale dané asi tím, že u AVR má každý bit spec. registu svoji vlastní adresu.