ATmega16 - 'MCUCSR' undeclared

Gast #3240579
Lesenswert?

Hallo,

versuche grade einen Watchdog auf einem ATmega16 zu aktivieren.

Leider gibt das AVR-Studio folgende Fehlermeldung aus:

'MCUCSR' undeclared (first use in this function)

AVR/WDT.h habe ich ins Programm eingebunden.


Als Beispielprogramm verwende ich den Code aus dem Buch "AVR" von 
Florian Schäffer (S.179).

1
#include <avr/wdt.h>
2
if ((MCUCSR & (1<<WDRF)))
3
{
4
MCUCSR=0;
5
}
6
else
7
{
8
wdt_enable (WDTO_2S);
9

10
usw...

Kann jemand sagen, woran es liegt?
Gast #3241009
Lesenswert?

Johann L. schrieb:
> Es fehlt ein #include <avr/io.h>, und das Programm muß mit
> -mmcu=atmega16 compiliert werden.

Die #include <avr/io.h> ist im Header dabei, das Problem bleibt aber 
bestehen.

Meinst du damit, dass im AVR-Studio im Fenster "Main Projekt Options" 
unter "Device:" der Atmega16 eingestellt sein soll? Wenn ja, dem ist so 
und das Restprogramm funktioniert auch problemlos, wenn keine 
Watchdog-Programmbestandteile eingebaut sind.
Gast #3241216
Lesenswert?

Frage: was ist, wenn ich den Watchdog hardwaremäßig über die WDTON-Fuse 
aktiviere?

Was muss dann softwareseitig noch gemacht werden, um ihn zu "füttern" 
(seinen Timer regelmäßig zu reseten) und die Auslösezeit auf 2 Sekunden 
einzustellen?
Gast #3241223
Lesenswert?

A. K. schrieb:
> Je nach Controller heisst es mal so mal so. Da gibts neue mit
> MCUCR/MCUSR (Mega88/Mega164) und alte mit MCUCSR (Mega8/16). Wenn man
> dann den falschen Controller einstellt, dann wirds nix.

Wo steht denn, was für den jeweiligen Controller die richtige 
Bezeichnung ist?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren