智能车制作
标题:
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