Jsem z toho celkem zmatený. Vyrábím si program na AT MEGA64 v Code Vision AVR v jazyce C, který bude zpracovávat externí přerušení.
Z různých příkladů na webu jsem našel, že používají hlavičkový soubor “interrupt.h”, ten ale ve složce /inc mezi ostatními .h soubory nemám. Chci se tedy zeptat, jestli se .h soubory nějak stahují, protože na webu jsem našel pro mě nepochopitelné popisy - představoval jsem si to jako hotový soubor, který jenom uložím k ostatním a hotovo, ale tak to asi není.
Jinak v souboru mega64.h, který mám includovaný v programu, tak nějaká přerušení jsou: // Interrupt vectors definitions #define EXT_INT0 2 #define EXT_INT1 3 #define EXT_INT2 4 #define EXT_INT3 5 #define EXT_INT4 6 #define EXT_INT5 7 #define EXT_INT6 8 #define EXT_INT7 9
…
Pokud by ale toto stačilo, tak proč všichni autoři ještě používají odněkud hlavičkový soubor interrupt.h ?
Předem moc děkuji za osvětlení, jak to s těmi headry vlastně je.
administrator: přejmenováno z "hlavičkové soubory"
Cvavr opravdu neobsahuje soubor ‘interrupt.h’.
Neznamená to že takový není třeba?
Na stránce electronics-base.com/avr-tut … t0-example je příklad na přerušení.
Žádný interrupt.h tam nikde nevidím.
Takže by mne zajímalo kteří to jsou ti všichni autoři??
Nejsou to samozřejmě úplně všichni, ale je těch případů, kde ten header používají opravdu hodně. A proto mi to nejde do hlavy. Žil jsem v tom, že .h soubory budou mít všechna vývojová prostředí stejné, že jsou nějakým způsobem standardní (aspoň ty nejrozšířenější, a vzhledem k počtu aplikací jsem měl za to, že interrupt patří mezi ně)
Respektive odkud teda autoři ty soubory berou ? Přímo ze svých prostředí a tedy znamená to, že pokud ho tam nemám, tak jej nepotřebuji ?
Prostě tomu vůbec nerozumím…
Ani jeden nepouziva Code Vision. V prvom odkaze autor dokonca pise, ze pouzil AVR Studio 5/6.
Aby si vedel pouzivat kniznice ako vsetci ti ostatni autori, potrebujes mat nainstalovane WinAVR, s ktorym ziskas aj tie kniznice.
Alebo AVRToolchine.
Ty programy jsou napsané pro překladač AVR-GCC, který se používá v prostředí Atmel Studio.
Poznáš to podle toho, že na začátku mají #include <avr/io.h>
Bez úprav nejdou přeložit v CodeVision.
Ve světě mikrokontrolérů potřebuje jazyk C různá rozšíření, která nejsou nijak normalizovaná.
Takže každý autor překladače to udělá po svém.
Ok. Teď už v tom mám trochu jasněji a pravda je, že vzhledem k různým typům mcuasi nejde headry úplně standardizovat.
Takže teoreticky se můžu spolehnout na soubor** mega64.h**, kde už jsou interrupty uvedené a v programu by to mohlo vypadat nějak takhle:
#include <mega64.h>
…
interrupt [EXT_INT0] void preruseni (void)
{
// nějaký kód
}