при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
а что потом?[/uquote]oleg110592 писал(а):a 30-day time-limited
Я бы сказал - отладчик одна из функций которого заливка прошивки (иначе что отлаживать если в МК нет прошивки?).oleg110592 писал(а):и отладчик и программатор.
Код: Выделить всё
void ADC_init()
{
ADC_CR1_bit.ADON = 0;
ADC_CR1_bit.CONT = 0;
ADC_CR2_bit.SCAN = 1;
ADC_CR2_bit.ALIGN = 1;
ADC_CSR_EOCIE = 1;
ADC_CSR_bit.CH = 3;
}
#pragma vector = TIM2_OVR_UIF_vector
__interrupt void TIM2_OVR_UIF_handler(void)
{
PD_CR2_bit.C23 = 0;
ADC_CR1_bit.ADON = 1;
ADC_CR1_bit.ADON = 1;
TIM2_SR1_bit.UIF = 0;
}
#pragma vector = ADC1_EOC_vector
__interrupt void ADC1_EOC_handler(void)
{
unsigned int res_t = 0;
unsigned int res_v = 0;
res_v = ADC_DB4RH << 8;
res_v |= ADC_DB4RL;
res_t = ADC_DB3RH << 8;
res_t |= ADC_DB3RL;
ADC_CR1_bit.ADON = 0;
PD_CR2_bit.C23 = 1;
if (res_t > 903 && (mode == 2 || mode == 3)) PD_ODR_bit.ODR1 = 1; //Heater on
else PD_ODR_bit.ODR1 = 0; //Heater off
if (res_v > 640) bat_level = 0;
else if (res_v > 512) bat_level = 1;
else if (res_v > 485) bat_level = 2;
else if (res_v > 470) bat_level = 3;
ADC_CSR_bit.EOC = 0;
}
Код: Выделить всё
switch(led_num){
case 0:
PC_ODR_bit.ODR4 = 1;
PC_ODR_bit.ODR5 = 0;
PC_ODR_bit.ODR6 = 0;
PC_ODR_bit.ODR7 = 0;
led_num = (bat_level > 1) ? 1 : 0;
break;
case 1:
PC_ODR_bit.ODR4 = 0;
PC_ODR_bit.ODR5 = 1;
PC_ODR_bit.ODR6 = 0;
PC_ODR_bit.ODR7 = 0;
led_num = (bat_level > 2) ? 2 : 0;
break;
case 2:
PC_ODR_bit.ODR4 = 0;
PC_ODR_bit.ODR5 = 0;
PC_ODR_bit.ODR6 = 1;
PC_ODR_bit.ODR7 = 0;
led_num = (bat_level > 3) ? 3 : 0;
break;
case 3:
PC_ODR_bit.ODR4 = 0;
PC_ODR_bit.ODR5 = 0;
PC_ODR_bit.ODR6 = 0;
PC_ODR_bit.ODR7 = 1;
led_num = 0;
break;
}Код: Выделить всё
PC_ODR &= ((0x10 << led_num++) | 0x0F); // Это неправильно, верный вариант VladislavS написал в следующем сообщении
if (led_num > 3) led_num = 0;Код: Выделить всё
PC_ODR &= ((0x10 << led_num++) | 0x0F);Код: Выделить всё
PC_ODR=(PC_ODR&0x0F)|(0x10<<led_num++);Код: Выделить всё
#pragma vector = TIM2_OVR_UIF_vector
__interrupt void TIM2_OVR_UIF_handler(void)
{
if (seconds%2) ADC_CSR_bit.CH = 3;
else ADC_CSR_bit.CH = 4;
PD_CR2_bit.C23 = 0;
ADC_CR1_bit.ADON = 1;
ADC_CR1_bit.ADON = 1;
TIM2_SR1_bit.UIF = 0;
}
#pragma vector = ADC1_EOC_vector
__interrupt void ADC1_EOC_handler(void)
{
if(seconds%2){
res_v = ADC_DRH << 8;
res_v |= ADC_DRL;}
else{
res_t = ADC_DRH << 8;
res_t |= ADC_DRL;
}
ADC_CR1_bit.ADON = 0;
PD_CR2_bit.C23 = 1;
if (res_t > 903 && (mode == 2 || mode == 3)) PD_ODR_bit.ODR1 = 1; //Heater on
else PD_ODR_bit.ODR1 = 0; //Heater off
bat_level = 0;
if (res_v > 513) bat_level = 1;
else if (res_v > 490) bat_level = 2;
else if (res_v > 478) bat_level = 3;
else if (res_v > 466) bat_level = 4;
seconds++;
ADC_CSR_bit.EOC = 0;
}