这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » AVR,OC1A 我对AVR的OC1A的理解,请批评指正!

共3条 1/1 1 跳转至

AVR,OC1A 我对AVR的OC1A的理解,请批评指正!

院士
2006-09-17 18:14:16     打赏
AVR,OC1A 我对AVR的OC1A的理解,请批评指正!



关键词: 我对     理解     请批评指正    

院士
2006-12-22 22:43:00     打赏
2楼
问 以下是我对AVROC1A有理解,错误的话,请批评指正!
在《AVR单片机应用技术》---北航大学出版社,耿德根等编。
书中的P153页例4.20好像有一些问题。

程序的原意是在T1引脚对外来信号进行10分频后比较输出(于OC1A引脚),
原程序用意是在OCR1AH放常数0,在OCR1AL放常数5,每比较匹配时改变一次OC1A引脚。但实际是把外来信号12分频了!!!
仔细分析,其过程可能是TCNT1的值是由0变到5,到5时刚刚匹配,然后下一个外来信号触发后,TCNT1回0如此一来,从0到5其实一共是6了。
如果我的说法成立的话,那么有没有办法对外来信号进行2分频??!!    

我把它整理了一下,变为以下形式:
.include"m8def.inc"
.org 0x0000
rjmp start
.org 0x0013
start:
ldi r16,low(ramend)
out spl,r16
ldi r16,high(ramend)
out sph,r16
cbi ddrd,PD5
sbi portd,PD5
sbi ddrb,PB1

ldi r16,0x40
out TCCR1A,r16
ldi r16,0
out OCR1AH,r16
ldi r16,5
out OCR1AL,r16
ldi r16,0x0f ;外来脉冲上升沿有效
out TCCR1B,r16 ;A匹配时TCNT1清0
ldi r16,1<<OCIE1A
out TIMSK,r16
here: rjmp here
如果我的说法成立的话,那么有没有办法对外来信号进行2分频??!!

1: 请你们不要小看这个问题!!帮忙看看,讨论讨论嘛!!其实程序不长,也不复杂,不会花大家很多时间的!谢了。 2: 太令我失望了!高手如云,难道你们没有发觉这个问题?? 3: 错!是10分频,从5变到0只需要一个CPU时钟是10分频,从5变到0只需要一个CPU时钟,除非输入脉冲频率比CPU时钟频率高 4: zalin兄zalin兄:我可是在T1脚接了一个按键开关,的确是发现在每按六次,OC1A引脚才改变一次电平!(可在OC1A引脚接一个发光二极管)。不信的话,你可以验证一下,若你发现我说得不对才批评我好吗?
(MEGA8中T1是PD5,OC1A是PB1) 5: 对不起,用AVRStudio模拟了一下,确实如你所说,你是对的! 6: 那么,现在的问题可以讨论为:用AVR能够对频率不高的信号2分频吗那么,现在的问题可以讨论为:用AVR能够对频率不高的信号2分频吗? 7: 请教:zalin: 请问您是怎样用AVR STUDIO进行这样的模拟仿真的??(如何设置外部触发??)能给小弟指点一二吗? 8: AVRSTUDIO模拟仿真交替设置PIND5(T1)为1和0就可以了,你说的2分频可以试一试OCR1AL=0,AVRSTUDIO模拟是正确的。
关于我的第一帖,我查了数据手册,原来是T2只需要1个CPU时钟。 9: 非常感激zalin非常感激zalin,但我试过了用OCR1AL=0;结果是比较匹配失效!
谢谢你的帮助! 10: AVR有没有办法使输入两分频呢?

专家
2022-08-20 15:42:37     打赏
3楼

谢谢分享                    


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]