请教一个关于MC9S12XEP100的小灯翻转程序
- UID
- 798456
- 性别
- 男
|
请教一个关于MC9S12XEP100的小灯翻转程序
请教MC9S12XEP100程序:定时500ms实现PORTB_PB0管脚的小灯翻转,我在按下面的程序调试后发现小灯只亮,而没有实时翻转,请问是什么原因呢?不胜感激!
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
#include "CRG_Init.h"
#include "PIT_Init.h"
unsigned char Flag;
void Delay(unsigned int Time)
{
unsigned char i;
for(i=0; i<125; i++)
for( ; Time>0; Time--);
}
void main(void) {
/* put your own code here */
EnableInterrupts;
DDRB=0xff;
PORTB=0xff;
for(;;) {
if(Flag==1){
Flag=0;
Delay(50000);
PORTB_PB0=~PORTB_PB0;
}
} /* wait forever */
/* please make sure that you never leave this function */
}
#pragma CODE_SEG NON_BANKED
interrupt void PIT0_Timeout() //interrupt function when Time0 out 20ms
{
PITTF &= 0x01; // Clear the timer0-out flag
Flag = 1;
} |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
你的延时是用函数Delay(5000)实现的,与中断没有关系。这个函数的延时时间是500ms吗?你可以用示波器看一下PTB0脚上的波形,是完全没有翻转,还是翻转太快以致肉眼看不出来。 |
|
|
|
|
|
- UID
- 789415
- 性别
- 男
|
|
|
|
|
|
- UID
- 169050
- 性别
- 男
|
飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com |
|
|
|
|
|
- UID
- 821345
|
看你头文件包含了很多初始化程序,但是main里面又没有用,你用到了定时器终端服务程序,但是又没定时器的初始化程序,很费解呢,感觉应该是定时器初始化没有定好,导致不能进入终端,可以设个断点看下程序进了终端程序没有,倘若没有进入终端程序的话,那么flag就一直为0,当然不会在for循环中改变状态了啊 |
|
|
|
|
|