作者BlueFeel (蓝色感觉)
看板ASM
标题Re: [问题] 量测脉波宽度
时间Mon Apr 13 20:55:26 2009
※ 引述《katzlee (I wish)》之铭言:
: ※ 引述《BlueFeel (蓝色感觉)》之铭言:
: : 请教一下,
: : 如果我要设计一个....
: : pin2 输入负脉波宽度>1ms , pin1 = 1
: : <1ms , pin1 = 0
: : 的功能
: : 刚开始以为 pin2用INT0(外部中断)做
: : 在中断函式内 写个 计数器,
: : 当跳开後,会依计数值做pin1判断1还是0
: : 後来发现,我误会中断的意义
: : 它是 "下缘触发".....就跳进中断函式,做计数没错
: : 但这计数....值并非并非是负脉波宽度
: : 怎麽说??
: : 跳到中断计数....这计数只计1次.....非我想像的一直计数到 rising才停
: : 所以想跟大大请教一下
: : 这样的应用该怎麽做呢??
: 我之前也是要做量测PWM Duty的function,也是想了好久
: 因为你duty的精度跟你MCU count的快慢强相关...
: 当你的PWM频率一快时,计数出来的结果,换算回Duty其实不太准
: 不过你如果只是要判断大於1ms就可以,超过一点没关系的话那就还好
: 我最後的方法是 直接让他进一个RC filter...
: 再用ADC去捉那个dc值回来,而你如果只是要比固定的宽度,
: 不用ADC,直接加个比较器也行 - MCU中断输入直接接比较器输出
: 来改变pin1的输出
: 一点建议,希望没误会你的需求。
感谢您的建议
主要是因为成本不想太高 (希望mcu只要50元以下,好买)
虽然没有要很精准需要去算多少ms,但也不能有 PULSE, mcu却lose判断到的机会出现
因为成本考量 , 外面接一些被动元件超过50元也不行
所以很麻烦
目前买到的是AT89C2051 (50元)
觉得很怪,我ALL-11烧的时候出现ID check没过
换过一颗也是一样.
若是取消ID check的话,如抹除.....等等,都正常
就第一个id check不过,真怪
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.194.110
※ 编辑: BlueFeel 来自: 123.195.194.110 (04/13 20:57)