From a7f63373bacfd36d438f11c38d5e54f48ec4f012 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Tue, 11 Nov 2014 15:35:57 +0100 Subject: pwm: Respect PB0/1’s value set by gyro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.c | 1 + pwm.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index a69a045..51255bf 100644 --- a/main.c +++ b/main.c @@ -36,6 +36,7 @@ int main () { uartInit (); gyroInit (); accelInit (); + /* pwm must be last, see pwm.c */ pwmInit (); set_sleep_mode (SLEEP_MODE_IDLE); diff --git a/pwm.c b/pwm.c index 944720e..49045b4 100644 --- a/pwm.c +++ b/pwm.c @@ -59,7 +59,14 @@ void pwmInit () { DDRB |= (1 << PB6) | (1 << PB7); /* set led3,led4,led5,led6 to output */ DDRD |= (1 << PD2) | (1 << PD3) | (1 << PD4) | (1 << PD5); - memset (pwmvalue, 0, sizeof (pwmvalue)); + + /* gyro uses pb1, get its setup; this function must be called after gyro setup */ + const uint8_t pbdef = PORTB; + const uint8_t pddef = PORTD; + for (uint8_t i = 0; i < PWM_MAX_BRIGHTNESS; i++) { + pwmvalue[i][0] = pbdef; + pwmvalue[i][1] = pddef; + } } void pwmStart () { -- cgit v1.2.3