频率和占空比不是很稳定,大家一起探讨下把!
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "adc.h"
- #include "exti.h"
- #include "display.h"
- #include "timer.h"
- extern u32 tim;
- float temp1;
- extern volatile uint16_t IC2Value ;
- extern volatile uint16_t IC1Value ;
- extern volatile uint16_t DutyCycle ;
- extern volatile uint32_t Frequency ;
- int main(void)
- {
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- LED_Init(); //LED端口初始化
- EXTIX_Init(); //初始化外部中断输入
- LCD_Init();
- Adc_Init(); //ADC初始化
- carpture_Init();
- drawgaid(); //画网格
- POINT_COLOR=RED;
- LCD_Display_Dir(1);
- LCD_ShowString(25,450,200,24,24,"Vpp = mv");
- LCD_ShowString(16,425,200,24,24,"DutyC = %");
- LCD_ShowString(206,425,200,24,24,"Fre = Hz");
- LCD_ShowString(206,450,200,24,24,"tim = ");
- LCD_ShowxNum(284,460,tim,5,16,0);
- while(1)
- {
- if(Frequency != 0)
- printf("占空比:%2d%% 频率:%dHz\r\n",DutyCycle,Frequency);
-
- DrawOscillogram();//画波形
- temp1=get_vpp();//峰峰值mv
- LCD_ShowxNum(106,425,DutyCycle,4,24,0);
- LCD_ShowxNum(275,425,Frequency,4,24,0);
- LCD_ShowxNum(94,450,temp1,4,24,0); //显示峰峰值mv
- }
- }
复制代码
所有资料51hei提供下载:
横屏波形显示.7z
(239.03 KB, 下载次数: 100)
|