Здравствуйте.
Пытаюсь сделать термометр с засыпанием, и возбуждением средствами собаки
Режим сна - power-down, в доках указано что watchdog разбудит ( если включен )
Код из Atmel Studio:
/*
* temperature.c
*
* Created: 09.04.2017 18:28:11
* Author : Artur
*/
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include "hd44780.h"
#include "ds18b20.h"
ISR (WDT_vect)
{
wdt_reset;
WDTCR = (1 << WDE) | (1 << WDCE); // разрешаем смотрящему псу работать
} // end
void lcd_puts(const char *s)
{
register char c;
while ( (c = *s++) ) {
HD44780_SEND_CHAR(c);
}
}
void wdt_init()
{
cli();
WDTCR = (1 << WDP2) | (1 << WDP1) | (1 << WDP0); // самая большая задержка на Atmega8a ( 2,048K (2,097,152) | 2.2s )
WDTCR = (1 << WDE) | (1 << WDCE); // разрешаем смотрящему псу работать
sei();
}
int main(void)
{
hd44780_init();
int temp;
char buf[3];
wdt_init();
while (1)
{
ds18b20convert( &PORTD, &DDRD, &PIND, ( 1 << 3 ), NULL );
//Delay (sensor needs time to perform conversion)
_delay_ms( 1000 );
//Read temperature (without ROM matching)
ds18b20read( &PORTD, &DDRD, &PIND, ( 1 << 3 ), NULL, &temp );
itoa(temp/16, buf, 10);
HD44780_SEND_CMD_CLEAR;
lcd_puts(buf);
MCUCR=(0 << SM2) | (1 << SM1) | (0 << SM0); // Power-down
}
}
Не могу скомпилировать из-за ошибки: Severity Code Description Project File Line
Warning 'WDT_vect' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr] temperature C:\Users\Artur\Documents\Atmel Studio\7.0\temperature\temperature\main.c 17
Не подскажите в чём дело ?
Нашёл таблицу с этими векторами - Atmega8 не участвует в списке тех, кто поддерживает WDT_vect
Не подскажите как быть ?