51单片机,6M晶振,20us定时,求救。

[复制链接]
5110|12
 楼主| zhaolipingyy 发表于 2009-9-12 20:32 | 显示全部楼层 |阅读模式
小弟最近在写一个发生脉冲的程序。要发出20us的脉冲,方案已定,用51定时器,6M晶振,用C语言写。结果进出中断所花费的时间大于20us。无法产生20us的延时。除了嵌入汇编以外,有没有别的方式可以加快进出中断?是否可以优化编译器对程序的处理?
宇容创行 发表于 2009-9-12 21:40 | 显示全部楼层
别用中断了,用nop延时
lyjian 发表于 2009-9-12 22:16 | 显示全部楼层
用软件做,CPU不用做别的了
用T2的频率输出功能吧
aozima 发表于 2009-9-12 22:45 | 显示全部楼层
51单片机,6M晶振
12T的话一个指令周期就是2uS

如果这个脉冲输出还要可控的话....
期待你的解决方案:lol:lol
waytoCTO 发表于 2009-9-12 23:00 | 显示全部楼层
呵呵,这么短时时10条指令都也不到,这别用C了
不亦心 发表于 2009-9-12 23:03 | 显示全部楼层
软件实现不了,那就在硬件上做手脚。
产生个低频在倍频
踢球老越位 发表于 2009-9-12 23:43 | 显示全部楼层
找STC的51试试吧,快一点
kingTek 发表于 2009-9-13 00:19 | 显示全部楼层
本帖最后由 kingTek 于 2009-9-13 09:00 编辑

时间太短了,可能无法做到。
xuyiyi 发表于 2009-9-13 13:50 | 显示全部楼层
51单片机,6M晶振
12T的话一个指令周期就是2uS
10个指令周期就是20uS
BRL_mjc 发表于 2009-9-13 19:30 | 显示全部楼层
可以换个单片机或者提高系统个的震荡频率。不过你是发烧友的话,就不能用C语言实现了,汇编可能会实现,但是不会精确地。
fugong 发表于 2009-9-13 22:11 | 显示全部楼层
找个自带PWM的MCU。。。。。。。。。
 楼主| zhaolipingyy 发表于 2009-9-14 10:07 | 显示全部楼层
谢谢大家的回复。特别感谢3楼的提示。这个信号的输出端口在原来的设计中接在P10。我觉得和T2有关,但是因为对T2不熟悉,所以没有用。三楼的建议应该试一试。
王命天涯 发表于 2009-9-14 11:51 | 显示全部楼层
关中断,搞几个空语句即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

108

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部