Hallöchen.
Ich versuche gerade bei nem XMEGA den Sleep Mode zu aktivieren.
Das klappt leider nicht ganz ohne Hilfe der oben genannten Funktion.
...
CodeBox C
Ich verstehe nicht was die genau macht.. Asm ist nicht meins!
Hiermit konfiguriere ich die Module die später im SleepMode mal nicht laufen sollen.
Rufe ich nur diese beiden auf, klappt der SleepMode nicht.. Rufe ich die oben genannte Funktion zum Schluss auf, geht er in den Tiefschlaf.
CodeBox C
Ich versuche gerade bei nem XMEGA den Sleep Mode zu aktivieren.
Das klappt leider nicht ganz ohne Hilfe der oben genannten Funktion.
...
CodeBox C
extern void sleep_cpu (void); #else #define sleep_cpu() \ do { \ __asm__ __volatile__ ( "sleep" "\n\t" :: ); \ } while(0) #endif
Ich verstehe nicht was die genau macht.. Asm ist nicht meins!
Hiermit konfiguriere ich die Module die später im SleepMode mal nicht laufen sollen.
Rufe ich nur diese beiden auf, klappt der SleepMode nicht.. Rufe ich die oben genannte Funktion zum Schluss auf, geht er in den Tiefschlaf.
CodeBox C
void xmega_set_sleep(enum sleep_mds sleep_mde) { PR.PRGEN = (USB_MODULE|AES_MODULE|EBI_MODULE|RTC_MODULE|EVSYS_MODULE|DMA_MODULE); PR.PRPA = (DAC_MODULE|ADC_MODULE|AC_MODULE); PR.PRPB = (DAC_MODULE|ADC_MODULE|AC_MODULE); PR.PRPC = (TWI_MODULE|USART1_MODULE|USART0_MODULE|SPI_MODULE|HIRES_MODULE|TC1_MODULE|TC0_MODULE); PR.PRPD = (TWI_MODULE|USART1_MODULE|USART0_MODULE|SPI_MODULE|HIRES_MODULE|TC1_MODULE|TC0_MODULE); PR.PRPE = (TWI_MODULE|USART1_MODULE|USART0_MODULE|SPI_MODULE|HIRES_MODULE|TC1_MODULE|TC0_MODULE); PR.PRPF = (TWI_MODULE|USART1_MODULE|USART0_MODULE|SPI_MODULE|HIRES_MODULE|TC1_MODULE|TC0_MODULE); SLEEP.CTRL = (STANDBY_MODE_gc); } void xmega_sleep(void) { SLEEP.CTRL = (1<<SLEEP_SEN_bp); }