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

请教:关于S12的输出比较

请教:关于S12的输出比较

请教一下:S12单片机的输出比较功能怎样才能输出方波信号啊?方波的频率和占空比怎么设定呢?

谢谢

初始化

void Init1(void)
{
TIOS=1; //设定CH0为输出比较
TSCR1=0x80;//TIME ENABLE
TSCR2=0x87;//时钟中断使能,选定与分频系数为128
TCTL2=0x01;//设定引脚的动作为跳变
TC0=0x5555;//触发时机
TIE=1; //允许中断
}

中断函数

interrupt void CH0_ISR(void)
{
TFLG1=0x01; //clear ch0 interrupt flag
if(TC0==0x5555)
TC0=0xffff;
else
TC0=0x5555;
}

占空比为2/3...因为0x5555/0xffff=1/3,也就是说在TC0=0x5555和TC0=0xffff时都会发生跳变,这里的值可以随意设定,输出的占空比就会变化.

谢谢谢谢,懂了!
这里面一定要开中断吗?
不是只要设定好输出比较时成功的动作和设置TTOV = 0x01不就可以了吗?
这样子在输出比较成功时电平翻转一次,在定时器溢出时再翻转一次不行吗?
这里面不用开中断就可以实现方波输出,只要设定好输出比较的动作为翻转。
通过设定输出比较定时器值来控制占空比,设定定时器预分频来控制周期。
返回列表