在线时间96 小时
UID3167208
注册时间2015-10-21
NXP金币0
TA的每日心情 | 开心 2019-3-22 20:15 |
---|
签到天数: 21 天 连续签到: 1 天 [LV.4]偶尔看看III
高级会员

- 积分
- 909
- 最后登录
- 2019-4-7
|
发表于 2016-11-3 11:06:51
|
显示全部楼层
我想你的意思是为了防止中断打断ADC的采集而清除中断的,但是我想说,你这样的误差会累积的,这个自己回去慢慢考虑吧,一般必要的方法是放在中断中运行,每次触发的时间都是一致的。算了,先来解决这个问题吧,我回来尝试了一下发现没有什么问题。。。。呵呵,当然是我自己写的。。。给你看看代码吧:- #include "includes.h"
- uint8 time=0;
- uint8 flag=0;
- void myDelay (INT32U ulTime)
- {
- INT32U i;
- i = 0;
- while (ulTime--) {
- for (i = 0; i < 5000; i++);
- }
- }
- int main (void)
- {
- uint16 count=0;
- DisableInterrupts();
- SystemClockSetup();
- gpio_Init();
- uart_Init();
- LED_Init();
- KEY_Init();
- // ADC_Init();
- // PWM_Init();
- PIT_Init();
- NVIC_EnableIRQ(PIT_IRQn); /* PIT中断使能 */
- NVIC_SetPriority(PIT_IRQn,1); /* 设置PIT中断优先级 */
- EnableInterrupts();
- printf("YL-KL25Z128 GPIO_Blinky Test start\r\n");
- while(1)
- {
- if(flag==1)
- {
- NVIC_DisableIRQ(PIT_IRQn);
- printf("nihao,%d",count++);
- myDelay(2000);
- flag=0;
- PIT_TFLG0 = 1;// 标志位清空
- NVIC_EnableIRQ(PIT_IRQn);
- }
- }
- }
- void PIT_IRQHandler(void)
- {
- PIT_TFLG0 = 1;// 标志位清空
- LED1_Turn();
- LED2_Turn();
- time++;
- if(time==10)
- {
- time=0;
- flag=1;
- }
- }
复制代码
|
|