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_PRTWI0)
637#define power_twi0_enable() (PRR0 &= (uint8_t)~(1 << PRTWI0))
638#define power_twi0_disable() (PRR0 |= (uint8_t)(1 << PRTWI0))
639#if !defined(__AVR_HAVE_PRR0_PRTWI)
640#define power_twi_enable() power_twi0_enable()
641#define power_twi_disable() power_twi0_disable()
645#if defined(__AVR_HAVE_PRR0_PRTWI1)
646#define power_twi1_enable() (PRR0 &= (uint8_t)~(1 << PRTWI1))
647#define power_twi1_disable() (PRR0 |= (uint8_t)(1 << PRTWI1))
650#if defined(__AVR_HAVE_PRR0_PRTXDC)
651#define power_transmit_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRTXDC))
652#define power_transmit_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRTXDC))
655#if defined(__AVR_HAVE_PRR0_PRUSART0)
656#define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
657#define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
660#if defined(__AVR_HAVE_PRR0_PRUSART1)
661#define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
662#define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
665#if defined(__AVR_HAVE_PRR0_PRVADC)
666#define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
667#define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
670#if defined(__AVR_HAVE_PRR0_PRVM)
671#define power_voltage_monitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
672#define power_voltage_monitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
675#if defined(__AVR_HAVE_PRR0_PRVRM)
676#define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
677#define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
680#if defined(__AVR_HAVE_PRR1_PRAES)
681#define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
682#define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
685#if defined(__AVR_HAVE_PRR1_PRCI)
686#define power_cinterface_enable() (PRR1 &= (uint8_t)~(1 << PRCI))
687#define power_cinterface_disable() (PRR1 |= (uint8_t)(1 << PRCI))
690#if defined(__AVR_HAVE_PRR1_PRHSSPI)
691#define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
692#define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
695#if defined(__AVR_HAVE_PRR1_PRKB)
696#define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
697#define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
700#if defined(__AVR_HAVE_PRR1_PRLFPH)
701#define power_lfph_enable() (PRR1 &= (uint8_t)~(1 << PRLFPH))
702#define power_lfph_disable() (PRR1 |= (uint8_t)(1 << PRLFPH))
705#if defined(__AVR_HAVE_PRR1_PRLFR)
706#define power_lfreceiver_enable() (PRR1 &= (uint8_t)~(1 << PRLFR))
707#define power_lfreceiver_disable() (PRR1 |= (uint8_t)(1 << PRLFR))
710#if defined(__AVR_HAVE_PRR1_PRLFTP)
711#define power_lftp_enable() (PRR1 &= (uint8_t)~(1 << PRLFTP))
712#define power_lftp_disable() (PRR1 |= (uint8_t)(1 << PRLFTP))
715#if defined(__AVR_HAVE_PRR1_PRSCI)
716#define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
717#define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
720#if defined(__AVR_HAVE_PRR1_PRSPI)
721#define power_spi_enable() (PRR1 &= (uint8_t)~(1 << PRSPI))
722#define power_spi_disable() (PRR1 |= (uint8_t)(1 << PRSPI))
725#if defined(__AVR_HAVE_PRR1_PRT1)
726#define power_timer1_enable() (PRR1 &= (uint8_t)~(1 << PRT1))
727#define power_timer1_disable() (PRR1 |= (uint8_t)(1 << PRT1))
730#if defined(__AVR_HAVE_PRR1_PRT2)
731#define power_timer2_enable() (PRR1 &= (uint8_t)~(1 << PRT2))
732#define power_timer2_disable() (PRR1 |= (uint8_t)(1 << PRT2))
735#if defined(__AVR_HAVE_PRR1_PRT3)
736#define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRT3))
737#define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRT3))
740#if defined(__AVR_HAVE_PRR1_PRT4)
741#define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRT4))
742#define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRT4))
745#if defined(__AVR_HAVE_PRR1_PRT5)
746#define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRT5))
747#define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRT5))
750#if defined(__AVR_HAVE_PRR1_PRTIM3)
751#define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
752#define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
755#if defined(__AVR_HAVE_PRR1_PRTIM4)
756#define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
757#define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
760#if defined(__AVR_HAVE_PRR1_PRTIM5)
761#define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
762#define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
765#if defined(__AVR_HAVE_PRR1_PRTRX24)
766#define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
767#define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
770#if defined(__AVR_HAVE_PRR1_PRUSART1)
771#define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
772#define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
775#if defined(__AVR_HAVE_PRR1_PRUSART2)
776#define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
777#define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
780#if defined(__AVR_HAVE_PRR1_PRUSART3)
781#define power_usart3_enable() (PRR1 &= (uint8_t)~(1 << PRUSART3))
782#define power_usart3_disable() (PRR1 |= (uint8_t)(1 << PRUSART3))
785#if defined(__AVR_HAVE_PRR1_PRUSB)
786#define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
787#define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
790#if defined(__AVR_HAVE_PRR1_PRUSBH)
791#define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
792#define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
795#if defined(__AVR_HAVE_PRR1_PRSPI1)
796#define power_spi1_enable() (PRR1 &= (uint8_t)~(1 << PRSPI1))
797#define power_spi1_disable() (PRR1 |= (uint8_t)(1 << PRSPI1))
800#if defined(__AVR_HAVE_PRR1_PRPTC)
801#define power_ptc_enable() (PRR1 &= (uint8_t)~(1 << PRPTC))
802#define power_ptc_disable() (PRR1 |= (uint8_t)(1 << PRPTC))
805#if defined(__AVR_HAVE_PRR1_PRTWI1)
806#define power_twi1_enable() (PRR1 &= (uint8_t)~(1 << PRTWI1))
807#define power_twi1_disable() (PRR1 |= (uint8_t)(1 << PRTWI1))
810#if defined(__AVR_HAVE_PRR2_PRDF)
811#define power_data_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRDF))
812#define power_data_fifo_disable() (PRR2 |= (uint8_t)(1 << PRDF))
815#if defined(__AVR_HAVE_PRR2_PRIDS)
816#define power_id_scan_enable() (PRR2 &= (uint8_t)~(1 << PRIDS))
817#define power_id_scan_disable() (PRR2 |= (uint8_t)(1 << PRIDS))
820#if defined(__AVR_HAVE_PRR2_PRRAM0)
821#define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
822#define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
825#if defined(__AVR_HAVE_PRR2_PRRAM1)
826#define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
827#define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
830#if defined(__AVR_HAVE_PRR2_PRRAM2)
831#define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
832#define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
835#if defined(__AVR_HAVE_PRR2_PRRAM3)
836#define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
837#define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
840#if defined(__AVR_HAVE_PRR2_PRRS)
841#define power_rssi_buffer_enable() (PRR2 &= (uint8_t)~(1 << PRRS))
842#define power_rssi_buffer_disable() (PRR2 |= (uint8_t)(1 << PRRS))
845#if defined(__AVR_HAVE_PRR2_PRSF)
846#define power_preamble_rssi_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRSF))
847#define power_preamble_rssi_fifo_disable() (PRR2 |= (uint8_t)(1 << PRSF))
850#if defined(__AVR_HAVE_PRR2_PRSPI2)
851#define power_spi2_enable() (PRR2 &= (uint8_t)~(1 << PRSPI2))
852#define power_spi2_disable() (PRR2 |= (uint8_t)(1 << PRSPI2))
855#if defined(__AVR_HAVE_PRR2_PRSSM)
856#define power_sequencer_state_machine_enable() (PRR2 &= (uint8_t)~(1 << PRSSM))
857#define power_sequencer_state_machine_disable() (PRR2 |= (uint8_t)(1 << PRSSM))
860#if defined(__AVR_HAVE_PRR2_PRTM)
861#define power_tx_modulator_enable() (PRR2 &= (uint8_t)~(1 << PRTM))
862#define power_tx_modulator_disable() (PRR2 |= (uint8_t)(1 << PRTM))
865#if defined(__AVR_HAVE_PRR2_PRTWI2)
866#define power_twi2_enable() (PRR2 &= (uint8_t)~(1 << PRTWI2))
867#define power_twi2_disable() (PRR2 |= (uint8_t)(1 << PRTWI2))
870#if defined(__AVR_HAVE_PRR2_PRXA)
871#define power_rx_buffer_A_enable() (PRR2 &= (uint8_t)~(1 << PRXA))
872#define power_rx_buffer_A_disable() (PRR2 |= (uint8_t)(1 << PRXA))
875#if defined(__AVR_HAVE_PRR2_PRXB)
876#define power_rx_buffer_B_enable() (PRR2 &= (uint8_t)~(1 << PRXB))
877#define power_rx_buffer_B_disable() (PRR2 |= (uint8_t)(1 << PRXB))
880#if defined(__AVR_HAVE_PRGEN_AES)
881#define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
882#define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
885#if defined(__AVR_HAVE_PRGEN_DMA)
886#define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
887#define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
890#if defined(__AVR_HAVE_PRGEN_EBI)
891#define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
892#define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
895#if defined(__AVR_HAVE_PRGEN_EDMA)
896#define power_edma_enable() (PR_PRGEN &= (uint8_t)~(PR_EDMA_bm))
897#define power_edma_disable() (PR_PRGEN |= (uint8_t)PR_EDMA_bm)
900#if defined(__AVR_HAVE_PRGEN_EVSYS)
901#define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
902#define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
905#if defined(__AVR_HAVE_PRGEN_LCD)
906#define power_lcd_enable() (PR_PRGEN &= (uint8_t)~(PR_LCD_bm))
907#define power_lcd_disable() (PR_PRGEN |= (uint8_t)PR_LCD_bm)
910#if defined(__AVR_HAVE_PRGEN_RTC)
911#define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
912#define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
915#if defined(__AVR_HAVE_PRGEN_USB)
916#define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
917#define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
920#if defined(__AVR_HAVE_PRGEN_XCL)
921#define power_xcl_enable() (PR_PRGEN &= (uint8_t)~(PR_XCL_bm))
922#define power_xcl_disable() (PR_PRGEN |= (uint8_t)PR_XCL_bm)
925#if defined(__AVR_HAVE_PRPA_AC)
926#define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
927#define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
930#if defined(__AVR_HAVE_PRPA_ADC)
931#define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
932#define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
935#if defined(__AVR_HAVE_PRPA_DAC)
936#define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
937#define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
940#if defined(__AVR_HAVE_PRPB_AC)
941#define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
942#define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
945#if defined(__AVR_HAVE_PRPB_ADC)
946#define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
947#define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
950#if defined(__AVR_HAVE_PRPB_DAC)
951#define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
952#define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
955#if defined(__AVR_HAVE_PRPC_HIRES)
956#define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
957#define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
960#if defined(__AVR_HAVE_PRPC_SPI)
961#define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
962#define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
965#if defined(__AVR_HAVE_PRPC_TC0)
966#define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
967#define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
970#if defined(__AVR_HAVE_PRPC_TC1)
971#define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
972#define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
975#if defined(__AVR_HAVE_PRPC_TC4)
976#define power_tc4c_enable() (PR_PRPC &= (uint8_t)~(PR_TC4_bm))
977#define power_tc4c_disable() (PR_PRPC |= (uint8_t)PR_TC4_bm)
980#if defined(__AVR_HAVE_PRPC_TC5)
981#define power_tc5c_enable() (PR_PRPC &= (uint8_t)~(PR_TC5_bm))
982#define power_tc5c_disable() (PR_PRPC |= (uint8_t)PR_TC5_bm)
985#if defined(__AVR_HAVE_PRPC_TWI)
986#define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
987#define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
990#if defined(__AVR_HAVE_PRPC_USART0)
991#define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
992#define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
995#if defined(__AVR_HAVE_PRPC_USART1)
996#define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
997#define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1000#if defined(__AVR_HAVE_PRPD_HIRES)
1001#define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
1002#define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
1005#if defined(__AVR_HAVE_PRPD_SPI)
1006#define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1007#define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1010#if defined(__AVR_HAVE_PRPD_TC0)
1011#define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1012#define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1015#if defined(__AVR_HAVE_PRPD_TC1)
1016#define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
1017#define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
1020#if defined(__AVR_HAVE_PRPD_TC5)
1021#define power_tc5d_enable() (PR_PRPD &= (uint8_t)~(PR_TC5_bm))
1022#define power_tc5d_disable() (PR_PRPD |= (uint8_t)PR_TC5_bm)
1025#if defined(__AVR_HAVE_PRPD_TWI)
1026#define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
1027#define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
1030#if defined(__AVR_HAVE_PRPD_USART0)
1031#define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1032#define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1035#if defined(__AVR_HAVE_PRPD_USART1)
1036#define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
1037#define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
1040#if defined(__AVR_HAVE_PRPE_HIRES)
1041#define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
1042#define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
1045#if defined(__AVR_HAVE_PRPE_SPI)
1046#define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
1047#define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
1050#if defined(__AVR_HAVE_PRPE_TC0)
1051#define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1052#define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1055#if defined(__AVR_HAVE_PRPE_TC1)
1056#define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
1057#define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
1060#if defined(__AVR_HAVE_PRPE_TWI)
1061#define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1062#define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1065#if defined(__AVR_HAVE_PRPE_USART0)
1066#define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1067#define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1070#if defined(__AVR_HAVE_PRPE_USART1)
1071#define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
1072#define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
1075#if defined(__AVR_HAVE_PRPF_HIRES)
1076#define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
1077#define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
1080#if defined(__AVR_HAVE_PRPF_SPI)
1081#define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
1082#define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
1085#if defined(__AVR_HAVE_PRPF_TC0)
1086#define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1087#define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1090#if defined(__AVR_HAVE_PRPF_TC1)
1091#define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
1092#define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
1095#if defined(__AVR_HAVE_PRPF_TWI)
1096#define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
1097#define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
1100#if defined(__AVR_HAVE_PRPF_USART0)
1101#define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1102#define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1105#if defined(__AVR_HAVE_PRPF_USART1)
1106#define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1107#define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1118static __ATTR_ALWAYS_INLINE__
void __power_all_enable()
1120#ifdef __AVR_HAVE_PRR
1121 PRR &= (
uint8_t)~(__AVR_HAVE_PRR);
1124#ifdef __AVR_HAVE_PRR0
1125 PRR0 &= (
uint8_t)~(__AVR_HAVE_PRR0);
1128#ifdef __AVR_HAVE_PRR1
1129 PRR1 &= (
uint8_t)~(__AVR_HAVE_PRR1);
1132#ifdef __AVR_HAVE_PRR2
1133 PRR2 &= (
uint8_t)~(__AVR_HAVE_PRR2);
1136#ifdef __AVR_HAVE_PRGEN
1137 PR_PRGEN &= (
uint8_t)~(__AVR_HAVE_PRGEN);
1140#ifdef __AVR_HAVE_PRPA
1141 PR_PRPA &= (
uint8_t)~(__AVR_HAVE_PRPA);
1144#ifdef __AVR_HAVE_PRPB
1145 PR_PRPB &= (
uint8_t)~(__AVR_HAVE_PRPB);
1148#ifdef __AVR_HAVE_PRPC
1149 PR_PRPC &= (
uint8_t)~(__AVR_HAVE_PRPC);
1152#ifdef __AVR_HAVE_PRPD
1153 PR_PRPD &= (
uint8_t)~(__AVR_HAVE_PRPD);
1156#ifdef __AVR_HAVE_PRPE
1157 PR_PRPE &= (
uint8_t)~(__AVR_HAVE_PRPE);
1160#ifdef __AVR_HAVE_PRPF
1161 PR_PRPF &= (
uint8_t)~(__AVR_HAVE_PRPF);
1174static __ATTR_ALWAYS_INLINE__
void __power_all_disable()
1176#ifdef __AVR_HAVE_PRR
1177 PRR |= (
uint8_t)(__AVR_HAVE_PRR);
1180#ifdef __AVR_HAVE_PRR0
1181 PRR0 |= (
uint8_t)(__AVR_HAVE_PRR0);
1184#ifdef __AVR_HAVE_PRR1
1185 PRR1 |= (
uint8_t)(__AVR_HAVE_PRR1);
1188#ifdef __AVR_HAVE_PRR2
1189 PRR2 |= (
uint8_t)(__AVR_HAVE_PRR2);
1192#ifdef __AVR_HAVE_PRGEN
1193 PR_PRGEN |= (
uint8_t)(__AVR_HAVE_PRGEN);
1196#ifdef __AVR_HAVE_PRPA
1197 PR_PRPA |= (
uint8_t)(__AVR_HAVE_PRPA);
1200#ifdef __AVR_HAVE_PRPB
1201 PR_PRPB |= (
uint8_t)(__AVR_HAVE_PRPB);
1204#ifdef __AVR_HAVE_PRPC
1205 PR_PRPC |= (
uint8_t)(__AVR_HAVE_PRPC);
1208#ifdef __AVR_HAVE_PRPD
1209 PR_PRPD |= (
uint8_t)(__AVR_HAVE_PRPD);
1212#ifdef __AVR_HAVE_PRPE
1213 PR_PRPE |= (
uint8_t)(__AVR_HAVE_PRPE);
1216#ifdef __AVR_HAVE_PRPF
1217 PR_PRPF |= (
uint8_t)(__AVR_HAVE_PRPF);
1223#ifndef power_all_enable
1224#define power_all_enable() __power_all_enable()
1227#ifndef power_all_disable
1228#define power_all_disable() __power_all_disable()
1233#if defined(__DOXYGEN__) \
1234|| defined(__AVR_AT90CAN32__) \
1235|| defined(__AVR_AT90CAN64__) \
1236|| defined(__AVR_AT90CAN128__) \
1237|| defined(__AVR_AT90PWM1__) \
1238|| defined(__AVR_AT90PWM2__) \
1239|| defined(__AVR_AT90PWM2B__) \
1240|| defined(__AVR_AT90PWM3__) \
1241|| defined(__AVR_AT90PWM3B__) \
1242|| defined(__AVR_AT90PWM81__) \
1243|| defined(__AVR_AT90PWM161__) \
1244|| defined(__AVR_AT90PWM216__) \
1245|| defined(__AVR_AT90PWM316__) \
1246|| defined(__AVR_AT90SCR100__) \
1247|| defined(__AVR_AT90USB646__) \
1248|| defined(__AVR_AT90USB647__) \
1249|| defined(__AVR_AT90USB82__) \
1250|| defined(__AVR_AT90USB1286__) \
1251|| defined(__AVR_AT90USB1287__) \
1252|| defined(__AVR_AT90USB162__) \
1253|| defined(__AVR_ATA5505__) \
1254|| defined(__AVR_ATA5272__) \
1255|| defined(__AVR_ATmega1280__) \
1256|| defined(__AVR_ATmega1281__) \
1257|| defined(__AVR_ATmega1284__) \
1258|| defined(__AVR_ATmega128RFA1__) \
1259|| defined(__AVR_ATmega1284RFR2__) \
1260|| defined(__AVR_ATmega128RFR2__) \
1261|| defined(__AVR_ATmega1284P__) \
1262|| defined(__AVR_ATmega162__) \
1263|| defined(__AVR_ATmega164A__) \
1264|| defined(__AVR_ATmega164P__) \
1265|| defined(__AVR_ATmega164PA__) \
1266|| defined(__AVR_ATmega165__) \
1267|| defined(__AVR_ATmega165A__) \
1268|| defined(__AVR_ATmega165P__) \
1269|| defined(__AVR_ATmega165PA__) \
1270|| defined(__AVR_ATmega168__) \
1271|| defined(__AVR_ATmega168P__) \
1272|| defined(__AVR_ATmega168A__) \
1273|| defined(__AVR_ATmega168PA__) \
1274|| defined(__AVR_ATmega168PB__) \
1275|| defined(__AVR_ATmega169__) \
1276|| defined(__AVR_ATmega169A__) \
1277|| defined(__AVR_ATmega169P__) \
1278|| defined(__AVR_ATmega169PA__) \
1279|| defined(__AVR_ATmega16M1__) \
1280|| defined(__AVR_ATmega16U2__) \
1281|| defined(__AVR_ATmega16U4__) \
1282|| defined(__AVR_ATmega2560__) \
1283|| defined(__AVR_ATmega2561__) \
1284|| defined(__AVR_ATmega2564RFR2__) \
1285|| defined(__AVR_ATmega256RFR2__) \
1286|| defined(__AVR_ATmega324A__) \
1287|| defined(__AVR_ATmega324P__) \
1288|| defined(__AVR_ATmega324PA__) \
1289|| defined(__AVR_ATmega324PB__) \
1290|| defined(__AVR_ATmega325__) \
1291|| defined(__AVR_ATmega325A__) \
1292|| defined(__AVR_ATmega325PA__) \
1293|| defined(__AVR_ATmega3250__) \
1294|| defined(__AVR_ATmega3250A__) \
1295|| defined(__AVR_ATmega3250PA__) \
1296|| defined(__AVR_ATmega328__) \
1297|| defined(__AVR_ATmega328P__) \
1298|| defined(__AVR_ATmega328PB__) \
1299|| defined(__AVR_ATmega329__) \
1300|| defined(__AVR_ATmega329A__) \
1301|| defined(__AVR_ATmega329P__) \
1302|| defined(__AVR_ATmega329PA__) \
1303|| defined(__AVR_ATmega3290__) \
1304|| defined(__AVR_ATmega3290A__) \
1305|| defined(__AVR_ATmega3290P__) \
1306|| defined(__AVR_ATmega3290PA__) \
1307|| defined(__AVR_ATmega32C1__) \
1308|| defined(__AVR_ATmega32M1__) \
1309|| defined(__AVR_ATmega32U2__) \
1310|| defined(__AVR_ATmega32U4__) \
1311|| defined(__AVR_ATmega32U6__) \
1312|| defined(__AVR_ATmega48__) \
1313|| defined(__AVR_ATmega48A__) \
1314|| defined(__AVR_ATmega48PA__) \
1315|| defined(__AVR_ATmega48P__) \
1316|| defined(__AVR_ATmega640__) \
1317|| defined(__AVR_ATmega649P__) \
1318|| defined(__AVR_ATmega644__) \
1319|| defined(__AVR_ATmega644A__) \
1320|| defined(__AVR_ATmega644P__) \
1321|| defined(__AVR_ATmega644PA__) \
1322|| defined(__AVR_ATmega645__) \
1323|| defined(__AVR_ATmega645A__) \
1324|| defined(__AVR_ATmega645P__) \
1325|| defined(__AVR_ATmega6450__) \
1326|| defined(__AVR_ATmega6450A__) \
1327|| defined(__AVR_ATmega6450P__) \
1328|| defined(__AVR_ATmega649__) \
1329|| defined(__AVR_ATmega649A__) \
1330|| defined(__AVR_ATmega64M1__) \
1331|| defined(__AVR_ATmega64C1__) \
1332|| defined(__AVR_ATmega6490__) \
1333|| defined(__AVR_ATmega6490A__) \
1334|| defined(__AVR_ATmega6490P__) \
1335|| defined(__AVR_ATmega644RFR2__) \
1336|| defined(__AVR_ATmega64RFR2__) \
1337|| defined(__AVR_ATmega88__) \
1338|| defined(__AVR_ATmega88A__) \
1339|| defined(__AVR_ATmega88P__) \
1340|| defined(__AVR_ATmega88PA__) \
1341|| defined(__AVR_ATmega8U2__) \
1342|| defined(__AVR_ATmega16U2__) \
1343|| defined(__AVR_ATmega32U2__) \
1344|| defined(__AVR_ATtiny48__) \
1345|| defined(__AVR_ATtiny88__) \
1346|| defined(__AVR_ATtiny87__) \
1347|| defined(__AVR_ATtiny167__)
1412#if defined(__AVR_ATmega128RFA1__) \
1413|| defined(__AVR_ATmega2564RFR2__) \
1414|| defined(__AVR_ATmega1284RFR2__) \
1415|| defined(__AVR_ATmega644RFR2__) \
1416|| defined(__AVR_ATmega256RFR2__) \
1417|| defined(__AVR_ATmega128RFR2__) \
1418|| defined(__AVR_ATmega64RFR2__)
1419 , clock_div_1_rc = 15
1442 __asm__ __volatile__ (
1443 "in __tmp_reg__,__SREG__" "\n\t"
1447 "out __SREG__, __tmp_reg__"
1450 "M" (_SFR_MEM_ADDR(CLKPR)),
1464#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1466#elif defined(__AVR_ATmega16HVB__) \
1467|| defined(__AVR_ATmega16HVBREVB__) \
1468|| defined(__AVR_ATmega32HVB__) \
1469|| defined(__AVR_ATmega32HVBREVB__)
1484 __asm__ __volatile__ (
1485 "in __tmp_reg__,__SREG__" "\n\t"
1489 "out __SREG__, __tmp_reg__"
1492 "M" (_SFR_MEM_ADDR(CLKPR)),
1497#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)))
1499#elif defined(__AVR_ATA5790__) \
1500|| defined (__AVR_ATA5795__)
1514static __ATTR_ALWAYS_INLINE__
void system_clock_prescale_set(clock_div_t);
1516void system_clock_prescale_set(clock_div_t __x)
1519 __asm__ __volatile__ (
1520 "in __tmp_reg__,__SREG__" "\n\t"
1524 "out __SREG__, __tmp_reg__"
1527 "I" (_SFR_IO_ADDR(CLKPR)),
1532#define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1536 timer_clock_div_reset = 0,
1537 timer_clock_div_1 = 1,
1538 timer_clock_div_2 = 2,
1539 timer_clock_div_4 = 3,
1540 timer_clock_div_8 = 4,
1541 timer_clock_div_16 = 5,
1542 timer_clock_div_32 = 6,
1543 timer_clock_div_64 = 7
1546static __ATTR_ALWAYS_INLINE__
void timer_clock_prescale_set(timer_clock_div_t);
1548void timer_clock_prescale_set(timer_clock_div_t __x)
1551 __asm__ __volatile__ (
1552 "in __tmp_reg__,__SREG__" "\n\t"
1554 "in %[temp],%[clkpr]" "\n\t"
1555 "out %[clkpr],%[enable]" "\n\t"
1556 "cbr %[temp],%[not_CLTPS]" "\n\t"
1557 "or %[temp], %[set_value]" "\n\t"
1558 "out %[clkpr],%[temp]" "\n\t"
1559 "out __SREG__,__tmp_reg__"
1561 : [clkpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1563 [not_CLTPS]
"M" ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)),
1564 [set_value]
"r" ((
uint8_t) ((__x & 7) << 3))
1568#define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1570#elif defined(__AVR_ATA6285__) \
1571|| defined(__AVR_ATA6286__)
1585static __ATTR_ALWAYS_INLINE__
void system_clock_prescale_set(clock_div_t);
1587void system_clock_prescale_set(clock_div_t __x)
1590 __asm__ __volatile__ (
1591 "in __tmp_reg__,__SREG__" "\n\t"
1593 "in %[temp],%[clpr]" "\n\t"
1594 "out %[clpr],%[enable]" "\n\t"
1595 "cbr %[temp],%[not_CLKPS]" "\n\t"
1596 "or %[temp], %[set_value]" "\n\t"
1597 "out %[clpr],%[temp]" "\n\t"
1598 "out __SREG__,__tmp_reg__"
1600 : [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1601 [enable]
"r" ((
uint8_t) (1 << CLPCE)),
1602 [not_CLKPS]
"M" ((1 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0)),
1603 [set_value]
"r" ((
uint8_t) (__x & 7))
1607#define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
1611 timer_clock_div_reset = 0,
1612 timer_clock_div_1 = 1,
1613 timer_clock_div_2 = 2,
1614 timer_clock_div_4 = 3,
1615 timer_clock_div_8 = 4,
1616 timer_clock_div_16 = 5,
1617 timer_clock_div_32 = 6,
1618 timer_clock_div_64 = 7
1621static __ATTR_ALWAYS_INLINE__
void timer_clock_prescale_set(timer_clock_div_t);
1623void timer_clock_prescale_set(timer_clock_div_t __x)
1626 __asm__ __volatile__ (
1627 "in __tmp_reg__,__SREG__" "\n\t"
1629 "in %[temp],%[clpr]" "\n\t"
1630 "out %[clpr],%[enable]" "\n\t"
1631 "cbr %[temp],%[not_CLTPS]" "\n\t"
1632 "or %[temp], %[set_value]" "\n\t"
1633 "out %[clpr],%[temp]" "\n\t"
1634 "out __SREG__,__tmp_reg__"
1636 : [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
1637 [enable]
"r" ((
uint8_t) (1 << CLPCE)),
1638 [not_CLTPS]
"M" ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)),
1639 [set_value]
"r" ((
uint8_t) ((__x & 7) << 3))
1643#define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
1645#elif defined(__AVR_ATtiny24__) \
1646|| defined(__AVR_ATtiny24A__) \
1647|| defined(__AVR_ATtiny44__) \
1648|| defined(__AVR_ATtiny44A__) \
1649|| defined(__AVR_ATtiny84__) \
1650|| defined(__AVR_ATtiny84A__) \
1651|| defined(__AVR_ATtiny25__) \
1652|| defined(__AVR_ATtiny45__) \
1653|| defined(__AVR_ATtiny85__) \
1654|| defined(__AVR_ATtiny261A__) \
1655|| defined(__AVR_ATtiny261__) \
1656|| defined(__AVR_ATtiny461__) \
1657|| defined(__AVR_ATtiny461A__) \
1658|| defined(__AVR_ATtiny861__) \
1659|| defined(__AVR_ATtiny861A__) \
1660|| defined(__AVR_ATtiny2313__) \
1661|| defined(__AVR_ATtiny2313A__) \
1662|| defined(__AVR_ATtiny4313__) \
1663|| defined(__AVR_ATtiny13__) \
1664|| defined(__AVR_ATtiny13A__) \
1665|| defined(__AVR_ATtiny43U__) \
1684 __asm__ __volatile__ (
1685 "in __tmp_reg__,__SREG__" "\n\t"
1689 "out __SREG__, __tmp_reg__"
1691 :
"d" ((
uint8_t) (1 << CLKPCE)),
1692 "I" (_SFR_IO_ADDR(CLKPR)),
1698#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1700#elif defined(__AVR_ATtiny441__) \
1701|| defined(__AVR_ATtiny841__)
1720 __asm__ __volatile__ (
1721 "in __tmp_reg__,__SREG__" "\n\t"
1725 "out __SREG__, __tmp_reg__"
1728 "n" (_SFR_MEM_ADDR(CLKPR)),
1729 "n" (_SFR_MEM_ADDR(CCP)),
1734#define clock_prescale_get() (clock_div_t) (CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
1736#elif defined(__AVR_ATmega64__) \
1737|| defined(__AVR_ATmega103__) \
1738|| defined(__AVR_ATmega128__)
1774 __asm__ __volatile__ (
1775 "in __tmp_reg__,__SREG__" "\n\t"
1777 "out %2, __zero_reg__" "\n\t"
1786 "cpi %1, 0x01" "\n\t"
1788 "ldi %0, 0x81" "\n\t"
1790 "ori %0, 0x80" "\n\t"
1800 "L_%=: " "out __SREG__, __tmp_reg__"
1803 "I" (_SFR_IO_ADDR(XDIV))
1814 return (clock_div_t) 1;
1818 return (clock_div_t) (129 - (XDIV & 0x7F));
1822#elif defined(__AVR_ATtiny4__) \
1823|| defined(__AVR_ATtiny5__) \
1824|| defined(__AVR_ATtiny9__) \
1825|| defined(__AVR_ATtiny10__) \
1826|| defined(__AVR_ATtiny102__) \
1827|| defined(__AVR_ATtiny104__) \
1828|| defined(__AVR_ATtiny20__) \
1829|| defined(__AVR_ATtiny40__) \
1848 __asm__ __volatile__ (
1849 "in __tmp_reg__,__SREG__" "\n\t"
1853 "out __SREG__, __tmp_reg__"
1856 "I" (_SFR_IO_ADDR(CCP)),
1857 "I" (_SFR_IO_ADDR(CLKPSR)),
1862#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:1464
static void power_all_enable()
static void power_all_disable()
void clock_prescale_set(clock_div_t __x)
Definition: power.h:1439
#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:88