31#define _AVR_POWER_H_ 1
35#include <bits/attribs.h>
446#if defined(__AVR_HAVE_PRR_PRADC)
447#define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
448#define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
451#if defined(__AVR_HAVE_PRR_PRCAN)
452#define power_can_enable() (PRR &= (uint8_t)~(1 << PRCAN))
453#define power_can_disable() (PRR |= (uint8_t)(1 << PRCAN))
456#if defined(__AVR_HAVE_PRR_PRLCD)
457#define power_lcd_enable() (PRR &= (uint8_t)~(1 << PRLCD))
458#define power_lcd_disable() (PRR |= (uint8_t)(1 << PRLCD))
461#if defined(__AVR_HAVE_PRR_PRLIN)
462#define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
463#define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
466#if defined(__AVR_HAVE_PRR_PRPSC)
467#define power_psc_enable() (PRR &= (uint8_t)~(1 << PRPSC))
468#define power_psc_disable() (PRR |= (uint8_t)(1 << PRPSC))
471#if defined(__AVR_HAVE_PRR_PRPSC0)
472#define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
473#define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
476#if defined(__AVR_HAVE_PRR_PRPSC1)
477#define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
478#define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
481#if defined(__AVR_HAVE_PRR_PRPSC2)
482#define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
483#define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
486#if defined(__AVR_HAVE_PRR_PRPSCR)
487#define power_pscr_enable() (PRR &= (uint8_t)~(1 << PRPSCR))
488#define power_pscr_disable() (PRR |= (uint8_t)(1 << PRPSCR))
491#if defined(__AVR_HAVE_PRR_PRSPI)
492#define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
493#define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
496#if defined(__AVR_HAVE_PRR_PRTIM0)
497#define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
498#define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
501#if defined(__AVR_HAVE_PRR_PRTIM1)
502#define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
503#define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
506#if defined(__AVR_HAVE_PRR_PRTIM2)
507#define power_timer2_enable() (PRR &= (uint8_t)~(1 << PRTIM2))
508#define power_timer2_disable() (PRR |= (uint8_t)(1 << PRTIM2))
511#if defined(__AVR_HAVE_PRR_PRTWI)
512#define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
513#define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
516#if defined(__AVR_HAVE_PRR_PRUSART)
517#define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART))
518#define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART))
521#if defined(__AVR_HAVE_PRR_PRUSART0)
522#define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
523#define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
526#if defined(__AVR_HAVE_PRR_PRUSART1)
527#define power_usart1_enable() (PRR &= (uint8_t)~(1 << PRUSART1))
528#define power_usart1_disable() (PRR |= (uint8_t)(1 << PRUSART1))
531#if defined(__AVR_HAVE_PRR_PRUSI)
532#define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
533#define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
536#if defined(__AVR_HAVE_PRR0_PRADC)
537#define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
538#define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
541#if defined(__AVR_HAVE_PRR0_PRC0)
542#define power_clock_output_enable() (PRR0 &= (uint8_t)~(1 << PRCO))
543#define power_clock_output_disable() (PRR0 |= (uint8_t)(1 << PRCO))
546#if defined(__AVR_HAVE_PRR0_PRCRC)
547#define power_crc_enable() (PRR0 &= (uint8_t)~(1 << PRCRC))
548#define power_crc_disable() (PRR0 |= (uint8_t)(1 << PRCRC))
551#if defined(__AVR_HAVE_PRR0_PRCU)
552#define power_crypto_enable() (PRR0 &= (uint8_t)~(1 << PRCU))
553#define power_crypto_disable() (PRR0 |= (uint8_t)(1 << PRCU))
556#if defined(__AVR_HAVE_PRR0_PRDS)
557#define power_irdriver_enable() (PRR0 &= (uint8_t)~(1 << PRDS))
558#define power_irdriver_disable() (PRR0 |= (uint8_t)(1 << PRDS))
561#if defined(__AVR_HAVE_PRR0_PRLFR)
562#define power_lfreceiver_enable() (PRR0 &= (uint8_t)~(1 << PRLFR))
563#define power_lfreceiver_disable() (PRR0 |= (uint8_t)(1 << PRLFR))
566#if defined(__AVR_HAVE_PRR0_PRLFRS)
567#define power_lfrs_enable() (PRR0 &= (uint8_t)~(1 << PRLFRS))
568#define power_lfrs_disable() (PRR0 |= (uint8_t)(1 << PRLFRS))
571#if defined(__AVR_HAVE_PRR0_PRLIN)
572#define power_lin_enable() (PRR0 &= (uint8_t)~(1 << PRLIN))
573#define power_lin_disable() (PRR0 |= (uint8_t)(1 << PRLIN))
576#if defined(__AVR_HAVE_PRR0_PRPGA)
577#define power_pga_enable() (PRR0 &= (uint8_t)~(1 << PRPGA))
578#define power_pga_disable() (PRR0 |= (uint8_t)(1 << PRPGA))
581#if defined(__AVR_HAVE_PRR0_PRRXDC)
582#define power_receive_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRRXDC))
583#define power_receive_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRRXDC))
586#if defined(__AVR_HAVE_PRR0_PRSPI)
587#define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
588#define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
591#if defined(__AVR_HAVE_PRR0_PRT0)
592#define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRT0))
593#define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRT0))
596#if defined(__AVR_HAVE_PRR0_PRTIM0)
597#define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
598#define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
601#if defined(__AVR_HAVE_PRR0_PRT1)
602#define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRT1))
603#define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRT1))
606#if defined(__AVR_HAVE_PRR0_PRTIM1)
607#define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
608#define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
611#if defined(__AVR_HAVE_PRR0_PRT2)
612#define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRT2))
613#define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRT2))
616#if defined(__AVR_HAVE_PRR0_PRTIM2)
617#define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
618#define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
621#if defined(__AVR_HAVE_PRR0_PRT3)
622#define power_timer3_enable() (PRR0 &= (uint8_t)~(1 << PRT3))
623#define power_timer3_disable() (PRR0 |= (uint8_t)(1 << PRT3))
626#if defined(__AVR_HAVE_PRR0_PRTM)
627#define power_timermodulator_enable() (PRR0 &= (uint8_t)~(1 << PRTM))
628#define power_timermodulator_disable() (PRR0 |= (uint8_t)(1 << PRTM))
631#if defined(__AVR_HAVE_PRR0_PRTWI)
632#define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
633#define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
636#if defined(__AVR_HAVE_PRR0_PRTWI1)
637#define power_twi1_enable() (PRR0 &= (uint8_t)~(1 << PRTWI1))
638#define power_twi1_disable() (PRR0 |= (uint8_t)(1 << PRTWI1))
641#if defined(__AVR_HAVE_PRR0_PRTXDC)
642#define power_transmit_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRTXDC))
643#define power_transmit_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRTXDC))
646#if defined(__AVR_HAVE_PRR0_PRUSART0)
647#define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
648#define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
651#if defined(__AVR_HAVE_PRR0_PRUSART1)
652#define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
653#define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
656#if defined(__AVR_HAVE_PRR0_PRVADC)
657#define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
658#define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
661#if defined(__AVR_HAVE_PRR0_PRVM)
662#define power_voltage_monitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
663#define power_voltage_monitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
666#if defined(__AVR_HAVE_PRR0_PRVRM)
667#define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
668#define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
671#if defined(__AVR_HAVE_PRR1_PRAES)
672#define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
673#define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
676#if defined(__AVR_HAVE_PRR1_PRCI)
677#define power_cinterface_enable() (PRR1 &= (uint8_t)~(1 << PRCI))
678#define power_cinterface_disable() (PRR1 |= (uint8_t)(1 << PRCI))
681#if defined(__AVR_HAVE_PRR1_PRHSSPI)
682#define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
683#define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
686#if defined(__AVR_HAVE_PRR1_PRKB)
687#define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
688#define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
691#if defined(__AVR_HAVE_PRR1_PRLFPH)
692#define power_lfph_enable() (PRR1 &= (uint8_t)~(1 << PRLFPH))
693#define power_lfph_disable() (PRR1 |= (uint8_t)(1 << PRLFPH))
696#if defined(__AVR_HAVE_PRR1_PRLFR)
697#define power_lfreceiver_enable() (PRR1 &= (uint8_t)~(1 << PRLFR))
698#define power_lfreceiver_disable() (PRR1 |= (uint8_t)(1 << PRLFR))
701#if defined(__AVR_HAVE_PRR1_PRLFTP)
702#define power_lftp_enable() (PRR1 &= (uint8_t)~(1 << PRLFTP))
703#define power_lftp_disable() (PRR1 |= (uint8_t)(1 << PRLFTP))
706#if defined(__AVR_HAVE_PRR1_PRSCI)
707#define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
708#define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
711#if defined(__AVR_HAVE_PRR1_PRSPI)
712#define power_spi_enable() (PRR1 &= (uint8_t)~(1 << PRSPI))
713#define power_spi_disable() (PRR1 |= (uint8_t)(1 << PRSPI))
716#if defined(__AVR_HAVE_PRR1_PRT1)
717#define power_timer1_enable() (PRR1 &= (uint8_t)~(1 << PRT1))
718#define power_timer1_disable() (PRR1 |= (uint8_t)(1 << PRT1))
721#if defined(__AVR_HAVE_PRR1_PRT2)
722#define power_timer2_enable() (PRR1 &= (uint8_t)~(1 << PRT2))
723#define power_timer2_disable() (PRR1 |= (uint8_t)(1 << PRT2))
726#if defined(__AVR_HAVE_PRR1_PRT3)
727#define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRT3))
728#define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRT3))
731#if defined(__AVR_HAVE_PRR1_PRT4)
732#define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRT4))
733#define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRT4))
736#if defined(__AVR_HAVE_PRR1_PRT5)
737#define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRT5))
738#define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRT5))
741#if defined(__AVR_HAVE_PRR1_PRTIM3)
742#define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
743#define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
746#if defined(__AVR_HAVE_PRR1_PRTIM4)
747#define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
748#define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
751#if defined(__AVR_HAVE_PRR1_PRTIM5)
752#define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
753#define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
756#if defined(__AVR_HAVE_PRR1_PRTRX24)
757#define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
758#define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
761#if defined(__AVR_HAVE_PRR1_PRUSART1)
762#define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
763#define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
766#if defined(__AVR_HAVE_PRR1_PRUSART2)
767#define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
768#define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
771#if defined(__AVR_HAVE_PRR1_PRUSART3)
772#define power_usart3_enable() (PRR1 &= (uint8_t)~(1 << PRUSART3))
773#define power_usart3_disable() (PRR1 |= (uint8_t)(1 << PRUSART3))
776#if defined(__AVR_HAVE_PRR1_PRUSB)
777#define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
778#define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
781#if defined(__AVR_HAVE_PRR1_PRUSBH)
782#define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
783#define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
786#if defined(__AVR_HAVE_PRR2_PRDF)
787#define power_data_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRDF))
788#define power_data_fifo_disable() (PRR2 |= (uint8_t)(1 << PRDF))
791#if defined(__AVR_HAVE_PRR2_PRIDS)
792#define power_id_scan_enable() (PRR2 &= (uint8_t)~(1 << PRIDS))
793#define power_id_scan_disable() (PRR2 |= (uint8_t)(1 << PRIDS))
796#if defined(__AVR_HAVE_PRR2_PRRAM0)
797#define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
798#define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
801#if defined(__AVR_HAVE_PRR2_PRRAM1)
802#define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
803#define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
806#if defined(__AVR_HAVE_PRR2_PRRAM2)
807#define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
808#define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
811#if defined(__AVR_HAVE_PRR2_PRRAM3)
812#define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
813#define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
816#if defined(__AVR_HAVE_PRR2_PRRS)
817#define power_rssi_buffer_enable() (PRR2 &= (uint8_t)~(1 << PRRS))
818#define power_rssi_buffer_disable() (PRR2 |= (uint8_t)(1 << PRRS))
821#if defined(__AVR_HAVE_PRR2_PRSF)
822#define power_preamble_rssi_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRSF))
823#define power_preamble_rssi_fifo_disable() (PRR2 |= (uint8_t)(1 << PRSF))
826#if defined(__AVR_HAVE_PRR2_PRSPI2)
827#define power_spi2_enable() (PRR2 &= (uint8_t)~(1 << PRSPI2))
828#define power_spi2_disable() (PRR2 |= (uint8_t)(1 << PRSPI2))
831#if defined(__AVR_HAVE_PRR2_PRSSM)
832#define power_sequencer_state_machine_enable() (PRR2 &= (uint8_t)~(1 << PRSSM))
833#define power_sequencer_state_machine_disable() (PRR2 |= (uint8_t)(1 << PRSSM))
836#if defined(__AVR_HAVE_PRR2_PRTM)
837#define power_tx_modulator_enable() (PRR2 &= (uint8_t)~(1 << PRTM))
838#define power_tx_modulator_disable() (PRR2 |= (uint8_t)(1 << PRTM))
841#if defined(__AVR_HAVE_PRR2_PRTWI2)
842#define power_twi2_enable() (PRR2 &= (uint8_t)~(1 << PRTWI2))
843#define power_twi2_disable() (PRR2 |= (uint8_t)(1 << PRTWI2))
846#if defined(__AVR_HAVE_PRR2_PRXA)
847#define power_rx_buffer_A_enable() (PRR2 &= (uint8_t)~(1 << PRXA))
848#define power_rx_buffer_A_disable() (PRR2 |= (uint8_t)(1 << PRXA))
851#if defined(__AVR_HAVE_PRR2_PRXB)
852#define power_rx_buffer_B_enable() (PRR2 &= (uint8_t)~(1 << PRXB))
853#define power_rx_buffer_B_disable() (PRR2 |= (uint8_t)(1 << PRXB))
856#if defined(__AVR_HAVE_PRGEN_AES)
857#define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
858#define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
861#if defined(__AVR_HAVE_PRGEN_DMA)
862#define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
863#define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
866#if defined(__AVR_HAVE_PRGEN_EBI)
867#define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
868#define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
871#if defined(__AVR_HAVE_PRGEN_EDMA)
872#define power_edma_enable() (PR_PRGEN &= (uint8_t)~(PR_EDMA_bm))
873#define power_edma_disable() (PR_PRGEN |= (uint8_t)PR_EDMA_bm)
876#if defined(__AVR_HAVE_PRGEN_EVSYS)
877#define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
878#define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
881#if defined(__AVR_HAVE_PRGEN_LCD)
882#define power_lcd_enable() (PR_PRGEN &= (uint8_t)~(PR_LCD_bm))
883#define power_lcd_disable() (PR_PRGEN |= (uint8_t)PR_LCD_bm)
886#if defined(__AVR_HAVE_PRGEN_RTC)
887#define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
888#define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
891#if defined(__AVR_HAVE_PRGEN_USB)
892#define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
893#define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
896#if defined(__AVR_HAVE_PRGEN_XCL)
897#define power_xcl_enable() (PR_PRGEN &= (uint8_t)~(PR_XCL_bm))
898#define power_xcl_disable() (PR_PRGEN |= (uint8_t)PR_XCL_bm)
901#if defined(__AVR_HAVE_PRPA_AC)
902#define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
903#define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
906#if defined(__AVR_HAVE_PRPA_ADC)
907#define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
908#define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
911#if defined(__AVR_HAVE_PRPA_DAC)
912#define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
913#define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
916#if defined(__AVR_HAVE_PRPB_AC)
917#define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
918#define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
921#if defined(__AVR_HAVE_PRPB_ADC)
922#define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
923#define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
926#if defined(__AVR_HAVE_PRPB_DAC)
927#define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
928#define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
931#if defined(__AVR_HAVE_PRPC_HIRES)
932#define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
933#define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
936#if defined(__AVR_HAVE_PRPC_SPI)
937#define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
938#define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
941#if defined(__AVR_HAVE_PRPC_TC0)
942#define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
943#define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
946#if defined(__AVR_HAVE_PRPC_TC1)
947#define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
948#define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
951#if defined(__AVR_HAVE_PRPC_TC4)
952#define power_tc4c_enable() (PR_PRPC &= (uint8_t)~(PR_TC4_bm))
953#define power_tc4c_disable() (PR_PRPC |= (uint8_t)PR_TC4_bm)
956#if defined(__AVR_HAVE_PRPC_TC5)
957#define power_tc5c_enable() (PR_PRPC &= (uint8_t)~(PR_TC5_bm))
958#define power_tc5c_disable() (PR_PRPC |= (uint8_t)PR_TC5_bm)
961#if defined(__AVR_HAVE_PRPC_TWI)
962#define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
963#define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
966#if defined(__AVR_HAVE_PRPC_USART0)
967#define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
968#define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
971#if defined(__AVR_HAVE_PRPC_USART1)
972#define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
973#define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
976#if defined(__AVR_HAVE_PRPD_HIRES)
977#define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
978#define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
981#if defined(__AVR_HAVE_PRPD_SPI)
982#define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
983#define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
986#if defined(__AVR_HAVE_PRPD_TC0)
987#define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
988#define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
991#if defined(__AVR_HAVE_PRPD_TC1)
992#define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
993#define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
996#if defined(__AVR_HAVE_PRPD_TC5)
997#define power_tc5d_enable() (PR_PRPD &= (uint8_t)~(PR_TC5_bm))
998#define power_tc5d_disable() (PR_PRPD |= (uint8_t)PR_TC5_bm)
1001#if defined(__AVR_HAVE_PRPD_TWI)
1002#define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
1003#define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
1006#if defined(__AVR_HAVE_PRPD_USART0)
1007#define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1008#define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1011#if defined(__AVR_HAVE_PRPD_USART1)
1012#define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
1013#define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
1016#if defined(__AVR_HAVE_PRPE_HIRES)
1017#define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
1018#define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
1021#if defined(__AVR_HAVE_PRPE_SPI)
1022#define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
1023#define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
1026#if defined(__AVR_HAVE_PRPE_TC0)
1027#define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1028#define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1031#if defined(__AVR_HAVE_PRPE_TC1)
1032#define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
1033#define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
1036#if defined(__AVR_HAVE_PRPE_TWI)
1037#define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1038#define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1041#if defined(__AVR_HAVE_PRPE_USART0)
1042#define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1043#define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1046#if defined(__AVR_HAVE_PRPE_USART1)
1047#define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
1048#define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
1051#if defined(__AVR_HAVE_PRPF_HIRES)
1052#define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
1053#define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
1056#if defined(__AVR_HAVE_PRPF_SPI)
1057#define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
1058#define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
1061#if defined(__AVR_HAVE_PRPF_TC0)
1062#define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1063#define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1066#if defined(__AVR_HAVE_PRPF_TC1)
1067#define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
1068#define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
1071#if defined(__AVR_HAVE_PRPF_TWI)
1072#define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
1073#define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
1076#if defined(__AVR_HAVE_PRPF_USART0)
1077#define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1078#define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1081#if defined(__AVR_HAVE_PRPF_USART1)
1082#define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1083#define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1094static __ATTR_ALWAYS_INLINE__
void __power_all_enable()
1096#ifdef __AVR_HAVE_PRR
1097 PRR &= (
uint8_t)~(__AVR_HAVE_PRR);
1100#ifdef __AVR_HAVE_PRR0
1101 PRR0 &= (
uint8_t)~(__AVR_HAVE_PRR0);
1104#ifdef __AVR_HAVE_PRR1
1105 PRR1 &= (
uint8_t)~(__AVR_HAVE_PRR1);
1108#ifdef __AVR_HAVE_PRR2
1109 PRR2 &= (
uint8_t)~(__AVR_HAVE_PRR2);
1112#ifdef __AVR_HAVE_PRGEN
1113 PR_PRGEN &= (
uint8_t)~(__AVR_HAVE_PRGEN);
1116#ifdef __AVR_HAVE_PRPA
1117 PR_PRPA &= (
uint8_t)~(__AVR_HAVE_PRPA);
1120#ifdef __AVR_HAVE_PRPB
1121 PR_PRPB &= (
uint8_t)~(__AVR_HAVE_PRPB);
1124#ifdef __AVR_HAVE_PRPC
1125 PR_PRPC &= (
uint8_t)~(__AVR_HAVE_PRPC);
1128#ifdef __AVR_HAVE_PRPD
1129 PR_PRPD &= (
uint8_t)~(__AVR_HAVE_PRPD);
1132#ifdef __AVR_HAVE_PRPE
1133 PR_PRPE &= (
uint8_t)~(__AVR_HAVE_PRPE);
1136#ifdef __AVR_HAVE_PRPF
1137 PR_PRPF &= (
uint8_t)~(__AVR_HAVE_PRPF);
1150static __ATTR_ALWAYS_INLINE__
void __power_all_disable()
1152#ifdef __AVR_HAVE_PRR
1153 PRR |= (
uint8_t)(__AVR_HAVE_PRR);
1156#ifdef __AVR_HAVE_PRR0
1157 PRR0 |= (
uint8_t)(__AVR_HAVE_PRR0);
1160#ifdef __AVR_HAVE_PRR1
1161 PRR1 |= (
uint8_t)(__AVR_HAVE_PRR1);
1164#ifdef __AVR_HAVE_PRR2
1165 PRR2 |= (
uint8_t)(__AVR_HAVE_PRR2);
1168#ifdef __AVR_HAVE_PRGEN
1169 PR_PRGEN |= (
uint8_t)(__AVR_HAVE_PRGEN);
1172#ifdef __AVR_HAVE_PRPA
1173 PR_PRPA |= (
uint8_t)(__AVR_HAVE_PRPA);
1176#ifdef __AVR_HAVE_PRPB
1177 PR_PRPB |= (
uint8_t)(__AVR_HAVE_PRPB);
1180#ifdef __AVR_HAVE_PRPC
1181 PR_PRPC |= (
uint8_t)(__AVR_HAVE_PRPC);
1184#ifdef __AVR_HAVE_PRPD
1185 PR_PRPD |= (
uint8_t)(__AVR_HAVE_PRPD);
1188#ifdef __AVR_HAVE_PRPE
1189 PR_PRPE |= (
uint8_t)(__AVR_HAVE_PRPE);
1192#ifdef __AVR_HAVE_PRPF
1193 PR_PRPF |= (
uint8_t)(__AVR_HAVE_PRPF);
1199#ifndef power_all_enable
1200#define power_all_enable() __power_all_enable()
1203#ifndef power_all_disable
1204#define power_all_disable() __power_all_disable()
1209#if defined(__DOXYGEN__) \
1210|| defined(__AVR_AT90CAN32__) \
1211|| defined(__AVR_AT90CAN64__) \
1212|| defined(__AVR_AT90CAN128__) \
1213|| defined(__AVR_AT90PWM1__) \
1214|| defined(__AVR_AT90PWM2__) \
1215|| defined(__AVR_AT90PWM2B__) \
1216|| defined(__AVR_AT90PWM3__) \
1217|| defined(__AVR_AT90PWM3B__) \
1218|| defined(__AVR_AT90PWM81__) \
1219|| defined(__AVR_AT90PWM161__) \
1220|| defined(__AVR_AT90PWM216__) \
1221|| defined(__AVR_AT90PWM316__) \
1222|| defined(__AVR_AT90SCR100__) \
1223|| defined(__AVR_AT90USB646__) \
1224|| defined(__AVR_AT90USB647__) \
1225|| defined(__AVR_AT90USB82__) \
1226|| defined(__AVR_AT90USB1286__) \
1227|| defined(__AVR_AT90USB1287__) \
1228|| defined(__AVR_AT90USB162__) \
1229|| defined(__AVR_ATA5505__) \
1230|| defined(__AVR_ATA5272__) \
1231|| defined(__AVR_ATmega1280__) \
1232|| defined(__AVR_ATmega1281__) \
1233|| defined(__AVR_ATmega1284__) \
1234|| defined(__AVR_ATmega128RFA1__) \
1235|| defined(__AVR_ATmega1284RFR2__) \
1236|| defined(__AVR_ATmega128RFR2__) \
1237|| defined(__AVR_ATmega1284P__) \
1238|| defined(__AVR_ATmega162__) \
1239|| defined(__AVR_ATmega164A__) \
1240|| defined(__AVR_ATmega164P__) \
1241|| defined(__AVR_ATmega164PA__) \
1242|| defined(__AVR_ATmega165__) \
1243|| defined(__AVR_ATmega165A__) \
1244|| defined(__AVR_ATmega165P__) \
1245|| defined(__AVR_ATmega165PA__) \
1246|| defined(__AVR_ATmega168__) \
1247|| defined(__AVR_ATmega168P__) \
1248|| defined(__AVR_ATmega168A__) \
1249|| defined(__AVR_ATmega168PA__) \
1250|| defined(__AVR_ATmega168PB__) \
1251|| defined(__AVR_ATmega169__) \
1252|| defined(__AVR_ATmega169A__) \
1253|| defined(__AVR_ATmega169P__) \
1254|| defined(__AVR_ATmega169PA__) \
1255|| defined(__AVR_ATmega16M1__) \
1256|| defined(__AVR_ATmega16U2__) \
1257|| defined(__AVR_ATmega16U4__) \
1258|| defined(__AVR_ATmega2560__) \
1259|| defined(__AVR_ATmega2561__) \
1260|| defined(__AVR_ATmega2564RFR2__) \
1261|| defined(__AVR_ATmega256RFR2__) \
1262|| defined(__AVR_ATmega324A__) \
1263|| defined(__AVR_ATmega324P__) \
1264|| defined(__AVR_ATmega324PA__) \
1265|| defined(__AVR_ATmega324PB__) \
1266|| defined(__AVR_ATmega325__) \
1267|| defined(__AVR_ATmega325A__) \
1268|| defined(__AVR_ATmega325PA__) \
1269|| defined(__AVR_ATmega3250__) \
1270|| defined(__AVR_ATmega3250A__) \
1271|| defined(__AVR_ATmega3250PA__) \
1272|| defined(__AVR_ATmega328__) \
1273|| defined(__AVR_ATmega328P__) \
1274|| defined(__AVR_ATmega328PB__) \
1275|| defined(__AVR_ATmega329__) \
1276|| defined(__AVR_ATmega329A__) \
1277|| defined(__AVR_ATmega329P__) \
1278|| defined(__AVR_ATmega329PA__) \
1279|| defined(__AVR_ATmega3290__) \
1280|| defined(__AVR_ATmega3290A__) \
1281|| defined(__AVR_ATmega3290P__) \
1282|| defined(__AVR_ATmega3290PA__) \
1283|| defined(__AVR_ATmega32C1__) \
1284|| defined(__AVR_ATmega32M1__) \
1285|| defined(__AVR_ATmega32U2__) \
1286|| defined(__AVR_ATmega32U4__) \
1287|| defined(__AVR_ATmega32U6__) \
1288|| defined(__AVR_ATmega48__) \
1289|| defined(__AVR_ATmega48A__) \
1290|| defined(__AVR_ATmega48PA__) \
1291|| defined(__AVR_ATmega48P__) \
1292|| defined(__AVR_ATmega640__) \
1293|| defined(__AVR_ATmega649P__) \
1294|| defined(__AVR_ATmega644__) \
1295|| defined(__AVR_ATmega644A__) \
1296|| defined(__AVR_ATmega644P__) \
1297|| defined(__AVR_ATmega644PA__) \
1298|| defined(__AVR_ATmega645__) \
1299|| defined(__AVR_ATmega645A__) \
1300|| defined(__AVR_ATmega645P__) \
1301|| defined(__AVR_ATmega6450__) \
1302|| defined(__AVR_ATmega6450A__) \
1303|| defined(__AVR_ATmega6450P__) \
1304|| defined(__AVR_ATmega649__) \
1305|| defined(__AVR_ATmega649A__) \
1306|| defined(__AVR_ATmega64M1__) \
1307|| defined(__AVR_ATmega64C1__) \
1308|| defined(__AVR_ATmega6490__) \
1309|| defined(__AVR_ATmega6490A__) \
1310|| defined(__AVR_ATmega6490P__) \
1311|| defined(__AVR_ATmega644RFR2__) \
1312|| defined(__AVR_ATmega64RFR2__) \
1313|| defined(__AVR_ATmega88__) \
1314|| defined(__AVR_ATmega88A__) \
1315|| defined(__AVR_ATmega88P__) \
1316|| defined(__AVR_ATmega88PA__) \
1317|| defined(__AVR_ATmega8U2__) \
1318|| defined(__AVR_ATmega16U2__) \
1319|| defined(__AVR_ATmega32U2__) \
1320|| defined(__AVR_ATtiny48__) \
1321|| defined(__AVR_ATtiny88__) \
1322|| defined(__AVR_ATtiny87__) \
1323|| defined(__AVR_ATtiny167__)
1388#if defined(__AVR_ATmega128RFA1__) \
1389|| defined(__AVR_ATmega2564RFR2__) \
1390|| defined(__AVR_ATmega1284RFR2__) \
1391|| defined(__AVR_ATmega644RFR2__) \
1392|| defined(__AVR_ATmega256RFR2__) \
1393|| defined(__AVR_ATmega128RFR2__) \
1394|| defined(__AVR_ATmega64RFR2__)
1395 , clock_div_1_rc = 15
1418 __asm__ __volatile__ (
1419 "in __tmp_reg__,__SREG__" "\n\t"
1423 "out __SREG__, __tmp_reg__"
1426 "M" (_SFR_MEM_ADDR(CLKPR)),
1440#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1442#elif defined(__AVR_ATmega16HVB__) \
1443|| defined(__AVR_ATmega16HVBREVB__) \
1444|| defined(__AVR_ATmega32HVB__) \
1445|| defined(__AVR_ATmega32HVBREVB__)
1460 __asm__ __volatile__ (
1461 "in __tmp_reg__,__SREG__" "\n\t"
1465 "out __SREG__, __tmp_reg__"
1468 "M" (_SFR_MEM_ADDR(CLKPR)),
1473#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)))
1475#elif defined(__AVR_ATA5790__) \
1476|| defined (__AVR_ATA5795__)
1490static __ATTR_ALWAYS_INLINE__
void system_clock_prescale_set(clock_div_t);
1492void system_clock_prescale_set(clock_div_t __x)
1495 __asm__ __volatile__ (
1496 "in __tmp_reg__,__SREG__" "\n\t"
1500 "out __SREG__, __tmp_reg__"
1503 "I" (_SFR_IO_ADDR(CLKPR)),
1508#define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1512 timer_clock_div_reset = 0,
1513 timer_clock_div_1 = 1,
1514 timer_clock_div_2 = 2,
1515 timer_clock_div_4 = 3,
1516 timer_clock_div_8 = 4,
1517 timer_clock_div_16 = 5,
1518 timer_clock_div_32 = 6,
1519 timer_clock_div_64 = 7
1522static __ATTR_ALWAYS_INLINE__
void timer_clock_prescale_set(timer_clock_div_t);
1524void timer_clock_prescale_set(timer_clock_div_t __x)
1527 __asm__ __volatile__ (
1528 "in __tmp_reg__,__SREG__" "\n\t"
1530 "in %[temp],%[clkpr]" "\n\t"
1531 "out %[clkpr],%[enable]" "\n\t"
1532 "cbr %[temp],%[not_CLTPS]" "\n\t"
1533 "or %[temp], %[set_value]" "\n\t"
1534 "out %[clkpr],%[temp]" "\n\t"
1535 "out __SREG__,__tmp_reg__"
1537 : [clkpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1539 [not_CLTPS]
"M" ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)),
1540 [set_value]
"r" ((
uint8_t) ((__x & 7) << 3))
1544#define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1546#elif defined(__AVR_ATA6285__) \
1547|| defined(__AVR_ATA6286__)
1561static __ATTR_ALWAYS_INLINE__
void system_clock_prescale_set(clock_div_t);
1563void system_clock_prescale_set(clock_div_t __x)
1566 __asm__ __volatile__ (
1567 "in __tmp_reg__,__SREG__" "\n\t"
1569 "in %[temp],%[clpr]" "\n\t"
1570 "out %[clpr],%[enable]" "\n\t"
1571 "cbr %[temp],%[not_CLKPS]" "\n\t"
1572 "or %[temp], %[set_value]" "\n\t"
1573 "out %[clpr],%[temp]" "\n\t"
1574 "out __SREG__,__tmp_reg__"
1576 : [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1577 [enable]
"r" ((
uint8_t) (1 << CLPCE)),
1578 [not_CLKPS]
"M" ((1 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0)),
1579 [set_value]
"r" ((
uint8_t) (__x & 7))
1583#define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1587 timer_clock_div_reset = 0,
1588 timer_clock_div_1 = 1,
1589 timer_clock_div_2 = 2,
1590 timer_clock_div_4 = 3,
1591 timer_clock_div_8 = 4,
1592 timer_clock_div_16 = 5,
1593 timer_clock_div_32 = 6,
1594 timer_clock_div_64 = 7
1597static __ATTR_ALWAYS_INLINE__
void timer_clock_prescale_set(timer_clock_div_t);
1599void timer_clock_prescale_set(timer_clock_div_t __x)
1602 __asm__ __volatile__ (
1603 "in __tmp_reg__,__SREG__" "\n\t"
1605 "in %[temp],%[clpr]" "\n\t"
1606 "out %[clpr],%[enable]" "\n\t"
1607 "cbr %[temp],%[not_CLTPS]" "\n\t"
1608 "or %[temp], %[set_value]" "\n\t"
1609 "out %[clpr],%[temp]" "\n\t"
1610 "out __SREG__,__tmp_reg__"
1612 : [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1613 [enable]
"r" ((
uint8_t) (1 << CLPCE)),
1614 [not_CLTPS]
"M" ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)),
1615 [set_value]
"r" ((
uint8_t) ((__x & 7) << 3))
1619#define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1621#elif defined(__AVR_ATtiny24__) \
1622|| defined(__AVR_ATtiny24A__) \
1623|| defined(__AVR_ATtiny44__) \
1624|| defined(__AVR_ATtiny44A__) \
1625|| defined(__AVR_ATtiny84__) \
1626|| defined(__AVR_ATtiny84A__) \
1627|| defined(__AVR_ATtiny25__) \
1628|| defined(__AVR_ATtiny45__) \
1629|| defined(__AVR_ATtiny85__) \
1630|| defined(__AVR_ATtiny261A__) \
1631|| defined(__AVR_ATtiny261__) \
1632|| defined(__AVR_ATtiny461__) \
1633|| defined(__AVR_ATtiny461A__) \
1634|| defined(__AVR_ATtiny861__) \
1635|| defined(__AVR_ATtiny861A__) \
1636|| defined(__AVR_ATtiny2313__) \
1637|| defined(__AVR_ATtiny2313A__) \
1638|| defined(__AVR_ATtiny4313__) \
1639|| defined(__AVR_ATtiny13__) \
1640|| defined(__AVR_ATtiny13A__) \
1641|| defined(__AVR_ATtiny43U__) \
1660 __asm__ __volatile__ (
1661 "in __tmp_reg__,__SREG__" "\n\t"
1665 "out __SREG__, __tmp_reg__"
1667 :
"d" ((
uint8_t) (1 << CLKPCE)),
1668 "I" (_SFR_IO_ADDR(CLKPR)),
1674#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1676#elif defined(__AVR_ATtiny441__) \
1677|| defined(__AVR_ATtiny841__)
1696 __asm__ __volatile__ (
1697 "in __tmp_reg__,__SREG__" "\n\t"
1701 "out __SREG__, __tmp_reg__"
1704 "n" (_SFR_MEM_ADDR(CLKPR)),
1705 "n" (_SFR_MEM_ADDR(CCP)),
1710#define clock_prescale_get() (clock_div_t) (CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1712#elif defined(__AVR_ATmega64__) \
1713|| defined(__AVR_ATmega103__) \
1714|| defined(__AVR_ATmega128__)
1750 __asm__ __volatile__ (
1751 "in __tmp_reg__,__SREG__" "\n\t"
1753 "out %2, __zero_reg__" "\n\t"
1762 "cpi %1, 0x01" "\n\t"
1764 "ldi %0, 0x81" "\n\t"
1766 "ori %0, 0x80" "\n\t"
1776 "L_%=: " "out __SREG__, __tmp_reg__"
1779 "I" (_SFR_IO_ADDR(XDIV))
1790 return (clock_div_t) 1;
1794 return (clock_div_t) (129 - (XDIV & 0x7F));
1798#elif defined(__AVR_ATtiny4__) \
1799|| defined(__AVR_ATtiny5__) \
1800|| defined(__AVR_ATtiny9__) \
1801|| defined(__AVR_ATtiny10__) \
1802|| defined(__AVR_ATtiny102__) \
1803|| defined(__AVR_ATtiny104__) \
1804|| defined(__AVR_ATtiny20__) \
1805|| defined(__AVR_ATtiny40__) \
1824 __asm__ __volatile__ (
1825 "in __tmp_reg__,__SREG__" "\n\t"
1829 "out __SREG__, __tmp_reg__"
1832 "I" (_SFR_IO_ADDR(CCP)),
1833 "I" (_SFR_IO_ADDR(CLKPSR)),
1838#define clock_prescale_get() (clock_div_t)(CLKPSR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
#define clock_prescale_get()
Definition: power.h:1440
static void power_all_enable()
static void power_all_disable()
void clock_prescale_set(clock_div_t __x)
Definition: power.h:1415
#define _BV(bit)
Definition: sfr_defs.h:206
#define bit_is_clear(sfr, bit)
Definition: sfr_defs.h:243
unsigned char uint8_t
Definition: stdint.h:81