32 #define _AVR_POWER_H_ 1
357 #if defined(__AVR_ATxmega16A4__) \
358 || defined(__AVR_ATxmega32A4__) \
359 || defined(__AVR_ATxmega64A1__) \
360 || defined(__AVR_ATxmega64A1U__) \
361 || defined(__AVR_ATxmega64A3__) \
362 || defined(__AVR_ATxmega128A1__) \
363 || defined(__AVR_ATxmega128A1U__) \
364 || defined(__AVR_ATxmega128A3__) \
365 || defined(__AVR_ATxmega192A3__) \
366 || defined(__AVR_ATxmega256A3__) \
367 || defined(__AVR_ATxmega256A3B__)
369 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
370 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
372 #define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
373 #define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
375 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
376 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
378 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
379 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
380 #define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
381 #define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
383 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
384 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
385 #define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
386 #define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
387 #define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
388 #define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
389 #define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
390 #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
392 #define power_all_enable() \
394 PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
395 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
396 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
397 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
398 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
399 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
400 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
404 #define power_all_disable() \
406 PR_PRGEN|= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
407 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
408 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
409 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
410 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
411 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
412 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
416 #if defined(__AVR_ATxmega16A4__) \
417 || defined(__AVR_ATxmega16D4__) \
418 || defined(__AVR_ATxmega32A4__) \
419 || defined(__AVR_ATxmega32D4__) \
420 || defined(__AVR_ATxmega64A1__) \
421 || defined(__AVR_ATxmega64A1U__) \
422 || defined(__AVR_ATxmega64A3__) \
423 || defined(__AVR_ATxmega64D3__) \
424 || defined(__AVR_ATxmega128A1__) \
425 || defined(__AVR_ATxmega128A1U__) \
426 || defined(__AVR_ATxmega128A3__) \
427 || defined(__AVR_ATxmega128D3__) \
428 || defined(__AVR_ATxmega192A3__) \
429 || defined(__AVR_ATxmega192D3__) \
430 || defined(__AVR_ATxmega256A3__) \
431 || defined(__AVR_ATxmega256A3B__)
434 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
435 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
437 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
438 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
440 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
441 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
442 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
443 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
445 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
446 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
447 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
448 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
450 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
451 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
452 #define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
453 #define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
454 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
455 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
456 #define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
457 #define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
459 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
460 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
461 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
462 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
463 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
464 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
465 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
466 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
468 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
469 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
470 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
471 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
472 #define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
473 #define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
474 #define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
475 #define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
477 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
478 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
479 #define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
480 #define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
481 #define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
482 #define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
483 #define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
484 #define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
486 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
487 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
488 #define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
489 #define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
490 #define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
491 #define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
492 #define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
493 #define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
495 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
496 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
497 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
498 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
499 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
500 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
501 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
502 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
506 #if defined(__AVR_ATxmega16D4__) \
507 || defined(__AVR_ATxmega32D4__) \
508 || defined(__AVR_ATxmega64D3__) \
509 || defined(__AVR_ATxmega128D3__) \
510 || defined(__AVR_ATxmega192D3__)
512 #define power_all_enable() \
514 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
515 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
516 PR_PRPB &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
517 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
518 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
519 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
520 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
524 #define power_all_disable() \
526 PR_PRGEN|= (uint8_t)(PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
527 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
528 PR_PRPB |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
529 PR_PRPC |= (uint8_t)(PR_TWI_bm|R_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
530 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
531 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
532 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
535 #elif defined(__AVR_ATmega640__) \
536 || defined(__AVR_ATmega1280__) \
537 || defined(__AVR_ATmega1281__) \
538 || defined(__AVR_ATmega2560__) \
539 || defined(__AVR_ATmega2561__)
541 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
542 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
544 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
545 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
547 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
548 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
550 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
551 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
553 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
554 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
556 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
557 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
559 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
560 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
562 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
563 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
565 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
566 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
568 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
569 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
571 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
572 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
574 #define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
575 #define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
577 #define power_usart3_enable() (PRR1 &= (uint8_t)~(1 << PRUSART3))
578 #define power_usart3_disable() (PRR1 |= (uint8_t)(1 << PRUSART3))
580 #define power_all_enable() \
582 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
583 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
586 #define power_all_disable() \
588 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
589 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
593 #elif defined(__AVR_ATmega128RFA1__)
595 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
596 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
598 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
599 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
601 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
602 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
604 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
605 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
607 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
608 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
610 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
611 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
613 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
614 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
616 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
617 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
619 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
620 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
622 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
623 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
625 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
626 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
628 #define power_all_enable() \
630 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
631 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
634 #define power_all_disable() \
636 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
637 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
641 #elif defined(__AVR_AT90USB646__) \
642 || defined(__AVR_AT90USB647__) \
643 || defined(__AVR_AT90USB1286__) \
644 || defined(__AVR_AT90USB1287__)
646 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
647 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
649 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
650 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
652 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
653 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
655 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
656 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
658 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
659 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
661 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
662 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
664 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
665 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
667 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
668 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
670 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
671 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
673 #define power_all_enable() \
675 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
676 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
679 #define power_all_disable() \
681 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
682 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
686 #elif defined(__AVR_ATmega32U4__) \
687 || defined(__AVR_ATmega16U4__)
690 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
691 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
693 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
694 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
696 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
697 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
699 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
700 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
702 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
703 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
705 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
706 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
708 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
709 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
711 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
712 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
714 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
715 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
717 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
718 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
720 #define power_all_enable() \
722 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
723 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
726 #define power_all_disable() \
728 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
729 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
733 #elif defined(__AVR_ATmega32U6__)
736 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
737 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
739 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
740 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
742 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
743 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
745 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
746 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
748 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
749 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
751 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
752 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
754 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
755 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
757 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
758 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
760 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
761 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
763 #define power_all_enable() \
765 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
766 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
769 #define power_all_disable() \
771 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
772 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
776 #elif defined(__AVR_AT90PWM1__)
778 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
779 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
781 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
782 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
784 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
785 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
787 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
788 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
791 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
792 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
795 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
796 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
799 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
800 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
802 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
803 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
806 #elif defined(__AVR_AT90PWM2__) \
807 || defined(__AVR_AT90PWM2B__) \
808 || defined(__AVR_AT90PWM3__) \
809 || defined(__AVR_AT90PWM3B__) \
810 || defined(__AVR_AT90PWM216__) \
811 || defined(__AVR_AT90PWM316__)
813 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
814 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
816 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
817 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
819 #define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART))
820 #define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART))
822 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
823 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
825 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
826 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
829 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
830 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
833 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
834 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
837 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
838 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
840 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
841 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
844 #elif defined(__AVR_AT90PWM81__)
846 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
847 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
849 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
850 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
852 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
853 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
856 #define power_pscr_enable() (PRR &= (uint8_t)~(1 << PRPSCR))
857 #define power_pscr_disable() (PRR |= (uint8_t)(1 << PRPSCR))
860 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
861 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
863 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
864 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
867 #elif defined(__AVR_ATmega165__) \
868 || defined(__AVR_ATmega165A__) \
869 || defined(__AVR_ATmega165P__) \
870 || defined(__AVR_ATmega325__) \
871 || defined(__AVR_ATmega325A__) \
872 || defined(__AVR_ATmega3250__) \
873 || defined(__AVR_ATmega3250A__) \
874 || defined(__AVR_ATmega645__) \
875 || defined(__AVR_ATmega645A__) \
876 || defined(__AVR_ATmega645P__) \
877 || defined(__AVR_ATmega6450__) \
878 || defined(__AVR_ATmega6450A__) \
879 || defined(__AVR_ATmega6450P__)
881 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
882 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
884 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
885 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
887 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
888 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
890 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
891 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
893 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
894 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
897 #elif defined(__AVR_ATmega169__) \
898 || defined(__AVR_ATmega169A__) \
899 || defined(__AVR_ATmega169P__) \
900 || defined(__AVR_ATmega169PA__) \
901 || defined(__AVR_ATmega329__) \
902 || defined(__AVR_ATmega329A__) \
903 || defined(__AVR_ATmega329P__) \
904 || defined(__AVR_ATmega329PA__) \
905 || defined(__AVR_ATmega3290__) \
906 || defined(__AVR_ATmega3290A__) \
907 || defined(__AVR_ATmega3290P__) \
908 || defined(__AVR_ATmega649__) \
909 || defined(__AVR_ATmega649A__) \
910 || defined(__AVR_ATmega649P__) \
911 || defined(__AVR_ATmega6490__) \
912 || defined(__AVR_ATmega6490A__) \
913 || defined(__AVR_ATmega6490P__)
915 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
916 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
918 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
919 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
921 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
922 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
924 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
925 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
927 #define power_lcd_enable() (PRR &= (uint8_t)~(1 << PRLCD))
928 #define power_lcd_disable() (PRR |= (uint8_t)(1 << PRLCD))
930 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
931 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
934 #elif defined(__AVR_ATmega164A__) \
935 || defined(__AVR_ATmega164P__) \
936 || defined(__AVR_ATmega324A__) \
937 || defined(__AVR_ATmega324P__) \
938 || defined(__AVR_ATmega324PA__) \
939 || defined(__AVR_ATmega644P__) \
940 || defined(__AVR_ATmega644A__) \
941 || defined(__AVR_ATmega644PA__)
943 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
944 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
946 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
947 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
949 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
950 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
952 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
953 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
955 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
956 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
958 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
959 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
961 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
962 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
964 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
965 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
967 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
968 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
971 #elif defined(__AVR_ATmega644__)
973 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
974 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
976 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
977 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
979 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
980 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
982 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
983 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
985 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
986 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
988 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
989 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
991 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
992 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
994 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
995 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
998 #elif defined(__AVR_ATmega406__)
1000 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1001 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1003 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1004 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1006 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1007 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1010 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
1011 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
1013 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
1014 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
1017 #elif defined(__AVR_ATmega48__) \
1018 || defined(__AVR_ATmega48A__) \
1019 || defined(__AVR_ATmega48P__) \
1020 || defined(__AVR_ATmega88__) \
1021 || defined(__AVR_ATmega88A__) \
1022 || defined(__AVR_ATmega88P__) \
1023 || defined(__AVR_ATmega88PA__) \
1024 || defined(__AVR_ATmega168__) \
1025 || defined(__AVR_ATmega168A__) \
1026 || defined(__AVR_ATmega168P__) \
1027 || defined(__AVR_ATmega328__) \
1028 || defined(__AVR_ATmega328P__) \
1029 || defined(__AVR_ATtiny48__) \
1030 || defined(__AVR_ATtiny88__)
1032 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1033 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1035 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1036 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1038 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
1039 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
1041 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1042 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1044 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1045 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1047 #define power_timer2_enable() (PRR &= (uint8_t)~(1 << PRTIM2))
1048 #define power_timer2_disable() (PRR |= (uint8_t)(1 << PRTIM2))
1050 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
1051 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
1053 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1054 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1057 #elif defined(__AVR_ATtiny24__) \
1058 || defined(__AVR_ATtiny24A__) \
1059 || defined(__AVR_ATtiny44__) \
1060 || defined(__AVR_ATtiny44A__) \
1061 || defined(__AVR_ATtiny84__) \
1062 || defined(__AVR_ATtiny84A__) \
1063 || defined(__AVR_ATtiny25__) \
1064 || defined(__AVR_ATtiny45__) \
1065 || defined(__AVR_ATtiny85__) \
1066 || defined(__AVR_ATtiny261__) \
1067 || defined(__AVR_ATtiny261A__) \
1068 || defined(__AVR_ATtiny461__) \
1069 || defined(__AVR_ATtiny461A__) \
1070 || defined(__AVR_ATtiny861__) \
1071 || defined(__AVR_ATtiny861A__) \
1072 || defined(__AVR_ATtiny43U__)
1074 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1075 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1077 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1078 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1080 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1081 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1084 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
1085 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
1087 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
1088 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
1091 #elif defined(__AVR_ATmega1284P__)
1094 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1095 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1097 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1098 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1100 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1101 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1103 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1104 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1106 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1107 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1109 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1110 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1112 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1113 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1115 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1116 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1118 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
1119 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
1121 #define power_all_enable() \
1123 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
1124 PRR1 &= (uint8_t)~(1<<PRTIM3); \
1127 #define power_all_disable() \
1129 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
1130 PRR1 |= (uint8_t)(1<<PRTIM3); \
1134 #elif defined(__AVR_ATmega32HVB__) \
1135 || defined(__AVR_ATmega32HVBREVB__) \
1136 || defined(__AVR_ATmega16HVB__) \
1137 || defined(__AVR_ATmega16HVBREVB__)
1140 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1141 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1143 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1144 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1146 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1147 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1150 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
1151 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
1153 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1154 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1156 #define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
1157 #define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
1159 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
1160 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
1163 #elif defined(__AVR_ATmega16M1__) \
1164 || defined(__AVR_ATmega32C1__) \
1165 || defined(__AVR_ATmega32M1__) \
1166 || defined(__AVR_ATmega64C1__) \
1167 || defined(__AVR_ATmega64M1__)
1169 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1170 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1172 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
1173 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
1175 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1176 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1178 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1179 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1181 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1182 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1184 #define power_psc_enable() (PRR &= (uint8_t)~(1 << PRPSC))
1185 #define power_psc_disable() (PRR |= (uint8_t)(1 << PRPSC))
1187 #define power_can_enable() (PRR &= (uint8_t)~(1 << PRCAN))
1188 #define power_can_disable() (PRR |= (uint8_t)(1 << PRCAN))
1190 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
1191 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
1194 #elif defined(__AVR_ATtiny167__) \
1195 || defined(__AVR_ATtiny87__)
1198 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1199 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1201 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
1202 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
1204 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1205 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1207 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1208 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1210 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1211 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1213 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
1214 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
1216 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
1217 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
1220 #elif defined(__AVR_AT90USB82__) \
1221 || defined(__AVR_AT90USB162__) \
1222 || defined(__AVR_ATmega8U2__) \
1223 || defined(__AVR_ATmega16U2__) \
1224 || defined(__AVR_ATmega32U2__)
1226 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1227 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1229 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1230 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1232 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1233 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1235 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
1236 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
1238 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1239 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1241 #define power_all_enable() \
1243 PRR0 &= (uint8_t)~((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
1244 PRR1 &= (uint8_t)~((1<<PRUSB)|(1<<PRUSART1)); \
1247 #define power_all_disable() \
1249 PRR0 |= (uint8_t)((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
1250 PRR1 |= (uint8_t)((1<<PRUSB)|(1<<PRUSART1)); \
1254 #elif defined(__AVR_AT90SCR100__)
1256 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1257 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1259 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1260 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1262 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1263 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1265 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1266 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1268 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1269 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1271 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1272 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1274 #define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
1275 #define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
1277 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
1278 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
1280 #define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
1281 #define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
1283 #define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
1284 #define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
1286 #define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
1287 #define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
1289 #define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
1290 #define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
1292 #define power_all_enable() \
1294 PRR0 &= (uint8_t)~((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
1295 PRR1 &= (uint8_t)~((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
1298 #define power_all_disable() \
1300 PRR0 |= (uint8_t)((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
1301 PRR1 |= (uint8_t)((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
1305 #elif defined(__AVR_ATtiny4__) \
1306 || defined(__AVR_ATtiny5__) \
1307 || defined(__AVR_ATtiny9__) \
1308 || defined(__AVR_ATtiny10__) \
1309 || defined(__AVR_ATtiny13A__) \
1311 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1312 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1314 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1315 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1317 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)))
1318 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)))
1321 #elif defined(__AVR_ATtiny20__) \
1322 || defined(__AVR_ATtiny40__)
1324 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1325 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1327 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1328 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1330 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1331 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1333 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1334 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1336 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
1337 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
1339 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
1340 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
1345 #if defined(__AVR_AT90CAN32__) \
1346 || defined(__AVR_AT90CAN64__) \
1347 || defined(__AVR_AT90CAN128__) \
1348 || defined(__AVR_AT90PWM1__) \
1349 || defined(__AVR_AT90PWM2__) \
1350 || defined(__AVR_AT90PWM2B__) \
1351 || defined(__AVR_AT90PWM3__) \
1352 || defined(__AVR_AT90PWM3B__) \
1353 || defined(__AVR_AT90PWM216__) \
1354 || defined(__AVR_AT90PWM316__) \
1355 || defined(__AVR_AT90SCR100__) \
1356 || defined(__AVR_AT90USB646__) \
1357 || defined(__AVR_AT90USB647__) \
1358 || defined(__AVR_AT90USB82__) \
1359 || defined(__AVR_AT90USB1286__) \
1360 || defined(__AVR_AT90USB1287__) \
1361 || defined(__AVR_AT90USB162__) \
1362 || defined(__AVR_ATmega1280__) \
1363 || defined(__AVR_ATmega1281__) \
1364 || defined(__AVR_ATmega128RFA1__) \
1365 || defined(__AVR_ATmega1284P__) \
1366 || defined(__AVR_ATmega162__) \
1367 || defined(__AVR_ATmega164A__) \
1368 || defined(__AVR_ATmega164P__) \
1369 || defined(__AVR_ATmega165__) \
1370 || defined(__AVR_ATmega165A__) \
1371 || defined(__AVR_ATmega165P__) \
1372 || defined(__AVR_ATmega168__) \
1373 || defined(__AVR_ATmega168P__) \
1374 || defined(__AVR_ATmega169__) \
1375 || defined(__AVR_ATmega169A__) \
1376 || defined(__AVR_ATmega169P__) \
1377 || defined(__AVR_ATmega169PA__) \
1378 || defined(__AVR_ATmega16U4__) \
1379 || defined(__AVR_ATmega2560__) \
1380 || defined(__AVR_ATmega2561__) \
1381 || defined(__AVR_ATmega324A__) \
1382 || defined(__AVR_ATmega324P__) \
1383 || defined(__AVR_ATmega325__) \
1384 || defined(__AVR_ATmega325A__) \
1385 || defined(__AVR_ATmega3250__) \
1386 || defined(__AVR_ATmega3250A__) \
1387 || defined(__AVR_ATmega328__) \
1388 || defined(__AVR_ATmega328P__) \
1389 || defined(__AVR_ATmega329__) \
1390 || defined(__AVR_ATmega329A__) \
1391 || defined(__AVR_ATmega329P__) \
1392 || defined(__AVR_ATmega329PA__) \
1393 || defined(__AVR_ATmega3290__) \
1394 || defined(__AVR_ATmega3290A__) \
1395 || defined(__AVR_ATmega32C1__) \
1396 || defined(__AVR_ATmega32HVB__) \
1397 || defined(__AVR_ATmega32HVBREVB__) \
1398 || defined(__AVR_ATmega16HVB__) \
1399 || defined(__AVR_ATmega16HVBREVB__) \
1400 || defined(__AVR_ATmega32M1__) \
1401 || defined(__AVR_ATmega32U2__) \
1402 || defined(__AVR_ATmega32U4__) \
1403 || defined(__AVR_ATmega32U6__) \
1404 || defined(__AVR_ATmega48__) \
1405 || defined(__AVR_ATmega48P__) \
1406 || defined(__AVR_ATmega640__) \
1407 || defined(__AVR_ATmega649P__) \
1408 || defined(__AVR_ATmega644__) \
1409 || defined(__AVR_ATmega644A__) \
1410 || defined(__AVR_ATmega644P__) \
1411 || defined(__AVR_ATmega644PA__) \
1412 || defined(__AVR_ATmega645__) \
1413 || defined(__AVR_ATmega645A__) \
1414 || defined(__AVR_ATmega645P__) \
1415 || defined(__AVR_ATmega6450__) \
1416 || defined(__AVR_ATmega6450A__) \
1417 || defined(__AVR_ATmega6450P__) \
1418 || defined(__AVR_ATmega649__) \
1419 || defined(__AVR_ATmega649A__) \
1420 || defined(__AVR_ATmega6490__) \
1421 || defined(__AVR_ATmega6490A__) \
1422 || defined(__AVR_ATmega6490P__) \
1423 || defined(__AVR_ATmega88__) \
1424 || defined(__AVR_ATmega88P__) \
1425 || defined(__AVR_ATmega8U2__) \
1426 || defined(__AVR_ATmega16U2__) \
1427 || defined(__AVR_ATmega32U2__) \
1428 || defined(__AVR_ATtiny48__) \
1429 || defined(__AVR_ATtiny167__) \
1430 || defined(__DOXYGEN__)
1475 #if defined(__AVR_ATmega128RFA1__)
1476 , clock_div_1_rc = 15
1481 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
1492 void clock_prescale_set(clock_div_t __x)
1495 __asm__ __volatile__ (
1496 "in __tmp_reg__,__SREG__" "\n\t"
1500 "out __SREG__, __tmp_reg__"
1503 "M" (_SFR_MEM_ADDR(CLKPR)),
1513 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1516 #elif defined(__AVR_ATtiny24__) \
1517 || defined(__AVR_ATtiny24A__) \
1518 || defined(__AVR_ATtiny44__) \
1519 || defined(__AVR_ATtiny44A__) \
1520 || defined(__AVR_ATtiny84__) \
1521 || defined(__AVR_ATtiny84A__) \
1522 || defined(__AVR_ATtiny25__) \
1523 || defined(__AVR_ATtiny45__) \
1524 || defined(__AVR_ATtiny85__) \
1525 || defined(__AVR_ATtiny261A__) \
1526 || defined(__AVR_ATtiny261__) \
1527 || defined(__AVR_ATtiny461__) \
1528 || defined(__AVR_ATtiny461A__) \
1529 || defined(__AVR_ATtiny861__) \
1530 || defined(__AVR_ATtiny861A__) \
1531 || defined(__AVR_ATtiny2313__) \
1532 || defined(__AVR_ATtiny2313A__) \
1533 || defined(__AVR_ATtiny4313__) \
1534 || defined(__AVR_ATtiny13__) \
1535 || defined(__AVR_ATtiny13A__) \
1536 || defined(__AVR_ATtiny43U__) \
1551 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
1553 void clock_prescale_set(clock_div_t __x)
1556 __asm__ __volatile__ (
1557 "in __tmp_reg__,__SREG__" "\n\t"
1561 "out __SREG__, __tmp_reg__"
1564 "I" (_SFR_IO_ADDR(CLKPR)),
1570 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
unsigned char uint8_t
Definition: stdint.h:79
#define _BV(bit)
Definition: sfr_defs.h:208