32 #define _AVR_POWER_H_ 1
417 #if defined(__AVR_ATxmega16A4__) \
418 || defined(__AVR_ATxmega32A4__) \
419 || defined(__AVR_ATxmega64A1__) \
420 || defined(__AVR_ATxmega64A1U__) \
421 || defined(__AVR_ATxmega64A3__) \
422 || defined(__AVR_ATxmega128A1__) \
423 || defined(__AVR_ATxmega128A1U__) \
424 || defined(__AVR_ATxmega128A3__) \
425 || defined(__AVR_ATxmega192A3__) \
426 || defined(__AVR_ATxmega256A3__) \
427 || defined(__AVR_ATxmega256A3B__)
429 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
430 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
432 #define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
433 #define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
435 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
436 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
438 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
439 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
440 #define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
441 #define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
443 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
444 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
445 #define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
446 #define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
447 #define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
448 #define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
449 #define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
450 #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
452 #define power_all_enable() \
454 PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
455 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
456 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
457 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); \
458 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); \
459 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); \
460 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); \
464 #define power_all_disable() \
466 PR_PRGEN|= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
467 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
468 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
469 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); \
470 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); \
471 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); \
472 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); \
476 #if defined(__AVR_ATxmega16A4__) \
477 || defined(__AVR_ATxmega16D4__) \
478 || defined(__AVR_ATxmega32A4__) \
479 || defined(__AVR_ATxmega32D4__) \
480 || defined(__AVR_ATxmega64A1__) \
481 || defined(__AVR_ATxmega64A1U__) \
482 || defined(__AVR_ATxmega64A3__) \
483 || defined(__AVR_ATxmega64D3__) \
484 || defined(__AVR_ATxmega128A1__) \
485 || defined(__AVR_ATxmega128A1U__) \
486 || defined(__AVR_ATxmega128A3__) \
487 || defined(__AVR_ATxmega128D3__) \
488 || defined(__AVR_ATxmega192A3__) \
489 || defined(__AVR_ATxmega192D3__) \
490 || defined(__AVR_ATxmega256A3__) \
491 || defined(__AVR_ATxmega256A3B__)
494 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
495 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
497 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
498 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
500 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
501 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
502 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
503 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
505 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
506 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
507 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
508 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
510 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
511 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
512 #define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
513 #define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
514 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
515 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
516 #define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
517 #define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
519 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
520 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
521 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
522 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
523 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
524 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
525 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
526 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
528 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
529 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
530 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
531 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
532 #define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
533 #define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
534 #define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
535 #define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
537 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
538 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
539 #define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
540 #define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
541 #define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
542 #define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
543 #define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
544 #define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
546 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
547 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
548 #define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
549 #define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
550 #define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
551 #define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
552 #define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
553 #define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
555 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
556 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
557 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
558 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
559 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
560 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
561 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
562 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
566 #if defined(__AVR_ATxmega16D4__) \
567 || defined(__AVR_ATxmega32D4__) \
568 || defined(__AVR_ATxmega64D3__) \
569 || defined(__AVR_ATxmega128D3__) \
570 || defined(__AVR_ATxmega192D3__)
572 #define power_all_enable() \
574 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
575 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
576 PR_PRPB &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
577 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
578 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
579 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
580 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
584 #define power_all_disable() \
586 PR_PRGEN|= (uint8_t)(PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
587 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
588 PR_PRPB |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
589 PR_PRPC |= (uint8_t)(PR_TWI_bm|R_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
590 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
591 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
592 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
595 #elif defined(__AVR_ATmega640__) \
596 || defined(__AVR_ATmega1280__) \
597 || defined(__AVR_ATmega1281__) \
598 || defined(__AVR_ATmega2560__) \
599 || defined(__AVR_ATmega2561__)
601 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
602 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
604 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
605 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
607 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
608 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
610 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
611 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
613 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
614 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
616 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
617 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
619 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
620 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
622 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
623 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
625 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
626 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
628 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
629 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
631 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
632 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
634 #define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
635 #define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
637 #define power_usart3_enable() (PRR1 &= (uint8_t)~(1 << PRUSART3))
638 #define power_usart3_disable() (PRR1 |= (uint8_t)(1 << PRUSART3))
640 #define power_all_enable() \
642 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
643 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
646 #define power_all_disable() \
648 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
649 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
653 #elif defined(__AVR_ATmega128RFA1__)
655 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
656 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
658 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
659 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
661 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
662 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
664 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
665 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
667 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
668 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
670 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
671 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
673 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
674 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
676 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
677 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
679 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
680 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
682 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
683 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
685 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
686 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
688 #define power_all_enable() \
690 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
691 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
694 #define power_all_disable() \
696 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
697 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
700 #elif defined(__AVR_ATmega256RFR2__) \
701 || defined(__AVR_ATmega128RFR2__) \
702 || defined(__AVR_ATmega64RFR2__) \
703 || defined(__AVR_ATmega2564RFR2__) \
704 || defined(__AVR_ATmega1284RFR2__) \
705 || defined(__AVR_ATmega644RFR2__) \
707 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
708 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
710 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
711 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
713 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
714 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
716 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
717 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
719 #define power_pga_enable() (PRR0 &= (uint8_t)~(1 << PRPGA))
720 #define power_pga_disable() (PRR0 |= (uint8_t)(1 << PRPGA))
722 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
723 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
725 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
726 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
728 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
729 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
731 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
732 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
734 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
735 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
737 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
738 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
740 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
741 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
743 #define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
744 #define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
746 #define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
747 #define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
749 #define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
750 #define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
752 #define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
753 #define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
755 #define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
756 #define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
758 #define power_all_enable() \
760 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
761 PRR1 &= (uint8_t)~((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
762 PRR2 &= (uint8_t)~((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
765 #define power_all_disable() \
767 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
768 PRR1 |= (uint8_t)((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
769 PRR2 |= (uint8_t)((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
772 #elif defined(__AVR_AT90USB646__) \
773 || defined(__AVR_AT90USB647__) \
774 || defined(__AVR_AT90USB1286__) \
775 || defined(__AVR_AT90USB1287__)
777 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
778 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
780 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
781 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
783 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
784 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
786 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
787 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
789 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
790 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
792 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
793 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
795 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
796 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
798 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
799 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
801 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
802 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
804 #define power_all_enable() \
806 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
807 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
810 #define power_all_disable() \
812 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
813 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
817 #elif defined(__AVR_ATmega32U4__) \
818 || defined(__AVR_ATmega16U4__)
821 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
822 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
824 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
825 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
827 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
828 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
830 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
831 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
833 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
834 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
836 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
837 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
839 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
840 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
842 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
843 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
845 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
846 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
848 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
849 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
851 #define power_all_enable() \
853 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
854 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
857 #define power_all_disable() \
859 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
860 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
864 #elif defined(__AVR_ATmega32U6__)
867 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
868 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
870 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
871 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
873 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
874 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
876 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
877 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
879 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
880 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
882 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
883 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
885 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
886 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
888 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
889 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
891 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
892 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
894 #define power_all_enable() \
896 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
897 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
900 #define power_all_disable() \
902 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
903 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
907 #elif defined(__AVR_AT90PWM1__)
909 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
910 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
912 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
913 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
915 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
916 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
918 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
919 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
922 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
923 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
926 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
927 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
930 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
931 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
933 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
934 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
937 #elif defined(__AVR_AT90PWM2__) \
938 || defined(__AVR_AT90PWM2B__) \
939 || defined(__AVR_AT90PWM3__) \
940 || defined(__AVR_AT90PWM3B__) \
941 || defined(__AVR_AT90PWM216__) \
942 || defined(__AVR_AT90PWM316__)
944 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
945 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
947 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
948 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
950 #define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART))
951 #define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART))
953 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
954 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
956 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
957 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
960 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
961 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
964 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
965 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
968 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
969 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
971 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
972 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
975 #elif defined(__AVR_AT90PWM81__)
977 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
978 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
980 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
981 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
983 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
984 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
987 #define power_pscr_enable() (PRR &= (uint8_t)~(1 << PRPSCR))
988 #define power_pscr_disable() (PRR |= (uint8_t)(1 << PRPSCR))
991 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
992 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
994 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
995 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
998 #elif defined(__AVR_ATmega165__) \
999 || defined(__AVR_ATmega165A__) \
1000 || defined(__AVR_ATmega165P__) \
1001 || defined(__AVR_ATmega325__) \
1002 || defined(__AVR_ATmega325A__) \
1003 || defined(__AVR_ATmega3250__) \
1004 || defined(__AVR_ATmega3250A__) \
1005 || defined(__AVR_ATmega645__) \
1006 || defined(__AVR_ATmega645A__) \
1007 || defined(__AVR_ATmega645P__) \
1008 || defined(__AVR_ATmega6450__) \
1009 || defined(__AVR_ATmega6450A__) \
1010 || defined(__AVR_ATmega6450P__)
1012 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1013 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1015 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1016 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1018 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
1019 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
1021 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1022 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1024 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
1025 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
1028 #elif defined(__AVR_ATmega169__) \
1029 || defined(__AVR_ATmega169A__) \
1030 || defined(__AVR_ATmega169P__) \
1031 || defined(__AVR_ATmega169PA__) \
1032 || defined(__AVR_ATmega329__) \
1033 || defined(__AVR_ATmega329A__) \
1034 || defined(__AVR_ATmega329P__) \
1035 || defined(__AVR_ATmega329PA__) \
1036 || defined(__AVR_ATmega3290__) \
1037 || defined(__AVR_ATmega3290A__) \
1038 || defined(__AVR_ATmega3290P__) \
1039 || defined(__AVR_ATmega649__) \
1040 || defined(__AVR_ATmega649A__) \
1041 || defined(__AVR_ATmega649P__) \
1042 || defined(__AVR_ATmega6490__) \
1043 || defined(__AVR_ATmega6490A__) \
1044 || defined(__AVR_ATmega6490P__)
1046 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1047 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1049 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1050 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1052 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
1053 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
1055 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1056 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1058 #define power_lcd_enable() (PRR &= (uint8_t)~(1 << PRLCD))
1059 #define power_lcd_disable() (PRR |= (uint8_t)(1 << PRLCD))
1061 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
1062 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
1065 #elif defined(__AVR_ATmega164A__) \
1066 || defined(__AVR_ATmega164P__) \
1067 || defined(__AVR_ATmega324A__) \
1068 || defined(__AVR_ATmega324P__) \
1069 || defined(__AVR_ATmega324PA__) \
1070 || defined(__AVR_ATmega644P__) \
1071 || defined(__AVR_ATmega644A__) \
1072 || defined(__AVR_ATmega644PA__)
1074 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1075 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1077 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1078 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1080 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1081 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1083 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
1084 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
1086 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1087 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1089 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1090 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1092 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1093 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1095 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1096 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1098 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1099 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1102 #elif defined(__AVR_ATmega644__)
1104 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1105 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1107 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1108 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1110 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1111 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1113 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1114 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1116 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1117 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1119 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1120 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1122 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1123 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1125 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1126 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1129 #elif defined(__AVR_ATmega406__)
1131 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1132 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1134 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1135 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1137 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1138 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1141 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
1142 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
1144 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
1145 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
1148 #elif defined(__AVR_ATmega48__) \
1149 || defined(__AVR_ATmega48A__) \
1150 || defined(__AVR_ATmega48P__) \
1151 || defined(__AVR_ATmega88__) \
1152 || defined(__AVR_ATmega88A__) \
1153 || defined(__AVR_ATmega88P__) \
1154 || defined(__AVR_ATmega88PA__) \
1155 || defined(__AVR_ATmega168__) \
1156 || defined(__AVR_ATmega168A__) \
1157 || defined(__AVR_ATmega168P__) \
1158 || defined(__AVR_ATmega328__) \
1159 || defined(__AVR_ATmega328P__) \
1160 || defined(__AVR_ATtiny48__) \
1161 || defined(__AVR_ATtiny88__)
1163 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1164 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1166 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1167 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1169 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
1170 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
1172 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1173 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1175 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1176 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1178 #define power_timer2_enable() (PRR &= (uint8_t)~(1 << PRTIM2))
1179 #define power_timer2_disable() (PRR |= (uint8_t)(1 << PRTIM2))
1181 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
1182 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
1184 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1185 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
1188 #elif defined(__AVR_ATtiny24__) \
1189 || defined(__AVR_ATtiny24A__) \
1190 || defined(__AVR_ATtiny44__) \
1191 || defined(__AVR_ATtiny44A__) \
1192 || defined(__AVR_ATtiny84__) \
1193 || defined(__AVR_ATtiny84A__) \
1194 || defined(__AVR_ATtiny25__) \
1195 || defined(__AVR_ATtiny45__) \
1196 || defined(__AVR_ATtiny85__) \
1197 || defined(__AVR_ATtiny261__) \
1198 || defined(__AVR_ATtiny261A__) \
1199 || defined(__AVR_ATtiny461__) \
1200 || defined(__AVR_ATtiny461A__) \
1201 || defined(__AVR_ATtiny861__) \
1202 || defined(__AVR_ATtiny861A__) \
1203 || defined(__AVR_ATtiny43U__)
1205 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1206 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1208 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1209 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1211 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1212 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1215 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
1216 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
1218 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
1219 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
1222 #elif defined(__AVR_ATmega1284P__)
1225 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1226 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1228 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1229 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1231 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1232 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1234 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1235 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1237 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1238 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1240 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1241 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1243 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1244 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1246 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1247 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1249 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
1250 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
1252 #define power_all_enable() \
1254 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
1255 PRR1 &= (uint8_t)~(1<<PRTIM3); \
1258 #define power_all_disable() \
1260 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
1261 PRR1 |= (uint8_t)(1<<PRTIM3); \
1265 #elif defined(__AVR_ATmega32HVB__) \
1266 || defined(__AVR_ATmega32HVBREVB__) \
1267 || defined(__AVR_ATmega16HVB__) \
1268 || defined(__AVR_ATmega16HVBREVB__)
1271 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1272 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1274 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1275 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1277 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1278 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1281 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
1282 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
1284 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1285 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1287 #define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
1288 #define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
1290 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
1291 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
1294 #elif defined(__AVR_ATmega16M1__) \
1295 || defined(__AVR_ATmega32C1__) \
1296 || defined(__AVR_ATmega32M1__) \
1297 || defined(__AVR_ATmega64C1__) \
1298 || defined(__AVR_ATmega64M1__)
1300 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1301 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1303 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
1304 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
1306 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1307 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1309 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1310 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1312 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1313 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1315 #define power_psc_enable() (PRR &= (uint8_t)~(1 << PRPSC))
1316 #define power_psc_disable() (PRR |= (uint8_t)(1 << PRPSC))
1318 #define power_can_enable() (PRR &= (uint8_t)~(1 << PRCAN))
1319 #define power_can_disable() (PRR |= (uint8_t)(1 << PRCAN))
1321 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
1322 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
1325 #elif defined(__AVR_ATtiny167__) \
1326 || defined(__AVR_ATtiny87__)
1329 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1330 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1332 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
1333 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
1335 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1336 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1338 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1339 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1341 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1342 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1344 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
1345 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
1347 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
1348 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
1351 #elif defined(__AVR_AT90USB82__) \
1352 || defined(__AVR_AT90USB162__) \
1353 || defined(__AVR_ATmega8U2__) \
1354 || defined(__AVR_ATmega16U2__) \
1355 || defined(__AVR_ATmega32U2__)
1357 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1358 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1360 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1361 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1363 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1364 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1366 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
1367 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
1369 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1370 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1372 #define power_all_enable() \
1374 PRR0 &= (uint8_t)~((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
1375 PRR1 &= (uint8_t)~((1<<PRUSB)|(1<<PRUSART1)); \
1378 #define power_all_disable() \
1380 PRR0 |= (uint8_t)((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
1381 PRR1 |= (uint8_t)((1<<PRUSB)|(1<<PRUSART1)); \
1385 #elif defined(__AVR_AT90SCR100__)
1387 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1388 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1390 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1391 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1393 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1394 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1396 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1397 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1399 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1400 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1402 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1403 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1405 #define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
1406 #define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
1408 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
1409 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
1411 #define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
1412 #define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
1414 #define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
1415 #define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
1417 #define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
1418 #define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
1420 #define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
1421 #define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
1423 #define power_all_enable() \
1425 PRR0 &= (uint8_t)~((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
1426 PRR1 &= (uint8_t)~((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
1429 #define power_all_disable() \
1431 PRR0 |= (uint8_t)((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
1432 PRR1 |= (uint8_t)((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
1436 #elif defined(__AVR_ATtiny4__) \
1437 || defined(__AVR_ATtiny5__) \
1438 || defined(__AVR_ATtiny9__) \
1439 || defined(__AVR_ATtiny10__) \
1440 || defined(__AVR_ATtiny13A__) \
1442 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1443 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1445 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1446 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1448 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)))
1449 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)))
1452 #elif defined(__AVR_ATtiny20__) \
1453 || defined(__AVR_ATtiny40__)
1455 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
1456 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
1458 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
1459 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
1461 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
1462 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
1464 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
1465 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
1467 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
1468 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
1470 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
1471 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
1476 #if defined(__AVR_AT90CAN32__) \
1477 || defined(__AVR_AT90CAN64__) \
1478 || defined(__AVR_AT90CAN128__) \
1479 || defined(__AVR_AT90PWM1__) \
1480 || defined(__AVR_AT90PWM2__) \
1481 || defined(__AVR_AT90PWM2B__) \
1482 || defined(__AVR_AT90PWM3__) \
1483 || defined(__AVR_AT90PWM3B__) \
1484 || defined(__AVR_AT90PWM216__) \
1485 || defined(__AVR_AT90PWM316__) \
1486 || defined(__AVR_AT90SCR100__) \
1487 || defined(__AVR_AT90USB646__) \
1488 || defined(__AVR_AT90USB647__) \
1489 || defined(__AVR_AT90USB82__) \
1490 || defined(__AVR_AT90USB1286__) \
1491 || defined(__AVR_AT90USB1287__) \
1492 || defined(__AVR_AT90USB162__) \
1493 || defined(__AVR_ATmega1280__) \
1494 || defined(__AVR_ATmega1281__) \
1495 || defined(__AVR_ATmega128RFA1__) \
1496 || defined(__AVR_ATmega1284RFR2__) \
1497 || defined(__AVR_ATmega128RFR2__) \
1498 || defined(__AVR_ATmega1284P__) \
1499 || defined(__AVR_ATmega162__) \
1500 || defined(__AVR_ATmega164A__) \
1501 || defined(__AVR_ATmega164P__) \
1502 || defined(__AVR_ATmega165__) \
1503 || defined(__AVR_ATmega165A__) \
1504 || defined(__AVR_ATmega165P__) \
1505 || defined(__AVR_ATmega168__) \
1506 || defined(__AVR_ATmega168P__) \
1507 || defined(__AVR_ATmega169__) \
1508 || defined(__AVR_ATmega169A__) \
1509 || defined(__AVR_ATmega169P__) \
1510 || defined(__AVR_ATmega169PA__) \
1511 || defined(__AVR_ATmega16U4__) \
1512 || defined(__AVR_ATmega2560__) \
1513 || defined(__AVR_ATmega2561__) \
1514 || defined(__AVR_ATmega2564RFR2__) \
1515 || defined(__AVR_ATmega256RFR2__) \
1516 || defined(__AVR_ATmega324A__) \
1517 || defined(__AVR_ATmega324P__) \
1518 || defined(__AVR_ATmega325__) \
1519 || defined(__AVR_ATmega325A__) \
1520 || defined(__AVR_ATmega3250__) \
1521 || defined(__AVR_ATmega3250A__) \
1522 || defined(__AVR_ATmega328__) \
1523 || defined(__AVR_ATmega328P__) \
1524 || defined(__AVR_ATmega329__) \
1525 || defined(__AVR_ATmega329A__) \
1526 || defined(__AVR_ATmega329P__) \
1527 || defined(__AVR_ATmega329PA__) \
1528 || defined(__AVR_ATmega3290__) \
1529 || defined(__AVR_ATmega3290A__) \
1530 || defined(__AVR_ATmega32C1__) \
1531 || defined(__AVR_ATmega32HVB__) \
1532 || defined(__AVR_ATmega32HVBREVB__) \
1533 || defined(__AVR_ATmega16HVB__) \
1534 || defined(__AVR_ATmega16HVBREVB__) \
1535 || defined(__AVR_ATmega32M1__) \
1536 || defined(__AVR_ATmega32U2__) \
1537 || defined(__AVR_ATmega32U4__) \
1538 || defined(__AVR_ATmega32U6__) \
1539 || defined(__AVR_ATmega48__) \
1540 || defined(__AVR_ATmega48P__) \
1541 || defined(__AVR_ATmega640__) \
1542 || defined(__AVR_ATmega649P__) \
1543 || defined(__AVR_ATmega644__) \
1544 || defined(__AVR_ATmega644A__) \
1545 || defined(__AVR_ATmega644P__) \
1546 || defined(__AVR_ATmega644PA__) \
1547 || defined(__AVR_ATmega645__) \
1548 || defined(__AVR_ATmega645A__) \
1549 || defined(__AVR_ATmega645P__) \
1550 || defined(__AVR_ATmega6450__) \
1551 || defined(__AVR_ATmega6450A__) \
1552 || defined(__AVR_ATmega6450P__) \
1553 || defined(__AVR_ATmega649__) \
1554 || defined(__AVR_ATmega649A__) \
1555 || defined(__AVR_ATmega6490__) \
1556 || defined(__AVR_ATmega6490A__) \
1557 || defined(__AVR_ATmega6490P__) \
1558 || defined(__AVR_ATmega644RFR2__) \
1559 || defined(__AVR_ATmega64RFR2__) \
1560 || defined(__AVR_ATmega88__) \
1561 || defined(__AVR_ATmega88P__) \
1562 || defined(__AVR_ATmega8U2__) \
1563 || defined(__AVR_ATmega16U2__) \
1564 || defined(__AVR_ATmega32U2__) \
1565 || defined(__AVR_ATtiny48__) \
1566 || defined(__AVR_ATtiny167__) \
1567 || defined(__DOXYGEN__)
1612 #if defined(__AVR_ATmega128RFA1__) \
1613 || defined(__AVR_ATmega2564RFR2__) \
1614 || defined(__AVR_ATmega1284RFR2__) \
1615 || defined(__AVR_ATmega644RFR2__) \
1616 || defined(__AVR_ATmega256RFR2__) \
1617 || defined(__AVR_ATmega128RFR2__) \
1618 || defined(__AVR_ATmega64RFR2__) \
1619 , clock_div_1_rc = 15
1624 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
1635 void clock_prescale_set(clock_div_t __x)
1638 __asm__ __volatile__ (
1639 "in __tmp_reg__,__SREG__" "\n\t"
1643 "out __SREG__, __tmp_reg__"
1646 "M" (_SFR_MEM_ADDR(CLKPR)),
1656 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1659 #elif defined(__AVR_ATtiny24__) \
1660 || defined(__AVR_ATtiny24A__) \
1661 || defined(__AVR_ATtiny44__) \
1662 || defined(__AVR_ATtiny44A__) \
1663 || defined(__AVR_ATtiny84__) \
1664 || defined(__AVR_ATtiny84A__) \
1665 || defined(__AVR_ATtiny25__) \
1666 || defined(__AVR_ATtiny45__) \
1667 || defined(__AVR_ATtiny85__) \
1668 || defined(__AVR_ATtiny261A__) \
1669 || defined(__AVR_ATtiny261__) \
1670 || defined(__AVR_ATtiny461__) \
1671 || defined(__AVR_ATtiny461A__) \
1672 || defined(__AVR_ATtiny861__) \
1673 || defined(__AVR_ATtiny861A__) \
1674 || defined(__AVR_ATtiny2313__) \
1675 || defined(__AVR_ATtiny2313A__) \
1676 || defined(__AVR_ATtiny4313__) \
1677 || defined(__AVR_ATtiny13__) \
1678 || defined(__AVR_ATtiny13A__) \
1679 || defined(__AVR_ATtiny43U__) \
1694 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
1696 void clock_prescale_set(clock_div_t __x)
1699 __asm__ __volatile__ (
1700 "in __tmp_reg__,__SREG__" "\n\t"
1704 "out __SREG__, __tmp_reg__"
1707 "I" (_SFR_IO_ADDR(CLKPR)),
1713 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))