借原子老大宝地:发一个STM32开源有偿编程、需求书。(固定标底108元)
希望:对此有兴趣的 熟手截标,【淘宝】支付报酬。 。(固定标底108元)
编程环境必须是 IAR 6.5 。完成后 提供整个 工程文件包和源程序。
要求如下:最好使用 我这里 提供的【空白工程包】、作为起头。
CPU类型:STM32 C8T6 到 RCT6 都可以。
输入、输出 绝对避免使用 PA5和PA4。建议使用 PA1 和 PA2。
使用 中断方式,绝对避免:主程序链内 的 循环延迟。
CPU资源的使用,尽量单一化。以后还会组合其它的程序模块。
具体内容:
将输入脉冲【以上升沿计】做适当延迟之后输出,(输出脉冲宽度
固定为100us左右)(不规定死、以计数器参数整数化为宜),
脉冲时间 间隔为 T (us) ,延迟时间为 td (us) 。。。
在未收到“第二个脉冲”的情况下【无输出】若第二个脉冲到来时间
太迟(注意你的计数器溢出否?)超过350 000 us ,也(掐断)【无输出】。
简单图解:
详细算法:
关于 T 和 td 算法,详细叙述如下:(全部都整数运算)
T <= 15000 us 那么 td = 0
15000 < T <= 20000 us 那么 td = (T-15000)/25
20000 < T <= 30000 us 那么 td = (T-20000)/33.333 + 200 附注[33.333*1024=34133最好]
30000 < T <= 40000 us 那么 td = (T-30000)/20 + 500
40000 < T <= 60000 us 那么 td = (T-40000)/20 + 1000
60000 < T <= 75000 us 那么 td = (T-60000)/7.5+ 2000 附注[7.5*2=15最好]
75000 < T <=120000 us 那么 td = (T-75000)/9 + 4000
120000 < T <=200000 us 那么 td = (T-120000)/16+ 9000
200000 < T 那么 td = 15000 us
算法中注意:33.333和7.5 的处理方式:
(T-20000)/33.333 等效于 (T-20000)*1024 /34133 误差更小些。(只整数运算)
(T-60000)/7.5 等效于 (T-60000)*2 /15 ——这样来处理 小数问题——
除法运算的结果、自动取整数 与后面的 “基数”相加 输出 td 给计数器。
。。。
截标人:需要 报出 预期的完成时间,完成早的,和截标早的 做最后协商。
。。。
附件 : IAR 6.5 ,我习惯的 :空白 工程 包。
【淘宝】付款 链接,等 截标完毕 再提交。。。 |