From: Jan "Yenya" Kasprzak Date: Thu, 13 Sep 2012 21:08:13 +0000 (+0200) Subject: step-up convertor at PWM 3 working X-Git-Tag: gerber-fab-20121029-1711~45 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=c93c2e8aa2dde30ae4f1fb65a02b42677e70babe;p=bike-lights.git step-up convertor at PWM 3 working --- diff --git a/firmware/adc.c b/firmware/adc.c index bef7375..dc35d6b 100644 --- a/firmware/adc.c +++ b/firmware/adc.c @@ -9,8 +9,8 @@ static unsigned char adc_mux[] = { // pwmleds should be first _BV(REFS1) | _BV(MUX1) | _BV(MUX0), // 1: pwmled 1: 1.1V, ADC0,1 (PA0,1), gain 1 or 8 _BV(REFS1) | _BV(MUX3) | _BV(MUX2), - // 2: pwmled 2: 1.1V, ADC2,1 (PA2,1), gain 1 or 8 - _BV(REFS1) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0), + // 2: pwmled 2: 1.1V, ADC2,1 (PA2,1), gain 20 or 32 + _BV(REFS1) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1), // 3: ambient light: 1.1V, ADC4 (PA5), single-ended _BV(REFS1) | _BV(MUX2), // 4: batt voltage: 1.1V, ADC5 (PA6), single-ended diff --git a/firmware/pwm.c b/firmware/pwm.c index 2df2e6b..02992e9 100644 --- a/firmware/pwm.c +++ b/firmware/pwm.c @@ -4,7 +4,7 @@ #include "lights.h" -#define PWM_MAX 0x1FF +#define PWM_MAX 0x0FF void init_pwm() { diff --git a/firmware/pwmled.c b/firmware/pwmled.c index 2640dba..8dcb760 100644 --- a/firmware/pwmled.c +++ b/firmware/pwmled.c @@ -9,7 +9,7 @@ static unsigned char adc_vals[N_PWMLEDS*N_PWMLED_MODES] = { /* pwmled1 */ 0x04, 0x14, 0x24, 0x38, /* pwmled2 */ - 0x04, 0x14, 0x24, 0x38, + 0x0c, 0x24, 0x48, 0x90, }; // TODO: maybe convert this to bitmask to simplify pwmled_needs_adc() ? @@ -148,7 +148,7 @@ static void inline probing_adc(unsigned char n, uint16_t adcval) return; } - if (pwm >= 0x70) { // over the maximum! + if (pwm >= 0xE0) { // over the maximum! pwm_off(n); pwmled_state[n] = ST_DISABLED; log_byte(0xF2); @@ -193,8 +193,8 @@ static void inline on_adc(unsigned char n, uint16_t adcval) } // FIXME: better disconnect detection - if (new_pwm > 0x60) { // disconnected? - new_pwm = 0x60; + if (new_pwm > 0xE0) { // disconnected? + new_pwm = 0xE0; } if (new_pwm < 2) { // short-circuit? new_pwm = 2;