AVR C Runtime Library - Bugs: bug #32675, power_all_enable/disable does not...
You are not allowed to post comments on this tracker with your current authentication level.
bug #32675: power_all_enable/disable does not affect timer1 on ATmega164P
Submitter: | Sergey Belyashov <bsa> | ||
Submitted: | Fri 04 Mar 2011 12:12:09 PM UTC | ||
Category: | Header | Severity: | 3 - Normal |
Priority: | 5 - Normal | Item Group: | Header files |
Status: | Fixed | Assigned to: | arcanum |
Percent Complete: | 100% | Open/Closed: | Closed |
Release: | Any | Fixed Release: | 1.7.2 |
Sat 05 Mar 2011 07:58:04 AM UTC, comment #2: |
Sergey Belyashov <bsa> |
Fri 04 Mar 2011 04:14:40 PM UTC, comment #1: What other devices does this happen? |
Eric Weddington <arcanum> |
Fri 04 Mar 2011 12:12:09 PM UTC, original submission:
Currently macros power_all_enable() and power_all_disable() does not enable/disable power for TIMER1 on ATmega164P and some others. |
Sergey Belyashov <bsa> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
Follow 5 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2011-05-11 | arcanum | Status | None | Fixed | |
Percent Complete | 0% | 100% | |||
Assigned to | None | arcanum | |||
Open/Closed | Open | Closed | |||
Fixed Release | None | 1.7.2 |
Powered by Savane 3.13-d3ae.
Corresponding source code
I think all in same #if/endif block:
#elif defined(_AVR_ATmega164A_) \
|| defined(_AVR_ATmega164P_) \
|| defined(_AVR_ATmega324A_) \
|| defined(_AVR_ATmega324P_) \
|| defined(_AVR_ATmega324PA_) \
|| defined(_AVR_ATmega644P_) \
|| defined(_AVR_ATmega644A_) \
|| defined(_AVR_ATmega644PA_)
#define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
#define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
#define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
#define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
#define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
#define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
#define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
#define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
#define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
#define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
#define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
#define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
#define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
#define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
#define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
#define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
#define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)))
#define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)))
#elif defined(_AVR_ATmega644_)
May be better to replace it by PRR0 = 0x00 and PRR0 = 0xff?