33 #define _AVR_POWER_H_ 1
546 #if defined(__AVR_HAVE_PRR_PRADC)
547 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
548 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
551 #if defined(__AVR_HAVE_PRR_PRCAN)
552 #define power_can_enable() (PRR &= (uint8_t)~(1 << PRCAN))
553 #define power_can_disable() (PRR |= (uint8_t)(1 << PRCAN))
556 #if defined(__AVR_HAVE_PRR_PRLCD)
557 #define power_lcd_enable() (PRR &= (uint8_t)~(1 << PRLCD))
558 #define power_lcd_disable() (PRR |= (uint8_t)(1 << PRLCD))
561 #if defined(__AVR_HAVE_PRR_PRLIN)
562 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
563 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
566 #if defined(__AVR_HAVE_PRR_PRPSC)
567 #define power_psc_enable() (PRR &= (uint8_t)~(1 << PRPSC))
568 #define power_psc_disable() (PRR |= (uint8_t)(1 << PRPSC))
571 #if defined(__AVR_HAVE_PRR_PRPSC0)
572 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
573 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
576 #if defined(__AVR_HAVE_PRR_PRPSC1)
577 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
578 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
581 #if defined(__AVR_HAVE_PRR_PRPSC2)
582 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
583 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
586 #if defined(__AVR_HAVE_PRR_PRSCR)
587 #define power_pscr_enable() (PRR &= (uint8_t)~(1 << PRPSCR))
588 #define power_pscr_disable() (PRR |= (uint8_t)(1 << PRPSCR))
591 #if defined(__AVR_HAVE_PRR_PRSPI)
592 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
593 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
596 #if defined(__AVR_HAVE_PRR_PRTIM0)
597 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
598 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
601 #if defined(__AVR_HAVE_PRR_PRTIM1)
602 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
603 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
606 #if defined(__AVR_HAVE_PRR_PRTIM2)
607 #define power_timer2_enable() (PRR &= (uint8_t)~(1 << PRTIM2))
608 #define power_timer2_disable() (PRR |= (uint8_t)(1 << PRTIM2))
611 #if defined(__AVR_HAVE_PRR_PRTWI)
612 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
613 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
616 #if defined(__AVR_HAVE_PRR_PRUSART)
617 #define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART))
618 #define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART))
621 #if defined(__AVR_HAVE_PRR_PRUSART0)
622 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
623 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
626 #if defined(__AVR_HAVE_PRR_PRUSART1)
627 #define power_usart1_enable() (PRR &= (uint8_t)~(1 << PRUSART1))
628 #define power_usart1_disable() (PRR |= (uint8_t)(1 << PRUSART1))
631 #if defined(__AVR_HAVE_PRR_PRUSI)
632 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
633 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
636 #if defined(__AVR_HAVE_PRR0_PRADC)
637 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
638 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
641 #if defined(__AVR_HAVE_PRR0_PRC0)
642 #define power_clock_output_enable() (PRR0 &= (uint8_t)~(1 << PRCO))
643 #define power_clock_output_disable() (PRR0 |= (uint8_t)(1 << PRCO))
646 #if defined(__AVR_HAVE_PRR0_PRCRC)
647 #define power_crc_enable() (PRR0 &= (uint8_t)~(1 << PRCRC))
648 #define power_crc_disable() (PRR0 |= (uint8_t)(1 << PRCRC))
651 #if defined(__AVR_HAVE_PRR0_PRCU)
652 #define power_crypto_enable() (PRR0 &= (uint8_t)~(1 << PRCU))
653 #define power_crypto_disable() (PRR0 |= (uint8_t)(1 << PRCU))
656 #if defined(__AVR_HAVE_PRR0_PRDS)
657 #define power_irdriver_enable() (PRR0 &= (uint8_t)~(1 << PRDS))
658 #define power_irdriver_disable() (PRR0 |= (uint8_t)(1 << PRDS))
661 #if defined(__AVR_HAVE_PRR0_PRLFR)
662 #define power_lfreceiver_enable() (PRR0 &= (uint8_t)~(1 << PRLFR))
663 #define power_lfreceiver_disable() (PRR0 |= (uint8_t)(1 << PRLFR))
666 #if defined(__AVR_HAVE_PRR0_PRLIN)
667 #define power_lin_enable() (PRR0 &= (uint8_t)~(1 << PRLIN))
668 #define power_lin_disable() (PRR0 |= (uint8_t)(1 << PRLIN))
671 #if defined(__AVR_HAVE_PRR0_PRPGA)
672 #define power_pga_enable() (PRR0 &= (uint8_t)~(1 << PRPGA))
673 #define power_pga_disable() (PRR0 |= (uint8_t)(1 << PRPGA))
676 #if defined(__AVR_HAVE_PRR0_PRRXDC)
677 #define power_receive_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRRXDC))
678 #define power_receive_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRRXDC))
681 #if defined(__AVR_HAVE_PRR0_PRSPI)
682 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
683 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
686 #if defined(__AVR_HAVE_PRR0_PRT0)
687 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRT0))
688 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRT0))
691 #if defined(__AVR_HAVE_PRR0_PRTIM0)
692 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
693 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
696 #if defined(__AVR_HAVE_PRR0_PRT1)
697 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRT1))
698 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRT1))
701 #if defined(__AVR_HAVE_PRR0_PRTIM1)
702 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
703 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
706 #if defined(__AVR_HAVE_PRR0_PRT2)
707 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRT2))
708 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRT2))
711 #if defined(__AVR_HAVE_PRR0_PRTIM2)
712 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
713 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
716 #if defined(__AVR_HAVE_PRR0_PRT3)
717 #define power_timer3_enable() (PRR0 &= (uint8_t)~(1 << PRT3))
718 #define power_timer3_disable() (PRR0 |= (uint8_t)(1 << PRT3))
721 #if defined(__AVR_HAVE_PRR0_PRTM)
722 #define power_timermodulator_enable() (PRR0 &= (uint8_t)~(1 << PRTM))
723 #define power_timermodulator_disable() (PRR0 |= (uint8_t)(1 << PRTM))
726 #if defined(__AVR_HAVE_PRR0_PRTWI)
727 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
728 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
731 #if defined(__AVR_HAVE_PRR0_PRTXDC)
732 #define power_transmit_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRTXDC))
733 #define power_transmit_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRTXDC))
736 #if defined(__AVR_HAVE_PRR0_PRUSART0)
737 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
738 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
741 #if defined(__AVR_HAVE_PRR0_PRUSART1)
742 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
743 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
746 #if defined(__AVR_HAVE_PRR0_PRVADC)
747 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
748 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
751 #if defined(__AVR_HAVE_PRR0_PRVM)
752 #define power_voltage_monitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
753 #define power_voltage_monitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
756 #if defined(__AVR_HAVE_PRR0_PRVRM)
757 #define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
758 #define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
761 #if defined(__AVR_HAVE_PRR1_PRAES)
762 #define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
763 #define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
766 #if defined(__AVR_HAVE_PRR1_PRCI)
767 #define power_cinterface_enable() (PRR1 &= (uint8_t)~(1 << PRCI))
768 #define power_cinterface_disable() (PRR1 |= (uint8_t)(1 << PRCI))
771 #if defined(__AVR_HAVE_PRR1_PRHSSPI)
772 #define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
773 #define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
776 #if defined(__AVR_HAVE_PRR1_PRKB)
777 #define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
778 #define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
781 #if defined(__AVR_HAVE_PRR1_PRLFR)
782 #define power_lfreceiver_enable() (PRR1 &= (uint8_t)~(1 << PRLFR))
783 #define power_lfreceiver_disable() (PRR1 |= (uint8_t)(1 << PRLFR))
786 #if defined(__AVR_HAVE_PRR1_PRSCI)
787 #define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
788 #define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
791 #if defined(__AVR_HAVE_PRR1_PRT1)
792 #define power_timer1_enable() (PRR1 &= (uint8_t)~(1 << PRT1))
793 #define power_timer1_disable() (PRR1 |= (uint8_t)(1 << PRT1))
796 #if defined(__AVR_HAVE_PRR1_PRT2)
797 #define power_timer2_enable() (PRR1 &= (uint8_t)~(1 << PRT2))
798 #define power_timer2_disable() (PRR1 |= (uint8_t)(1 << PRT2))
801 #if defined(__AVR_HAVE_PRR1_PRT3)
802 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRT3))
803 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRT3))
806 #if defined(__AVR_HAVE_PRR1_PRT4)
807 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRT4))
808 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRT4))
811 #if defined(__AVR_HAVE_PRR1_PRT5)
812 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRT5))
813 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRT5))
816 #if defined(__AVR_HAVE_PRR1_PRTIM3)
817 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
818 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
821 #if defined(__AVR_HAVE_PRR1_PRTIM4)
822 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
823 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
826 #if defined(__AVR_HAVE_PRR1_PRTIM5)
827 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
828 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
831 #if defined(__AVR_HAVE_PRR1_PRTRX24)
832 #define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
833 #define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
836 #if defined(__AVR_HAVE_PRR1_PRUSART1)
837 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
838 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
841 #if defined(__AVR_HAVE_PRR1_PRUSART2)
842 #define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
843 #define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
846 #if defined(__AVR_HAVE_PRR1_PRUSB)
847 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
848 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
851 #if defined(__AVR_HAVE_PRR1_PRUSBH)
852 #define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
853 #define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
856 #if defined(__AVR_HAVE_PRR2_PRDF)
857 #define power_data_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRDF))
858 #define power_data_fifo_disable() (PRR2 |= (uint8_t)(1 << PRDF))
861 #if defined(__AVR_HAVE_PRR2_PRIDS)
862 #define power_id_scan_enable() (PRR2 &= (uint8_t)~(1 << PRIDS))
863 #define power_id_scan_disable() (PRR2 |= (uint8_t)(1 << PRIDS))
866 #if defined(__AVR_HAVE_PRR2_PRRAM0)
867 #define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
868 #define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
871 #if defined(__AVR_HAVE_PRR2_PRRAM1)
872 #define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
873 #define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
876 #if defined(__AVR_HAVE_PRR2_PRRAM2)
877 #define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
878 #define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
881 #if defined(__AVR_HAVE_PRR2_PRRAM3)
882 #define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
883 #define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
886 #if defined(__AVR_HAVE_PRR2_PRRS)
887 #define power_rssi_buffer_enable() (PRR2 &= (uint8_t)~(1 << PRRS))
888 #define power_rssi_buffer_disable() (PRR2 |= (uint8_t)(1 << PRRS))
891 #if defined(__AVR_HAVE_PRR2_PRSF)
892 #define power_preamble_rssi_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRSF))
893 #define power_preamble_rssi_fifo_disable() (PRR2 |= (uint8_t)(1 << PRSF))
896 #if defined(__AVR_HAVE_PRR2_PRSSM)
897 #define power_sequencer_state_machine_enable() (PRR2 &= (uint8_t)~(1 << PRSSM))
898 #define power_sequencer_state_machine_disable() (PRR2 |= (uint8_t)(1 << PRSSM))
901 #if defined(__AVR_HAVE_PRR2_PRTM)
902 #define power_tx_modulator_enable() (PRR2 &= (uint8_t)~(1 << PRTM))
903 #define power_tx_modulator_disable() (PRR2 |= (uint8_t)(1 << PRTM))
906 #if defined(__AVR_HAVE_PRR2_PRXA)
907 #define power_rx_buffer_A_enable() (PRR2 &= (uint8_t)~(1 << PRXA))
908 #define power_rx_buffer_A_disable() (PRR2 |= (uint8_t)(1 << PRXA))
911 #if defined(__AVR_HAVE_PRR2_PRXB)
912 #define power_rx_buffer_B_enable() (PRR2 &= (uint8_t)~(1 << PRXB))
913 #define power_rx_buffer_B_disable() (PRR2 |= (uint8_t)(1 << PRXB))
916 #if defined(__AVR_HAVE_PRGEN_AES)
917 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
918 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
921 #if defined(__AVR_HAVE_PRGEN_DMA)
922 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
923 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
926 #if defined(__AVR_HAVE_PRGEN_EBI)
927 #define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
928 #define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
931 #if defined(__AVR_HAVE_PRGEN_EDMA)
932 #define power_edma_enable() (PR_PRGEN &= (uint8_t)~(PR_EDMA_bm))
933 #define power_edma_disable() (PR_PRGEN |= (uint8_t)PR_EDMA_bm)
936 #if defined(__AVR_HAVE_PRGEN_EVSYS)
937 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
938 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
941 #if defined(__AVR_HAVE_PRGEN_LCD)
942 #define power_lcd_enable() (PR_PRGEN &= (uint8_t)~(PR_LCD_bm))
943 #define power_lcd_disable() (PR_PRGEN |= (uint8_t)PR_LCD_bm)
946 #if defined(__AVR_HAVE_PRGEN_RTC)
947 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
948 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
951 #if defined(__AVR_HAVE_PRGEN_USB)
952 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
953 #define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
956 #if defined(__AVR_HAVE_PRGEN_XCL)
957 #define power_xcl_enable() (PR_PRGEN &= (uint8_t)~(PR_XCL_bm))
958 #define power_xcl_disable() (PR_PRGEN |= (uint8_t)PR_XCL_bm)
961 #if defined(__AVR_HAVE_PRPA_AC)
962 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
963 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
966 #if defined(__AVR_HAVE_PRPA_ADC)
967 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
968 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
971 #if defined(__AVR_HAVE_PRPA_DAC)
972 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
973 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
976 #if defined(__AVR_HAVE_PRPB_AC)
977 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
978 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
981 #if defined(__AVR_HAVE_PRPB_ADC)
982 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
983 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
986 #if defined(__AVR_HAVE_PRPB_DAC)
987 #define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
988 #define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
991 #if defined(__AVR_HAVE_PRPC_HIRES)
992 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
993 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
996 #if defined(__AVR_HAVE_PRPC_SPI)
997 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
998 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1001 #if defined(__AVR_HAVE_PRPC_TC0)
1002 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1003 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1006 #if defined(__AVR_HAVE_PRPC_TC1)
1007 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1008 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1011 #if defined(__AVR_HAVE_PRPC_TC4)
1012 #define power_tc4c_enable() (PR_PRPC &= (uint8_t)~(PR_TC4_bm))
1013 #define power_tc4c_disable() (PR_PRPC |= (uint8_t)PR_TC4_bm)
1016 #if defined(__AVR_HAVE_PRPC_TC5)
1017 #define power_tc5c_enable() (PR_PRPC &= (uint8_t)~(PR_TC5_bm))
1018 #define power_tc5c_disable() (PR_PRPC |= (uint8_t)PR_TC5_bm)
1021 #if defined(__AVR_HAVE_PRPC_TWI)
1022 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1023 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1026 #if defined(__AVR_HAVE_PRPC_USART0)
1027 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1028 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1031 #if defined(__AVR_HAVE_PRPC_USART1)
1032 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1033 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1036 #if defined(__AVR_HAVE_PRPD_HIRES)
1037 #define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
1038 #define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
1041 #if defined(__AVR_HAVE_PRPD_SPI)
1042 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1043 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1046 #if defined(__AVR_HAVE_PRPD_TC0)
1047 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1048 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1051 #if defined(__AVR_HAVE_PRPD_TC1)
1052 #define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
1053 #define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
1056 #if defined(__AVR_HAVE_PRPD_TC5)
1057 #define power_tc5d_enable() (PR_PRPD &= (uint8_t)~(PR_TC5_bm))
1058 #define power_tc5d_disable() (PR_PRPD |= (uint8_t)PR_TC5_bm)
1061 #if defined(__AVR_HAVE_PRPD_TWI)
1062 #define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
1063 #define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
1066 #if defined(__AVR_HAVE_PRPD_USART0)
1067 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1068 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1071 #if defined(__AVR_HAVE_PRPD_USART1)
1072 #define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
1073 #define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
1076 #if defined(__AVR_HAVE_PRPE_HIRES)
1077 #define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
1078 #define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
1081 #if defined(__AVR_HAVE_PRPE_SPI)
1082 #define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
1083 #define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
1086 #if defined(__AVR_HAVE_PRPE_TC0)
1087 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1088 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1091 #if defined(__AVR_HAVE_PRPE_TC1)
1092 #define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
1093 #define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
1096 #if defined(__AVR_HAVE_PRPE_TWI)
1097 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1098 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1101 #if defined(__AVR_HAVE_PRPE_USART0)
1102 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1103 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1106 #if defined(__AVR_HAVE_PRPE_USART1)
1107 #define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
1108 #define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
1111 #if defined(__AVR_HAVE_PRPF_HIRES)
1112 #define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
1113 #define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
1116 #if defined(__AVR_HAVE_PRPF_SPI)
1117 #define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
1118 #define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
1121 #if defined(__AVR_HAVE_PRPF_TC0)
1122 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1123 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1126 #if defined(__AVR_HAVE_PRPF_TC1)
1127 #define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
1128 #define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
1131 #if defined(__AVR_HAVE_PRPF_TWI)
1132 #define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
1133 #define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
1136 #if defined(__AVR_HAVE_PRPF_USART0)
1137 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1138 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1141 #if defined(__AVR_HAVE_PRPF_USART1)
1142 #define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1143 #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1147 static __inline
void
1149 __power_all_enable()
1151 #ifdef __AVR_HAVE_PRR
1152 PRR &= (
uint8_t)~(__AVR_HAVE_PRR);
1155 #ifdef __AVR_HAVE_PRR0
1156 PRR0 &= (
uint8_t)~(__AVR_HAVE_PRR0);
1159 #ifdef __AVR_HAVE_PRR1
1160 PRR1 &= (
uint8_t)~(__AVR_HAVE_PRR1);
1163 #ifdef __AVR_HAVE_PRR2
1164 PRR2 &= (
uint8_t)~(__AVR_HAVE_PRR2);
1167 #ifdef __AVR_HAVE_PRGEN
1168 PR_PRGEN &= (
uint8_t)~(__AVR_HAVE_PRGEN);
1171 #ifdef __AVR_HAVE_PRPA
1172 PR_PRPA &= (
uint8_t)~(__AVR_HAVE_PRPA);
1175 #ifdef __AVR_HAVE_PRPB
1176 PR_PRPB &= (
uint8_t)~(__AVR_HAVE_PRPB);
1179 #ifdef __AVR_HAVE_PRPC
1180 PR_PRPC &= (
uint8_t)~(__AVR_HAVE_PRPC);
1183 #ifdef __AVR_HAVE_PRPD
1184 PR_PRPD &= (
uint8_t)~(__AVR_HAVE_PRPD);
1187 #ifdef __AVR_HAVE_PRPE
1188 PR_PRPE &= (
uint8_t)~(__AVR_HAVE_PRPE);
1191 #ifdef __AVR_HAVE_PRPF
1192 PR_PRPF &= (
uint8_t)~(__AVR_HAVE_PRPF);
1196 static __inline
void
1198 __power_all_disable()
1200 #ifdef __AVR_HAVE_PRR
1201 PRR |= (
uint8_t)(__AVR_HAVE_PRR);
1204 #ifdef __AVR_HAVE_PRR0
1205 PRR0 |= (
uint8_t)(__AVR_HAVE_PRR0);
1208 #ifdef __AVR_HAVE_PRR1
1209 PRR1 |= (
uint8_t)(__AVR_HAVE_PRR1);
1212 #ifdef __AVR_HAVE_PRR2
1213 PRR2 |= (
uint8_t)(__AVR_HAVE_PRR2);
1216 #ifdef __AVR_HAVE_PRGEN
1217 PR_PRGEN |= (
uint8_t)(__AVR_HAVE_PRGEN);
1220 #ifdef __AVR_HAVE_PRPA
1221 PR_PRPA |= (
uint8_t)(__AVR_HAVE_PRPA);
1224 #ifdef __AVR_HAVE_PRPB
1225 PR_PRPB |= (
uint8_t)(__AVR_HAVE_PRPB);
1228 #ifdef __AVR_HAVE_PRPC
1229 PR_PRPC |= (
uint8_t)(__AVR_HAVE_PRPC);
1232 #ifdef __AVR_HAVE_PRPD
1233 PR_PRPD |= (
uint8_t)(__AVR_HAVE_PRPD);
1236 #ifdef __AVR_HAVE_PRPE
1237 PR_PRPE |= (
uint8_t)(__AVR_HAVE_PRPE);
1240 #ifdef __AVR_HAVE_PRPF
1241 PR_PRPF |= (
uint8_t)(__AVR_HAVE_PRPF);
1245 #ifndef power_all_enable
1246 #define power_all_enable() __power_all_enable()
1249 #ifndef power_all_disable
1250 #define power_all_disable() __power_all_disable()
1253 #if defined(__AVR_AT90CAN32__) \
1254 || defined(__AVR_AT90CAN64__) \
1255 || defined(__AVR_AT90CAN128__) \
1256 || defined(__AVR_AT90PWM1__) \
1257 || defined(__AVR_AT90PWM2__) \
1258 || defined(__AVR_AT90PWM2B__) \
1259 || defined(__AVR_AT90PWM3__) \
1260 || defined(__AVR_AT90PWM3B__) \
1261 || defined(__AVR_AT90PWM81__) \
1262 || defined(__AVR_AT90PWM161__) \
1263 || defined(__AVR_AT90PWM216__) \
1264 || defined(__AVR_AT90PWM316__) \
1265 || defined(__AVR_AT90SCR100__) \
1266 || defined(__AVR_AT90USB646__) \
1267 || defined(__AVR_AT90USB647__) \
1268 || defined(__AVR_AT90USB82__) \
1269 || defined(__AVR_AT90USB1286__) \
1270 || defined(__AVR_AT90USB1287__) \
1271 || defined(__AVR_AT90USB162__) \
1272 || defined(__AVR_ATA5505__) \
1273 || defined(__AVR_ATA5272__) \
1274 || defined(__AVR_ATA6617C__) \
1275 || defined(__AVR_ATA664251__) \
1276 || defined(__AVR_ATmega1280__) \
1277 || defined(__AVR_ATmega1281__) \
1278 || defined(__AVR_ATmega1284__) \
1279 || defined(__AVR_ATmega128RFA1__) \
1280 || defined(__AVR_ATmega128RFR2__) \
1281 || defined(__AVR_ATmega1284RFR2__) \
1282 || defined(__AVR_ATmega1284P__) \
1283 || defined(__AVR_ATmega162__) \
1284 || defined(__AVR_ATmega164A__) \
1285 || defined(__AVR_ATmega164P__) \
1286 || defined(__AVR_ATmega164PA__) \
1287 || defined(__AVR_ATmega165__) \
1288 || defined(__AVR_ATmega165A__) \
1289 || defined(__AVR_ATmega165P__) \
1290 || defined(__AVR_ATmega165PA__) \
1291 || defined(__AVR_ATmega168__) \
1292 || defined(__AVR_ATmega168A__) \
1293 || defined(__AVR_ATmega168P__) \
1294 || defined(__AVR_ATmega168PA__) \
1295 || defined(__AVR_ATmega168PB__) \
1296 || defined(__AVR_ATmega169__) \
1297 || defined(__AVR_ATmega169A__) \
1298 || defined(__AVR_ATmega169P__) \
1299 || defined(__AVR_ATmega169PA__) \
1300 || defined(__AVR_ATmega16M1__) \
1301 || defined(__AVR_ATmega16U2__) \
1302 || defined(__AVR_ATmega324PA__) \
1303 || defined(__AVR_ATmega16U4__) \
1304 || defined(__AVR_ATmega2560__) \
1305 || defined(__AVR_ATmega2561__) \
1306 || defined(__AVR_ATmega256RFR2__) \
1307 || defined(__AVR_ATmega2564RFR2__) \
1308 || defined(__AVR_ATmega324A__) \
1309 || defined(__AVR_ATmega324P__) \
1310 || defined(__AVR_ATmega325__) \
1311 || defined(__AVR_ATmega325A__) \
1312 || defined(__AVR_ATmega325P__) \
1313 || defined(__AVR_ATmega325PA__) \
1314 || defined(__AVR_ATmega3250__) \
1315 || defined(__AVR_ATmega3250A__) \
1316 || defined(__AVR_ATmega3250P__) \
1317 || defined(__AVR_ATmega3250PA__) \
1318 || defined(__AVR_ATmega328__) \
1319 || defined(__AVR_ATmega328P__) \
1320 || defined(__AVR_ATmega329__) \
1321 || defined(__AVR_ATmega329A__) \
1322 || defined(__AVR_ATmega329P__) \
1323 || defined(__AVR_ATmega329PA__) \
1324 || defined(__AVR_ATmega3290__) \
1325 || defined(__AVR_ATmega3290A__) \
1326 || defined(__AVR_ATmega3290P__) \
1327 || defined(__AVR_ATmega3290PA__) \
1328 || defined(__AVR_ATmega32C1__) \
1329 || defined(__AVR_ATmega32M1__) \
1330 || defined(__AVR_ATmega32U2__) \
1331 || defined(__AVR_ATmega32U4__) \
1332 || defined(__AVR_ATmega32U6__) \
1333 || defined(__AVR_ATmega48__) \
1334 || defined(__AVR_ATmega48A__) \
1335 || defined(__AVR_ATmega48PA__) \
1336 || defined(__AVR_ATmega48PB__) \
1337 || defined(__AVR_ATmega48P__) \
1338 || defined(__AVR_ATmega640__) \
1339 || defined(__AVR_ATmega649P__) \
1340 || defined(__AVR_ATmega644__) \
1341 || defined(__AVR_ATmega644A__) \
1342 || defined(__AVR_ATmega644P__) \
1343 || defined(__AVR_ATmega644PA__) \
1344 || defined(__AVR_ATmega645__) \
1345 || defined(__AVR_ATmega645A__) \
1346 || defined(__AVR_ATmega645P__) \
1347 || defined(__AVR_ATmega6450__) \
1348 || defined(__AVR_ATmega6450A__) \
1349 || defined(__AVR_ATmega6450P__) \
1350 || defined(__AVR_ATmega649__) \
1351 || defined(__AVR_ATmega649A__) \
1352 || defined(__AVR_ATmega64M1__) \
1353 || defined(__AVR_ATmega64C1__) \
1354 || defined(__AVR_ATmega88A__) \
1355 || defined(__AVR_ATmega88PA__) \
1356 || defined(__AVR_ATmega88PB__) \
1357 || defined(__AVR_ATmega6490__) \
1358 || defined(__AVR_ATmega6490A__) \
1359 || defined(__AVR_ATmega6490P__) \
1360 || defined(__AVR_ATmega64RFR2__) \
1361 || defined(__AVR_ATmega644RFR2__) \
1362 || defined(__AVR_ATmega88__) \
1363 || defined(__AVR_ATmega88P__) \
1364 || defined(__AVR_ATmega8U2__) \
1365 || defined(__AVR_ATmega16U2__) \
1366 || defined(__AVR_ATmega32U2__) \
1367 || defined(__AVR_ATtiny48__) \
1368 || defined(__AVR_ATtiny88__) \
1369 || defined(__AVR_ATtiny87__) \
1370 || defined(__AVR_ATtiny167__) \
1371 || defined(__DOXYGEN__)
1438 #if defined(__AVR_ATmega128RFA1__) \
1439 || defined(__AVR_ATmega256RFR2__) \
1440 || defined(__AVR_ATmega2564RFR2__) \
1441 || defined(__AVR_ATmega128RFR2__) \
1442 || defined(__AVR_ATmega1284RFR2__) \
1443 || defined(__AVR_ATmega64RFR2__) \
1444 || defined(__AVR_ATmega644RFR2__)
1445 , clock_div_1_rc = 15
1450 static __inline__
void clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1464 void clock_prescale_set(clock_div_t __x)
1467 __asm__ __volatile__ (
1468 "in __tmp_reg__,__SREG__" "\n\t"
1472 "out __SREG__, __tmp_reg__"
1475 "M" (_SFR_MEM_ADDR(CLKPR)),
1489 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1491 #elif defined(__AVR_ATmega16HVB__) \
1492 || defined(__AVR_ATmega16HVBREVB__) \
1493 || defined(__AVR_ATmega64HVE__) \
1494 || defined(__AVR_ATmega32HVB__) \
1495 || defined(__AVR_ATmega32HVBREVB__) \
1496 || defined(__AVR_ATmega64HVE2__)
1506 static __inline__
void clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1508 void clock_prescale_set(clock_div_t __x)
1511 __asm__ __volatile__ (
1512 "in __tmp_reg__,__SREG__" "\n\t"
1516 "out __SREG__, __tmp_reg__"
1519 "M" (_SFR_MEM_ADDR(CLKPR)),
1524 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)))
1526 #elif defined(__AVR_ATA5790__) \
1527 || defined (__AVR_ATA5790N__) \
1528 || defined (__AVR_ATA5791__) \
1529 || defined (__AVR_ATA5795__)
1543 static __inline__
void system_clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1545 void system_clock_prescale_set(clock_div_t __x)
1548 __asm__ __volatile__ (
1549 "in __tmp_reg__,__SREG__" "\n\t"
1553 "out __SREG__, __tmp_reg__"
1556 "I" (_SFR_IO_ADDR(CLKPR)),
1561 #define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1565 timer_clock_div_reset = 0,
1566 timer_clock_div_1 = 1,
1567 timer_clock_div_2 = 2,
1568 timer_clock_div_4 = 3,
1569 timer_clock_div_8 = 4,
1570 timer_clock_div_16 = 5,
1571 timer_clock_div_32 = 6,
1572 timer_clock_div_64 = 7
1573 } timer_clock_div_t;
1575 static __inline__
void timer_clock_prescale_set(timer_clock_div_t)
__attribute__((__always_inline__));
1577 void timer_clock_prescale_set(timer_clock_div_t __x)
1580 __asm__ __volatile__ (
1581 "in __tmp_reg__,__SREG__" "\n\t"
1583 "in %[temp],%[clkpr]" "\n\t"
1584 "out %[clkpr],%[enable]" "\n\t"
1585 "andi %[temp],%[not_CLTPS]" "\n\t"
1586 "or %[temp], %[set_value]" "\n\t"
1587 "out %[clkpr],%[temp]" "\n\t"
1589 "out __SREG__,__tmp_reg__" "\n\t"
1592 [clkpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1593 [enable]
"r" (
_BV(CLKPCE)),
1594 [not_CLTPS]
"M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
1595 [set_value]
"r" ((__x & 7) << 3)
1599 #define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1601 #elif defined(__AVR_ATA6285__) \
1602 || defined(__AVR_ATA6286__) \
1603 || defined(__AVR_ATA6289__) \
1604 || defined(__AVR_ATA5702M322__) \
1605 || defined(__AVR_ATA5782__) \
1606 || defined(__AVR_ATA8210__) \
1607 || defined(__AVR_ATA5831__) \
1608 || defined(__AVR_ATA8510__)
1622 static __inline__
void system_clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1624 void system_clock_prescale_set(clock_div_t __x)
1627 __asm__ __volatile__ (
1628 "in __tmp_reg__,__SREG__" "\n\t"
1630 "in %[temp],%[clpr]" "\n\t"
1631 "out %[clpr],%[enable]" "\n\t"
1632 "andi %[temp],%[not_CLKPS]" "\n\t"
1633 "or %[temp], %[set_value]" "\n\t"
1634 "out %[clpr],%[temp]" "\n\t"
1636 "out __SREG__,__tmp_reg__" "\n\t"
1639 #
if defined(__AVR_ATA6286__) \
1640 || defined(__AVR_ATA6285__) \
1641 || defined(__AVR_ATA6289__)
1642 [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1643 #elif defined(__AVR_ATA5831__) \
1644 || defined(__AVR_ATA8510__) \
1645 || defined(__AVR_ATA5702M322__) \
1646 || defined(__AVR_ATA5782__) \
1647 || defined(__AVR_ATA8210__)
1648 [clpr]
"I" (_SFR_IO_ADDR(CLPR)),
1650 [enable]
"r" _BV(CLPCE),
1651 [not_CLKPS]
"M" (0xFF & (~ ((1 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0)))),
1652 [set_value]
"r" (__x & 7)
1656 #if defined(__AVR_ATA6286__) \
1657 || defined(__AVR_ATA6285__) \
1658 || defined(__AVR_ATA6289__)
1660 #define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1662 #elif defined(__AVR_ATA5831__) \
1663 || defined(__AVR_ATA8510__) \
1664 || defined(__AVR_ATA5702M322__) \
1665 || defined(__AVR_ATA5782__) \
1666 || defined(__AVR_ATA8210__)
1668 #define system_clock_prescale_get() (clock_div_t)(CLPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1674 timer_clock_div_reset = 0,
1675 timer_clock_div_1 = 1,
1676 timer_clock_div_2 = 2,
1677 timer_clock_div_4 = 3,
1678 timer_clock_div_8 = 4,
1679 timer_clock_div_16 = 5,
1680 timer_clock_div_32 = 6,
1681 timer_clock_div_64 = 7
1682 } timer_clock_div_t;
1684 static __inline__
void timer_clock_prescale_set(timer_clock_div_t)
__attribute__((__always_inline__));
1686 void timer_clock_prescale_set(timer_clock_div_t __x)
1689 __asm__ __volatile__ (
1690 "in __tmp_reg__,__SREG__" "\n\t"
1692 "in %[temp],%[clpr]" "\n\t"
1693 "out %[clpr],%[enable]" "\n\t"
1694 "andi %[temp],%[not_CLTPS]" "\n\t"
1695 "or %[temp], %[set_value]" "\n\t"
1696 "out %[clpr],%[temp]" "\n\t"
1698 "out __SREG__,__tmp_reg__" "\n\t"
1701 #
if defined(__AVR_ATA6286__) \
1702 || defined(__AVR_ATA6285__) \
1703 || defined(__AVR_ATA6289__)
1704 [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1705 #elif defined(__AVR_ATA5831__) \
1706 || defined(__AVR_ATA8510__) \
1707 || defined(__AVR_ATA5702M322__) \
1708 || defined(__AVR_ATA5782__) \
1709 || defined(__AVR_ATA8210__)
1710 [clpr]
"I" (_SFR_IO_ADDR(CLPR)),
1712 [enable]
"r" (
_BV(CLPCE)),
1713 [not_CLTPS]
"M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
1714 [set_value]
"r" ((__x & 7) << 3)
1718 #if defined(__AVR_ATA6286__) \
1719 || defined(__AVR_ATA6285__) \
1720 || defined(__AVR_ATA6289__)
1722 #define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1724 #elif defined(__AVR_ATA5831__) \
1725 || defined(__AVR_ATA8510__) \
1726 || defined(__AVR_ATA5702M322__) \
1727 || defined(__AVR_ATA5782__) \
1728 || defined(__AVR_ATA8210__)
1730 #define timer_clock_prescale_get() (timer_clock_div_t)(CLPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1733 #elif defined(__AVR_ATtiny24__) \
1734 || defined(__AVR_ATtiny24A__) \
1735 || defined(__AVR_ATtiny44__) \
1736 || defined(__AVR_ATtiny44A__) \
1737 || defined(__AVR_ATtiny84__) \
1738 || defined(__AVR_ATtiny84A__) \
1739 || defined(__AVR_ATtiny25__) \
1740 || defined(__AVR_ATtiny45__) \
1741 || defined(__AVR_ATtiny85__) \
1742 || defined(__AVR_ATtiny261A__) \
1743 || defined(__AVR_ATtiny261__) \
1744 || defined(__AVR_ATtiny461__) \
1745 || defined(__AVR_ATtiny461A__) \
1746 || defined(__AVR_ATtiny861__) \
1747 || defined(__AVR_ATtiny861A__) \
1748 || defined(__AVR_ATtiny2313__) \
1749 || defined(__AVR_ATtiny2313A__) \
1750 || defined(__AVR_ATtiny4313__) \
1751 || defined(__AVR_ATtiny13__) \
1752 || defined(__AVR_ATtiny13A__) \
1753 || defined(__AVR_ATtiny43U__) \
1768 static __inline__
void clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1770 void clock_prescale_set(clock_div_t __x)
1773 __asm__ __volatile__ (
1774 "in __tmp_reg__,__SREG__" "\n\t"
1778 "out __SREG__, __tmp_reg__"
1781 "I" (_SFR_IO_ADDR(CLKPR)),
1787 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1789 #elif defined(__AVR_ATtiny441__) \
1790 || defined(__AVR_ATtiny841__)
1805 static __inline__
void clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1807 void clock_prescale_set(clock_div_t __x)
1810 __asm__ __volatile__ (
1811 "in __tmp_reg__,__SREG__" "\n\t"
1815 "out __SREG__, __tmp_reg__"
1818 "M" (_SFR_MEM_ADDR(CLKPR)),
1819 "M" (_SFR_MEM_ADDR(CCP)),
1825 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1827 #elif defined(__AVR_ATtiny4__) \
1828 || defined(__AVR_ATtiny5__) \
1829 || defined(__AVR_ATtiny9__) \
1830 || defined(__AVR_ATtiny10__) \
1831 || defined(__AVR_ATtiny20__) \
1832 || defined(__AVR_ATtiny40__) \
1847 static __inline__
void clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1849 void clock_prescale_set(clock_div_t __x)
1852 __asm__ __volatile__ (
1853 "in __tmp_reg__,__SREG__" "\n\t"
1857 "out __SREG__, __tmp_reg__"
1860 "I" (_SFR_IO_ADDR(CCP)),
1861 "I" (_SFR_IO_ADDR(CLKPSR)),
1866 #define clock_prescale_get() (clock_div_t)(CLKPSR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1868 #elif defined(__AVR_ATmega64__) \
1869 || defined(__AVR_ATmega103__) \
1870 || defined(__AVR_ATmega128__)
1885 static __inline__
void clock_prescale_set(clock_div_t)
__attribute__((__always_inline__));
1887 void clock_prescale_set(clock_div_t __x)
1889 if((__x <= 0) || (__x > 129))
1906 __asm__ __volatile__ (
1907 "in __tmp_reg__,__SREG__" "\n\t"
1909 "out %1, __zero_reg__" "\n\t"
1918 "cpi %0, 0x01" "\n\t"
1920 "ldi %2, 0x81" "\n\t"
1922 "ori %2, 0x80" "\n\t"
1932 "L_%=: " "out __SREG__, __tmp_reg__"
1935 "I" (_SFR_IO_ADDR(XDIV)),
1941 static __inline__ clock_div_t clock_prescale_get(
void)
__attribute__((__always_inline__));
1943 clock_div_t clock_prescale_get(
void)
1951 return (clock_div_t)(129 - (XDIV & 0x7F));
static __inline void __attribute__((__always_inline__)) __power_all_enable()
Definition: power.h:1148
#define bit_is_clear(sfr, bit)
Definition: sfr_defs.h:245
unsigned char uint8_t
Definition: stdint.h:79
#define _BV(bit)
Definition: sfr_defs.h:208