extern u16 TIM5CH1_CAPTURE_duty; extern u16 temp ; int main(void) { u32 duty=0; float dutys=0.0; float phase=0.0; double pow=0.0; u32 b[5]; delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 LED_Init(); //LED端口初始化 LCD_Init(); TIM5_Cap_Init(0XFFFF,72-1); //以1Mhz的频率计数 while(1) { delay_ms(10); duty=TIM5CH1_CAPTURE_duty; // LCD_ShowxNum(30,90,temp,2,16,0); // LCD_ShowxNum(60,90,duty,2,16,0); dutys=(float)temp/(float)duty; phase=360*(dutys*1.0); b[0]= (phase*10)/10; b[1]= (u32)(phase*10)%10;
时间: 2024-04-09 22:31:26 浏览: 140
这段代码是一个主函数,其中包含了一些变量的声明和初始化,以及一些函数的调用。
在主函数中,首先调用了一系列初始化函数,包括延时函数的初始化(delay_init())、中断配置函数的设置(NVIC_Configuration())、串口的初始化(uart_init(9600))、LED端口的初始化(LED_Init())和LCD的初始化(LCD_Init())。
然后进入一个无限循环(while(1)),在循环中通过延时函数(delay_ms(10))延时10毫秒。
接下来,将 TIM5CH1_CAPTURE_duty 的值赋给 duty 变量。
然后进行一系列计算和赋值操作,包括将 temp 和 duty 的值显示到 LCD 上,计算 dutys 和 phase 的值,并将 phase 的整数部分和小数部分分别赋值给数组 b 的第一个元素和第二个元素。
最后,在循环的末尾没有其他的代码,会继续进行下一次循环。
阅读全文