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

单步调试结果和正常运行结果不一致--PWM

单步调试结果和正常运行结果不一致--PWM

本帖最后由 flexraybeginer 于 2010-6-12 16:23 编辑

#include <hidef.h>      /* common defines and macros */
#include <mc9s12xf512.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xf512"



void main(void) {

   uint i=0,j,k;
   initcpu();
   PMFCFG0=0x4F;//0100 1111 时钟不同步,A为边沿对齐,各通道独立
   PMFCFG1=0x01;//0000 0001 禁用硬件加速,PWM0极性为正
   PMFCFG2=0x3E;//0011 1110 除了PWM0外,其他全部屏蔽
   PMFCFG3=0x00;
   
   PMFVAL0=0x01FF;
   PMFMODA=0x7FFF; //占空比为16比100
   PMFFQCA=0x06; //0000 0111 每次载入新的值8分频
   
   PMFENCA=0x82;//1000 0010 使能PWM0,禁止中断                                                                           

    PMFENCA=0x02;//停止PWM0输出
        
      
    PMFVAL0=0x3FFF;//更改占空比为1比2
      
       PMFENCA=0x82;//使能PWM0
  /* put your own code here */
  EnableInterrupts;

  
  for(;;){}  
  
}

单步调试的结果是占空比为2比1,而如果正式运行的话用示波器看出来却是16比100的图像,想请问高手这是怎么一回事。
在DATA监视窗口能够看到PMFVAL0已经是0x3FFF了
原来是我没有遵循 对寄存器  读-修改-写 这样一种顺序,随意地写寄存器是不好的习惯,也是行不通的
麻烦问一下MC9S12XF512是怎么烧录程序的,建工程时没有TBDML这一项啊
返回列表