согласен, проглядял
однако кажется нашёл ошибку в avr-libc
режимы сна по даташиту:
a вот из WinAvr\avr\include\avr\sleep.h
Код
#elif defined(__AVR_ATtiny2313__)
#define SLEEP_MODE_IDLE 0
#define SLEEP_MODE_PWR_DOWN (_BV(SM0) | _BV(SM1))
#define SLEEP_MODE_STANDBY _BV(SM1)
#define set_sleep_mode(mode) \
do { \
_SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1))) | (mode)); \
} while(0)
в строке
Код
#define SLEEP_MODE_PWR_DOWN (_BV(SM0) | _BV(SM1))
устанавливают в "1" оба бита, но это режим Standby. стало быть, следует поменять их местами. куда рекламацию слать? )
это в версии, поставляемой с последним WinAVR (1.6.6) и в последней на офф.сайте (1.6.7).
Сообщение отредактировал timex - Nov 23 2009, 14:03