int main(void)
{
u16 led0pwmval=1050;
u8 key; //±£′æ¼üÖμ
u16 adcx;
u16 Zreal;
float temp;
float Xreal;
KEY_Init(); //3õê¼»ˉóë°′¼üᬽóμÄó2¼t½ó¿ú
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏè¼¶·Ö×é2
delay_init(168); //3õê¼»ˉÑóê±oˉêy
uart_init(115200);//3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
TIM3_PWM_Init(2100-1,2-1);
SPI1_Init();
LED_Init(); //3õê¼»ˉLED "ADC1_CH5_VOL:0.000V"
LCD_Init(); //3õê¼»ˉLCD½ó¿ú"ADC1_CH5_VAL:"
Adc_Init(); //3õê¼»ˉADC
BACK_COLOR=WHITE;
POINT_COLOR=RED;//éèÖÃ×ÖìåÎaREDé«
//LCD_ShowString(30,130,200,16,16,"BOOST____VAL: ");
LCD_ShowString(30,150,200,16,16,"BOOST____VOL:0.000V"); //ÏèÔú1춨λÖÃÏÔê¾D¡êyμã
while(1)
{
key=KEY_Scan(0); //μÃμ½¼üÖμ
if(key)
{
switch(key)
{
case KEY2_PRES:
led0pwmval+=105;
break;
case KEY1_PRES:
led0pwmval-=105;
break;
case KEY0_PRES:
led0pwmval+=105;
break;
case WKUP_PRES:
led0pwmval-=105;
break;
}
}else
delay_ms(10);
TIM_SetCompare1(TIM3,led0pwmval);
adcx=Get_Adc_Average(ADC_Channel_3,200);//»ñè¡í¨μà5μÄ×a»»Ö죬20′Îè¡Æ½¾ù Õaàï»1¿éòÔè¡Æ½¾ù′ÎêyéÔ΢′óò»μ㣬
//LCD_ShowxNum(134,130,adcx,4,16,0); //ÏÔê¾ADCC2éÑùoóμÄÔ-ê¼Öμ
temp=(float)adcx*(3.3/4096); //»ñ衼ÆËãoóμÄ′øD¡êyμÄêμ¼êμçÑ1Ö죬±èèç3.1111
adcx=temp; //¸3ÖμÕûêy2¿·Ö¸øadcx±äá¿£¬òòÎaadcxÎau16ÕûDÎ
Zreal=11*adcx;
LCD_ShowxNum(134,150,Zreal,1,16,0); //ÏÔê¾μçÑ1ÖμμÄÕûêy2¿·Ö£¬3.1111μÄ»°£¬Õaàï¾íêÇÏÔê¾3
temp-=adcx; //°ÑòѾ-ÏÔê¾μÄÕûêy2¿·Öè¥μô£¬áôÏÂD¡êy2¿·Ö£¬±èèç3.1111-3=0.1111
temp*=1000; //D¡êy2¿·Ö3ËòÔ1000£¬àyèç£o0.1111¾í×a»»Îa111.1£¬Ïàμ±óú±£áôèyλD¡êy¡
Xreal=11*temp;
LCD_ShowxNum(150,150,Xreal,3,16,0X80); //ÏÔê¾D¡êy2¿·Ö£¨Ç°Ãæ×a»»ÎaáËÕûDÎÏÔê¾£©£¬ÕaàïÏÔê¾μľíêÇ111.
while(Zreal!=(int)25200/(2100-led0pwmval)) //μ÷½úÕûêy2¿·Öò»¶¨òaóëÔ¤¶¨Ïàò»ÖÂ. 25200êÇ123ËéÏ2100£¬Õaàï¾-1y»ˉ¼òáË¡£
{ if(Zreal>(int)25200/(2100-led0pwmval)) //intÇ¿ÖÆ×a»»£¬μ«ò2óD¿éÄüêǶàóàμÄ
led0pwmval-=0.02*led0pwmval;
else led0pwmval+=0.02*led0pwmval;
TIM_SetCompare1(TIM3,led0pwmval);
adcx=Get_Adc_Average(ADC_Channel_3,200);//»ñè¡í¨μà5μÄ×a»»Ö죬20′Îè¡Æ½¾ù
LCD_ShowxNum(134,130,adcx,4,16,0); //ÏÔê¾ADCC2éÑùoóμÄÔ-ê¼Öμ
temp=(float)adcx*(3.3/4096); //»ñ衼ÆËãoóμÄ′øD¡êyμÄêμ¼êμçÑ1Ö죬±èèç3.1111
adcx=temp; //¸3ÖμÕûêy2¿·Ö¸øadcx±äá¿£¬òòÎaadcxÎau16ÕûDÎ
Zreal=11*adcx; //3ËéÏ11μÄÔ-òòêÇòòÎa¼óéÏáËÔË·Å£¬2aá¿ÖμËõD¡áË11±¶¡£
LCD_ShowxNum(134,150,Zreal,1,16,0); //ÏÔê¾μçÑ1ÖμμÄÕûêy2¿·Ö£¬3.1111μÄ»°£¬Õaàï¾íêÇÏÔê¾3
temp-=adcx; //°ÑòѾ-ÏÔê¾μÄÕûêy2¿·Öè¥μô£¬áôÏÂD¡êy2¿·Ö£¬±èèç3.1111-3=0.1111
temp*=1000; //D¡êy2¿·Ö3ËòÔ1000£¬àyèç£o0.1111¾í×a»»Îa111.1£¬Ïàμ±óú±£áôèyλD¡êy¡
Xreal=11*temp;
LCD_ShowxNum(150,150,Xreal,3,16,0X80); //ÏÔê¾D¡êy2¿·Ö£¨Ç°Ãæ×a»»ÎaáËÕûDÎÏÔê¾£©£¬ÕaàïÏÔê¾μľíêÇ111.
}
delay_ms(150);
}
}
|