智能车制作

标题: 关于ECT溢出触发的一段小程序 [打印本页]

作者: chenrunshe_007    时间: 2009-5-3 21:59
标题: 关于ECT溢出触发的一段小程序
我设置比较输出的是低电平,所以每次比较输出PTT_PTT0=0,但是由于设置了TTOV=OX01,每次TCNT从OXFFFF跳变成0的时候PTT_PTT0翻转电平,我看DataSheet上面只说设置TTOV会有溢出触发输出比较,但没有提到电平翻转啊?到底是什么原因?有高手可以解决一下么?

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

void DoubleOutputInit(){
  TIOS=0X01;      //Channel 0 output compare
  TSCR1=0X90;     //Timer enable
  TTOV=0X01;      //Timer Toggle On Overflow Enable;
  TCTL2=0X02;     //OutPut zero
  TSCR2=0X07;     //Prescaler Factor=128
  TC0=0X7fFF;     //设置TC0=65536/2
}
void main(void)
{
    /* put your own code here */
    DDRB=0XFF;
    PORTB=0XFF;
    DoubleOutputInit();
    EnableInterrupts;
    for(;;)
  
    {
      while(PTT_PTT0==0)
      PORTB=0X00;
      while(PTT_PTT0==1)
      PORTB=0XFF;
      _FEED_COP(); /* feeds the dog */
    } /* loop forever */
  /* please make sure that you never leave main */
}
作者: th152210    时间: 2011-1-6 14:31
我也正在做TIM模块的实验。看过很多资料,其实TTOV的作用是在相应位置位时,对应的引脚会在TCNT溢出时电平翻转。也就是说你设置计数器溢出绑定的引脚,如果开始时0,输出比较匹配时,置位1(假设OMx和OLx设定的动作为置1方式),而当定时器溢出时,又会变为0。TTOV的介绍中还提到,绑定的引脚必须设置为OC方式。。。
作者: zhou1992    时间: 2011-3-31 20:19
请问你的这个程序是完整的吗。




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