diff options
author | Cristian Maglie <c.maglie@bug.st> | 2012-05-23 09:22:52 +0200 |
---|---|---|
committer | Cristian Maglie <c.maglie@bug.st> | 2012-05-23 09:22:52 +0200 |
commit | a3dbb49c078176fca1610f4a61b0d1b23e3f37c9 (patch) | |
tree | 97c6f70b3f54da526db9acf93ed0b4ef24248b4e /cores/arduino/wiring_analog.c | |
parent | 3786e337e0211ca1ef94b37b03e891adfb3b5f9a (diff) | |
parent | 810803c6d3ab33a4496a89f41ef7e1dda15e8680 (diff) |
Merge of arduino-1.0.1. Work in progress...
Diffstat (limited to 'cores/arduino/wiring_analog.c')
-rw-r--r-- | cores/arduino/wiring_analog.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c index a8bc817..0e9881f 100644 --- a/cores/arduino/wiring_analog.c +++ b/cores/arduino/wiring_analog.c @@ -206,14 +206,17 @@ void analogWrite(uint8_t pin, int val) break; #endif - #if defined(TCCR4A) && defined(COM4A1) + #if defined(TCCR4A) case TIMER4A: - // connect pwm to pin on timer 4, channel A + //connect pwm to pin on timer 4, channel A sbi(TCCR4A, COM4A1); - OCR4A = val; // set pwm duty + #if defined(COM4A0) // only used on 32U4 + cbi(TCCR4A, COM4A0); + #endif + OCR4A = val; // set pwm duty break; #endif - + #if defined(TCCR4A) && defined(COM4B1) case TIMER4B: // connect pwm to pin on timer 4, channel B @@ -230,14 +233,18 @@ void analogWrite(uint8_t pin, int val) break; #endif - #if defined(TCCR4A) && defined(COM4D1) - case TIMER4D: + #if defined(TCCR4C) && defined(COM4D1) + case TIMER4D: // connect pwm to pin on timer 4, channel D - sbi(TCCR4A, COM4D1); - OCR4D = val; // set pwm duty + sbi(TCCR4C, COM4D1); + #if defined(COM4D0) // only used on 32U4 + cbi(TCCR4C, COM4D0); + #endif + OCR4D = val; // set pwm duty break; #endif + #if defined(TCCR5A) && defined(COM5A1) case TIMER5A: // connect pwm to pin on timer 5, channel A @@ -272,3 +279,4 @@ void analogWrite(uint8_t pin, int val) } } } + |