]>
Commit | Line | Data |
---|---|---|
9fe267c2 PZ |
1 | diff -Naurp include/avr/power.h include/avr/power.h |
2 | --- include/avr/power.h 2011-12-29 14:21:50.000000000 +0530 | |
3 | +++ include/avr/power.h 2012-02-06 11:09:16.000000000 +0530 | |
4 | @@ -1393,10 +1393,6 @@ do{ \ | |
5 | || defined(__AVR_ATmega3290__) \ | |
6 | || defined(__AVR_ATmega3290A__) \ | |
7 | || defined(__AVR_ATmega32C1__) \ | |
8 | -|| defined(__AVR_ATmega32HVB__) \ | |
9 | -|| defined(__AVR_ATmega32HVBREVB__) \ | |
10 | -|| defined(__AVR_ATmega16HVB__) \ | |
11 | -|| defined(__AVR_ATmega16HVBREVB__) \ | |
12 | || defined(__AVR_ATmega32M1__) \ | |
13 | || defined(__AVR_ATmega32U2__) \ | |
14 | || defined(__AVR_ATmega32U4__) \ | |
15 | @@ -1512,6 +1508,38 @@ Gets and returns the clock prescaler reg | |
16 | */ | |
17 | #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3))) | |
18 | ||
19 | +#elif defined(__AVR_ATmega16HVB__) \ | |
20 | +|| defined(__AVR_ATmega16HVBREVB__) \ | |
21 | +|| defined(__AVR_ATmega32HVB__) \ | |
22 | +|| defined(__AVR_ATmega32HVBREVB__) | |
23 | + | |
24 | +typedef enum | |
25 | +{ | |
26 | + clock_div_1 = 0, | |
27 | + clock_div_2 = 1, | |
28 | + clock_div_4 = 2, | |
29 | + clock_div_8 = 3 | |
30 | +} clock_div_t; | |
31 | + | |
32 | +static __inline__ void clock_prescale_set(clock_div_t) __attribute__((__always_inline__)); | |
33 | + | |
34 | +void clock_prescale_set(clock_div_t __x) | |
35 | +{ | |
36 | + uint8_t __tmp = _BV(CLKPCE); | |
37 | + __asm__ __volatile__ ( | |
38 | + "in __tmp_reg__,__SREG__" "\n\t" | |
39 | + "cli" "\n\t" | |
40 | + "sts %1, %0" "\n\t" | |
41 | + "sts %1, %2" "\n\t" | |
42 | + "out __SREG__, __tmp_reg__" | |
43 | + : /* no outputs */ | |
44 | + : "d" (__tmp), | |
45 | + "M" (_SFR_MEM_ADDR(CLKPR)), | |
46 | + "d" (__x) | |
47 | + : "r0"); | |
48 | +} | |
49 | + | |
50 | +#define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1))) | |
51 | ||
52 | #elif defined(__AVR_ATtiny24__) \ | |
53 | || defined(__AVR_ATtiny24A__) \ |