Definícia TOIE0 v hlavičkových súboroch

Príkazom
TIMSK |= (1<<TOIE0) ;
chcem povoliť prerušenie.
Problém je, že v hlavičkovom súbore (napr. io2313.h) je konštanta TOIE0:
#define TOIE0 1
A program do obsluhy prerušenia neskočí (ak je TOIE0 0, potom je všetko OK.
Prosím, čo som prehliadol ?
Ešte poznámka, sú aj také hlavičkové súbory, kde:
#define TOIE0 0
Jedná sa o WinAVR.
Ďakujem

Jaksi jsem zcela úplně nepochopil tvůj dotaz.
Oprav mne, pokud se spletu.

1.) Knihovny MCU ve většině případů jsou v pořádku.
Já osobně jsem aspoň na žádnou vadnou nenarazil.
Takže jakýkoliv zásah do knihoven máš na vlastní triko.

2.) Mně spíše připadá, že plaveš v nastavení časovače.
Registr TIMSK má 3 programovatelné bity:

0 … OCIE0A => Vyvolat přerušení při dosažení hodnoty uvedené v OCR0A
1 … TOIE0A => Přerušení při klasickém přetečení
2 … OCIE0B => Vyvolat přerušení při dosažení hodnoty uvedené v OCR0B

Takže pokud jsem tvůj dotaz správně pochopil, tak jsi zaměnil TOIE0A s OCIE0A.
V tom případě ti to bude sice chodit stejně jak v normálním režimu, ale není to to pravé ořechové.

3.) Nevím jistě proč ti procesor ignoroval nastavení TOIE0A.
Nejčastější chybou bývá špatně zvolený režim.
Pokud chceš pracovat čistě s přetečením, tak doporučuji “normální režim”.
(bity WGM01 a WGM00 v registrech TCCR0A a TCCR0B ponech v nule)

Bit TOIE není u všech procesorů na stejné pozici.

U Attiny2313 je bit TOIE0 na adrese TIMSK.1 takže je definován
#define TOIE0 1
Přerušení povolíme příkazem
TIMSK |= (1<<1) nebo TIMSK |= (1<<TOIE0)

U Mega8 je TOIE0 na adrese TIMSK.0 a proto je definován
#define TOIE0 0
Přerušení povolíme příkazem
TIMSK |= (1<<0) nebo TIMSK |= (1<<TOIE0)

Takže tvůj zápis je správný pro oba výše uvedené procesory.

Je v Project Options vybraný správný typ procesoru?
Kde nefunguje? V reálu nebo v simulátoru?
Atd… nejlépe by bylo ukázat kód.

Takže problém bol v tom, že v menu Project->Configuration Options som mal správny typ procesora (attiny2313) ale v menu Debug->Select device and debug platform som mal ATmega8.
Sypem si popol na hlavu a ďakujem za nakopnutie.

Kdyby ti náhodou někdy v simulátoru nepracoval správně hw (třeba pwm módy u čítačů) a už z toho polezeš po stropě, zkus to nalejt do mcu. V simulátoru je pár chybek :wink:.

Ja viem, je to des :slight_smile:

tiez to mohli trochu prepojit, tiez som sa na tom par krat sekol. Hlavne ak som nieco vyvijal, procesor som nahradil v projekte vyssim, ale na debug som pozabuudol. Skratka Atmel. :slight_smile: