so, jetzt habe ich rumprobiert.
Mit IDLE scheints mit einem normalen Msleep zu gehen:
	Code:
	#include "asuro.h"
#include <avr/interrupt.h>
#include <avr/sleep.h>
//------------------------------------------------------------------
int main(void)
{
	Init();
	StatusLED(OFF);
	BackLED(ON,ON);
	MotorDir(FWD,FWD);
	MotorSpeed(200,0);
	Msleep(5000);
	set_sleep_mode ( SLEEP_MODE_IDLE );
	for (int16_t i = 1; i <= 10; ++i)
		{
			BackLED(OFF,OFF);
			StatusLED(YELLOW);
			sleep_enable();
			sleep_mode();
			sleep_disable();
			Msleep(500);
		}
	MotorSpeed(0,0);
	StatusLED(RED);
  	while (1);
  	return 0;
}
 das gleiche mit PWR_SAVE wie zu erwarten leider nicht: die BackLEDs gehen brav aus, die StatusLED wird gelb, der Motor dreht sich schneller und so bleibts.
	Code:
	...
set_sleep_mode ( SLEEP_MODE_PWR_SAVE );
ASSR = (1<<AS2);
...
 Mit Interrupts gehts wahrscheinlich - hilft mir bitte jemand dabei? (Ich kapiers nicht!)
da gibt es noch eine Anleitung: ...WinAVR-20070525/doc/avr-libc/avr-libc-user-manual/group__avr__sleep.html
und da:http://www.mikrocontroller.net/articles/Sleep_Mode
Gruss
M.
						
					
Lesezeichen