首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教一个关于MC9S12XEP100的小灯翻转程序

请教一个关于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;
}
你的延时是用函数Delay(5000)实现的,与中断没有关系。这个函数的延时时间是500ms吗?你可以用示波器看一下PTB0脚上的波形,是完全没有翻转,还是翻转太快以致肉眼看不出来。
海纳百川  有容乃大
都用延时了还开什么中断..要么延时要么中断
这个问题咋回答呢?还是用示波器看看吧。
飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com
看你头文件包含了很多初始化程序,但是main里面又没有用,你用到了定时器终端服务程序,但是又没定时器的初始化程序,很费解呢,感觉应该是定时器初始化没有定好,导致不能进入终端,可以设个断点看下程序进了终端程序没有,倘若没有进入终端程序的话,那么flag就一直为0,当然不会在for循环中改变状态了啊
返回列表