so, jetzt habe ich rumprobiert.
Mit IDLE scheints mit einem normalen Msleep zu gehen:
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:#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; }
Mit Interrupts gehts wahrscheinlich - hilft mir bitte jemand dabei? (Ich kapiers nicht!)Code:... set_sleep_mode ( SLEEP_MODE_PWR_SAVE ); ASSR = (1<<AS2); ...
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.







 
			
			 
					
					
					
						 Zitieren
Zitieren
Lesezeichen