whhityang 发表于 2010-10-12 09:19:28

请教下定时器3输出PWM时怎么禁止TC3的输入捕捉触发引脚起作用(M128芯片)

这个帖子在AVR版发了几天也没人回答,故在大虾专栏再发一遍请教下专家。。 (违规发帖的话就请版主把AVR版的帖子删除了吧)
写的程序是用定时器1和3产生PWM波,初始化设置都是一样的,调节OCR1、OCR3大小来改变占空比。这是定时器初始化部分,产生400HZ方波,用的是模式10:相位修正PWM,ICR1/ICR3的值作为计数器的TOP。
TCCR1B = 0x00; //stop
TCCR3B = 0x00; //stop                     
ICR1H= 0x27;
ICR1L= 0x10;
ICR3H= 0x27;
ICR3L= 0x10;
TCCR1A = 0xE2;
TCCR3A = 0xB2;
    定时器1产生pwm正常,可是定时器3就不能正常输出方波。用仿真器一点点的调,找到是定时器3初始化ICR3的值在程序里每次都变成了0x0000,发现应该是在M128的PE7(IC3)和PE2(AC+)这两个引脚复用有别的连线的问题。按128手册P126页所写应该是“外部引脚ICP3有输入捕捉触发信号产生后,将TCNT3的值写入ICR3”中,按照这意思我就在初始化中加入 TCNT3=0X2710 后,定时器3可以正常产生PWM了。但是这只是表面解决问题了,怎么能禁止这个IC3的捕捉触发信号呢?
按手册P123所说,“当ICRn用作TOP值时,ICPn与输入捕捉功能脱开,从而输入捕捉功能被禁用”,可是我这里ICP3怎么还是起作用呢?
    PE2脚不知道有没有问题,没有处理。
    定时器的启动是放在程序里面的,如下:
TCCR1B = 0x11;//start Timer
TCCR3B = 0x11;
PE7脚是连接的12864的RS脚,所以导致每次一送LCD菜单或数显示,ICR3就清零了
定时器的初始化对照了几遍手册,感觉应该是没有问题了,很纳闷怎么出现这问题。
页: [1]
查看完整版本: 请教下定时器3输出PWM时怎么禁止TC3的输入捕捉触发引脚起作用(M128芯片)