fix: channels bits for group 2 missing; add set all brightness; customisation (I only use 3+3 outputs)

This commit is contained in:
King Kévin 2013-10-21 11:25:22 +02:00
parent 0ae82501b7
commit b4bbf97ec2
2 changed files with 32 additions and 9 deletions

View File

@ -72,9 +72,12 @@ PGM_P const help_table[] PROGMEM = {
help_16
};
volatile uint8_t* PORTS[CHANNELS_1+CHANNELS_2] = {&PORTC,&PORTC,&PORTC,&PORTC,&PORTC,&PORTD,&PORTD,&PORTD,&PORTD,&PORTD};
volatile uint8_t* DDRS[CHANNELS_1+CHANNELS_2] = {&DDRC,&DDRC,&DDRC,&DDRC,&DDRC,&DDRD,&DDRD,&DDRD,&DDRD,&DDRD};
const uint8_t BITS[CHANNELS_1+CHANNELS_2] = {PC0,PC1,PC2,PC3,PC4};
//volatile uint8_t* PORTS[CHANNELS_1+CHANNELS_2] = {&PORTC,&PORTC,&PORTC,&PORTC,&PORTC,&PORTD,&PORTD,&PORTD,&PORTD,&PORTD};
volatile uint8_t* PORTS[CHANNELS_1+CHANNELS_2] = {&PORTC,&PORTC,&PORTC,&PORTD,&PORTD,&PORTD};
//volatile uint8_t* DDRS[CHANNELS_1+CHANNELS_2] = {&DDRC,&DDRC,&DDRC,&DDRC,&DDRC,&DDRD,&DDRD,&DDRD,&DDRD,&DDRD};
volatile uint8_t* DDRS[CHANNELS_1+CHANNELS_2] = {&DDRC,&DDRC,&DDRC,&DDRD,&DDRD,&DDRD};
//const uint8_t BITS[CHANNELS_1+CHANNELS_2] = {PC0,PC1,PC2,PC3,PC4,PD2,PD3,PD4,PD5,PD7};
const uint8_t BITS[CHANNELS_1+CHANNELS_2] = {PC0,PC1,PC2,PD2,PD3,PD4};
/* global variables */
#define INPUT_MAX 255 /* max length for user input string */
@ -624,6 +627,15 @@ void ir_action(uint8_t address, uint8_t command)
brightness[mode][channel] = 0xff;
}
printf("increasing brightness ch %u %u: %u\n",(channel/CHANNELS_1)+1,(channel%CHANNELS_1)+1,brightness[mode][channel]);
} else if (channel==CHANNELS_1+CHANNELS_2) {
for (uint8_t i=0; i<CHANNELS_1+CHANNELS_2; i++) {
if (brightness[mode][i]<0xff-step) {
brightness[mode][i] += step;
} else {
brightness[mode][i] = 0xff;
}
}
printf("increasing brightness all channels\n");
}
channel_flag = true;
break;
@ -634,13 +646,22 @@ void ir_action(uint8_t address, uint8_t command)
} else {
brightness[mode][channel] = 0x00;
}
printf("increasing brightness ch %u %u: %u\n",(channel/CHANNELS_1)+1,(channel%CHANNELS_1)+1,brightness[mode][channel]);
printf("decreasing brightness ch %u %u: %u\n",(channel/CHANNELS_1)+1,(channel%CHANNELS_1)+1,brightness[mode][channel]);
} else if (channel==CHANNELS_1+CHANNELS_2) {
for (uint8_t i=0; i<CHANNELS_1+CHANNELS_2; i++) {
if (brightness[mode][i]>step) {
brightness[mode][i] -= step;
} else {
brightness[mode][i] = 0x00;
}
}
printf("decreasing brightness all channels\n");
}
channel_flag = true;
break;
case CHANNEL_NEXT:
if (channel<CHANNELS_1+CHANNELS_2) {
channel = (channel+1)%(CHANNELS_1+CHANNELS_2);
if (channel<=CHANNELS_1+CHANNELS_2) {
channel = (channel+1)%(CHANNELS_1+CHANNELS_2+1);
} else {
channel = 0x00;
}
@ -648,7 +669,7 @@ void ir_action(uint8_t address, uint8_t command)
break;
case CHANNEL_PREVIOUS:
if (0==channel) {
channel = CHANNELS_1+CHANNELS_2-1;
channel = CHANNELS_1+CHANNELS_2;
} else {
channel--;
}

View File

@ -24,8 +24,10 @@
#define nPS_ON PB2 /* ATX power supply ON switch */
/* channel definitions */
#define CHANNELS_1 5 /* the number of outputs for channel 1 */
#define CHANNELS_2 5 /* the number of outputs for channel 2 */
//#define CHANNELS_1 5 /* the number of outputs (zo use) for channel 1 (up to 5) */
#define CHANNELS_1 3 /* the number of outputs (zo use) for channel 1 (up to 5) */
//#define CHANNELS_2 5 /* the number of outputs (to use) for channel 2 (up tp 5) */
#define CHANNELS_2 3 /* the number of outputs (to use) for channel 2 (up tp 5) */
extern volatile uint8_t* PORTS[CHANNELS_1+CHANNELS_2]; /* channel ports */
extern volatile uint8_t* DDRS[CHANNELS_1+CHANNELS_2]; /* channel I/O configuration registers */
extern const uint8_t BITS[CHANNELS_1+CHANNELS_2]; /* channel bits */