musíš si zprovoznit vývojové prostředí s nějakým GNU GCC překladačem.
A taky doporučuju pořádně se naučit Céčko srkz na skrz na PC. A také pojmy jako je linker, make, makefile, křížová kompilace...Začínat s Cčkem na mcu bez předchozích zkušenosti na PC je dost na prd
Založen: Feb 14, 2005 Příspěvky: 9006 Bydliště: Brno (JN89GF)
Zaslal: pá prosinec 09 2016, 13:21 Předmět:
Tak asi před dvěma lety jsem trošku začal s C++ na PC, ale potřeboval jsem jen udělat jednu konzolovou aplikaci na komunikaci s COM portem. Pak už jsem na to zas nešáhl. Nemám ambice v tom být dobrej, jen umět alespoň základy a případně se doučovat, co bude třeba, za pochodu.
GCC je nějakej free překladač? MPLAB se mi líbí, že je celkem komfortní a provázanej a vše tak nějak funguje. Akorát je to děsnej moloch, je to v javě a žere 1,3 GB RAMky.
Asi jsem našel GCC fo PIC, ale je ve fázi plánování. Moc se mi nechce začínat s něčím novým, nevyzkoušeným a místo hledání chyb v programu hledat chyby v překladači.
koukám, že s těma open source toolchainama pro Microchip to je pěkne naprd...
jediný, co mi něco říká je SDCC (ve vedlejším vláknu myslím nějaká uživatelka portila Linux na Z80)
tady jsou nějaký příklady
https://github.com/diegoherranz/sdcc-examples
Ale je to stále v testovací fázi, takže určitě nic pro tebe
Jinak jak už jsem psal. Ty sice začínáš na "nejjednodušších" mikrokontrolérech, ale zároveň mrtě zastaralých. Na tvým místě bych se koukl po modernějších PIC8, AVR8, STM8 či NXP8 mcučkách, kde máš volně dostupný neomezený toolchain. Ten MPLAB je free, ale je to pomalá za*raná Java se zadrátovanými toolchainy v sobě.
Ještě k těm konstantám jenom ve Flashce...seš si tak jistej, že to kompiler dělá? Přečetl sis obsah datové paměti po spuštění programu?
Založen: Feb 14, 2005 Příspěvky: 9006 Bydliště: Brno (JN89GF)
Zaslal: pá prosinec 09 2016, 18:34 Předmět:
Když napíšu const int x=5; tak bude uložená jen v programové paměti. Mám to vyzkoušený tak, že se po kompilaci ani nehne velikost zabrané datové paměti.
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: pá prosinec 09 2016, 18:44 Předmět:
forbidden napsal(a):
GCC je nějakej free překladač?
ano je to free, protože GCC znamená GNU Compiler Collection. Je šířen pod licencí GNU GPL a tudíž free, protože GNU's Not Unix.
Je to asi jeden z nejznámějších překladačů vůbec, zahrnuje velké množství platforem od MCU až po velké stroje od Sun a HP. Na platformách s Linux asi nejpoužívanější kompilátor. PICy neznám a tak mě trochu zaráží, že nejsou v jeho portfoliu. V každém případě, pro platformu Atmel, STM8, STM32 je k dispozici. A taky pro všechny dnes užívané Intely a AMD.
forbidden napsal(a):
Když napíšu const int x=5; tak bude uložená jen v programové paměti. Mám to vyzkoušený tak, že se po kompilaci ani nehne velikost zabrané datové paměti.
Protože je to definováno jako konstanta. Ovšem:
char* hello = "Hello";
bude ležet jak v kódové paměti tak v RAM, kam se dostane pomocí start-up kódu.
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: pá prosinec 09 2016, 19:55 Předmět:
Tak to musí mít XC8 nějakou vychytávku. Protože přístup na data v programové paměti jsou jiné instrukce, než přístup na data v RAM. Potom čtení takového řetězce by se muselo překládat jinak. Například
char* hello1 = "Hello";
char hello2[6] = "Hello";
bude u AVR pořád v RAM. Pokud chceme dostat data do kódové paměti, použije se pro gcc syntaxe:
char hello2[6] PROGMEM = "Hello";
a přístup je taky jiný:
pro RAM: char treti_znak = hello[3];
pro FLASH: char treti_znak = pgm_read_byte(hello + 3); což se přeloží na instrukci LPM (load program memory).
Založen: Feb 14, 2005 Příspěvky: 9006 Bydliště: Brno (JN89GF)
Zaslal: pá prosinec 09 2016, 20:09 Předmět:
To přesně nevím, nicméně já se v programu k té proměnné hello chovám stejně jak k hello2. Respektive já to zatím jen vypisoval na display pomocí printf (hello);
Hele, zatím s tím vším mám asi týden zkušeností, tak můžu být místy mimo.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3Další
Strana 2 z 3
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.