智能车制作

标题: xs128的输出比较(OC)功能 [打印本页]

作者: whb277123    时间: 2009-8-23 14:17
标题: xs128的输出比较(OC)功能
xs128的输出比较(OC)功能,怎么使用。发现TCNT是增计数,而且设置输出比较寄存器TCn完全没有作用。如何才能使输出比较起作用?
代码如下:(按照DG128的书写的,没有XS128的教材)

void T7_OC_Init(void)
{
  TSCR2=0X7;      //预128分频
  TIE_C7I=1;      
  TCNT=0;
  TCTL1_OM7=0;
  TCTL1_OL7=1;    //通道匹配时,OC7输出翻转
  TIOS_IOS7=1;    //OC模式
  TC7=0x120 ;      
  TSCR1_TEN=0;
}

在这个模块中,xs128好像还有三个寄存器叫TTOV  OCD7 OCM7,不知如何用?请指教!
作者: lxiongh    时间: 2011-3-18 16:03
现回答OCD7与OCM7寄存器的使用
//OC7M与OC7D的相关说明:
        /*首先将各个通道设置为输出比较,即在TIOS=0XFF的前提下,设OC7M=11000011B ,那么就说明输出
        比较通道7将要管理OC0、OC1、OC6、OC7四个通道;设OC7D=10101110B,那么在OC7输出比较成功后
        (就是 TCNT增加到了TC7),那么刚才提到的四个通道引脚上的逻辑状态就编程了0(OC7D的第0位)、
        1(OC7D的第1位)、0(OC7D的第6位)、 1(OC7D的第7位)。感觉和普通的输出没什么区别,没错,TIOS将某
        个通道设定为输出比较时,将OC7M中的相应位置1,对应的引脚就是输出状态,与DDR中的对应位的状态无关,
        但OC7Mn并不改变DDR相应位的状态。
作者: lxiongh    时间: 2011-3-18 16:06
补充TTOV:当设定相应引脚有输出比较时,比较事件触发时,相应引脚翻转使能位,
作者: fanfankaka123    时间: 2011-3-18 21:20
正常模式下TCNT是不能赋值的,只能读取。用中断吧,在中断中读取TCNT的值,然后再改变TC7的值。
输出比较的意思就是当TCNT得值等于TCn的值时就会中断。
输入捕捉就是中断时将TCNT的值赋给TCn;




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2