enabled heat control

master
Nidan 13 years ago
parent dc3fb2b610
commit 3178799f70

@ -36,7 +36,9 @@ uint8_t heat_off[2] = {128, 0};
uint8_t input_state = 0;
uint8_t dev_state = 0;
uint8_t startup = 1;
#define TEN_SECONDS 256
uint16_t startup = TEN_SECONDS;
uint8_t eeprom_write = 0;
#define ONE_MINUTE 1536
uint16_t eeprom_clk = ONE_MINUTE;
@ -50,10 +52,10 @@ ISR(TIM1_OVF_vect)
{
/* timeout for displaying target temperature */
if(setting_timeout) {setting_timeout--;}
if(startup) {startup--;}
if(eeprom_clk) {eeprom_clk--;}
else
{
startup = 0;
eeprom_write = 1;
eeprom_clk = ONE_MINUTE;
}
@ -91,11 +93,18 @@ ISR(PCINT0_vect)
inline uint8_t control_output(void)
{
if (temperature > target)
if(temperature > target)
{
return 0;
} else {
return (uint8_t)((uint16_t)((uint32_t)((uint32_t)255*target)/temperature)/TARGET_TEMP_MAX);
}
else if(temperature + 100 > target)
{
return (target - temperature) * 255 / 100;
}
else
{
return 255;
//return (uint8_t)((uint16_t)((uint32_t)((uint32_t)255*target)/temperature)/TARGET_TEMP_MAX);
}
}
@ -187,8 +196,7 @@ inline void led_off(void)
inline void adc_init(void)
{
ADMUX = (1 << REFS1) | (TEMP_PIN << MUX0);/* Vref = 1.1, pin selection */
ADCSRA = (1 << ADEN) | (1 << ADATE);/* adc enable, triggered */
ADCSRB = (1 << ADTS2);/* trigger on counter 0 overflow */
ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADATE) | (1 << ADPS2);/* adc enable, free running mode, prescaler 16 */
DIDR0 = (1 << TEMP_PIN);/* disable digital input on adc pin */
/* result in (ADCH << 8) | ADCL, accessable as ADC */
}
@ -234,19 +242,19 @@ int main(void)
adc_sum += ADC;
if(++adc_pos == 64)
{
adc_sum = 47000;
//adc_sum = 47000;
temperature = linearize_temp(adc_sum);
temperature = 1100;
//temperature = 1100;
adc_sum = 0;
adc_pos = 0;
if(1)//dev_state)
{
heat_output = control_output();
if(startup && heat_output > 192) {heat_output = 192;}
if(startup && heat_output > 96) {heat_output = 96;}
heat_on[0] = 0;
heat_on[1] = 128;
heat_off[0] = 128;//heat_output;
heat_off[1] = 0;//heat_output + 128;
heat_off[0] = heat_output;
heat_off[1] = heat_output + 128;
}
/*else
{

Loading…
Cancel
Save