kdyz se da -nostdlib, tak se musi definovat funkce"_start"
kdyz se neda -nostdlib, tak se musi definovat funkce "main"
v principu je jedno jestli to ma bezet s prikazovy radky nebo z Makefile,
melo by to chodit v obou pripadech, tu matematickou knihovnu -lgcc
myslim pro nas testovaci program nepotrebujeme
divny ovsem je? ze s while a s delay jsou ruzny vysledky, kdyz je to
porad stejny!
#define F_CPU 8000000UL // frekvence CPU v Hz
#include <avr/io.h>
#include <util/delay.h>
void _start(void)
{
DDRC = 0xFF; //Nakes PORTC as Output
while(1) //infinite loop
{
PORTC = 0xFF; //Turns ON All LEDs
_delay_ms(1000);
PORTC= 0x00; //Turns OFF All LEDs
_delay_ms(1000);
}
}
delay nebo while, je to stejny, muzete to vyzkouset v AVRStudiu? diky
david
Every full C program begins inside a function called "main".
@while a delay_ms() dá různý výsledek, neboť jsou to dva různé programy.
Pokud se podíváš do delay.h, tak uvidíš, jak je funkce napsaná.
Na druhou stranu, smyčka
kód:
i=1;
while(i<255)
může trvat různě, podle toho jak to gcc přeloží a zoptimalizuje.
Pro účely časování je nejlépe použít timer, když už nám ho tam výrobci čipů dali. S časovačem se dají dělat různé zábavné věci, dokonce i bez nutnosti použit přerušení.
kód:
int8_t time, time_mem;
main()
{
setup(); // setup TCNT0 as free-running
while(1)
{
time = TCNT0;
// ...
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: st prosinec 13 2017, 20:04 Předmět:
frpr666 napsal(a):
@main,
citace:
Every full C program begins inside a function called "main".
To není dogma, jenom dohoda, jak se bude jmenovat vstupní bod, odkud začíná kód psaný aplikačním programátorem. Na adresu s návěštím __main se předá řízení po ukončení start-up části kódu, která nastavuje zásobník a dělá jiné věci v závislosti na operačním systému tak, aby se aplikace v systému správně usídlila. Pokud bychom tento start-up kód upravili, mohlo by se volat úplně něco jiného. Například programátoři pod Win API vědí, že jejich program s grafickým rozhraním začíná funkcí WinMain. Existují i další MS rozšíření - _tmain, což se preprocesorem přeloží jako main nebo wmain podle toho, jestli v aplikaci pracujeme se znakovou sadou ASCII - pro main nebo s Unicode (UTF16) - pak je to wmain.
.exit
a podstrcim AVRStudiu tak hex file bezi! je celkem pochopitelny ze vysledny
hex kody nebudou stejny, i v pripade kdyz pouziju optimalizaci,
ale porad si nejsem vedomej svoji chyby? kde je v mojem avr-gcc chyba??
urcite je kod, ktery pracuje jinak nez si programator preje, jenze jsem prisel na takovou
malickost, ze Intel hex kod vyprodukovany avr-gcc nebo AVRStudiem flashovany pres ISP
AVRStudiem je 100% funkcni a dela to co programator ocekava! Jenze se to neda rici
o AVRDUDE ktery flashuje blbe, nekdy je vysledek OK, jindy ne Mozna mam rychle nastavenou ISP sbernici, ale urcite tenhle flashator neni 100% pro AT90PWM316!!!
tak jak dale postupovat....
Č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.