查看: 2914|回复: 1

[S12] S12ZVH 定时器输出比较功能

[复制链接]

该用户从未签到

6

主题

13

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2019-1-26
发表于 2016-9-27 10:26:09 | 显示全部楼层 |阅读模式
使用S12ZVH单片机的定时器输出比较功能,输出特定频率、特定占空比的方波。使用定时器通道对应的引脚输出时没有问题。但我现在由于硬件原因,要使用普通的IO口输出,发现频率没有问题,占空比错误,这是为什么?贴代码,使用定时器1通道0,IO口为PF0.
//定时器初始化
void timer_init(void){
TIM1TIOS = 0XFF;     //八路输出比较
TIM1OC7M = 0X00;     //输出比较7屏蔽寄存器
TIM1OCPD=  0x00;
TIM1TSCR2 = 0X00;    //自由计数模式,时钟源采用总线时钟,开溢出中断关闭     
TIM1TCTL1 = 0Xff;    //输出比较预设为1
TIM1TCTL2 = 0Xff;    //输出比较预设为1
TIM1TSCR1 = 0X80;    //允许计数
}
///*******************定时器中断******************************/
//__interrupt void Timer_ISR(){
// //TFLG2 = 0X80;    //清中断标志
//}
/*******************输出0比较中断***************************/
void Vtim1ch0_ISR_name(){
static counttype counter;   //计数器
static uint  part[2]={0XFFFF,0XFFFF};
static byte level = 0;    //当前输出电平状态
static byte status = 0;    //状态标志
TIM1TFLG1 = 0x01;    //清中断标志

if(status==0){       //载入分段1
  TIM1TC0 += part[0];
  status = 1;      //下一状态
  return;
}
if(status==1){       //载入分段2
  TIM1TC0 += part[1];
  if(counter.l==0){
   if(level==0){     //输出高电平,载入低电平计数值   
    *((ulong*)(reg+0X40))+=1;
    PTF_PTF0= 1;
    level = 1;
    part[0] = high_part[0][0];
    part[1] = high_part[0][1];
    counter.l = high_counter[0].l;
   }else{      //输出低电平,载入高电平计数值
   
    PTF_PTF0 = 0;
    level = 0;
    part[0] = low_part[0][0];
    part[1] = low_part[0][1];
    counter.l = low_counter[0].l;
   }
   status = 0;
   return;
  }
  status = 2;
  return;
}
if(counter.i[0]==0){  
  if(level==0){
   *((ulong*)(reg+0X40))+=1;
   level =1;
   PTF_PTF0 = 1;
   part[0] = high_part[0][0];
   part[1] = high_part[0][1];
   counter.l = high_counter[0].l;
  }else{
   level =0;
   PTF_PTF0 = 0;
   part[0] = low_part[0][0];
   part[1] = low_part[0][1];
   counter.l = low_counter[0].l;
  }
  status = 0;
}else{
  counter.i[0]--;
}
}
我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-6-10 15:47
  • 签到天数: 1251 天

    连续签到: 1 天

    [LV.10]以坛为家III

    6

    主题

    2396

    帖子

    3

    金牌会员

    Rank: 6Rank: 6

    积分
    7534
    最后登录
    2025-5-23
    发表于 2016-9-27 12:42:10 | 显示全部楼层
    支持一下,,,,,,,
    nxp1.png
    nxp2.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-31 09:38 , Processed in 0.091186 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表