| |
|---|---|
| (点击题目可以在互联网中搜索该题目的相关内容) 日期:2007-8-7 21:15:01 来源: 作者: 点击: | |
|
在FPPA中,首创了一个非常好用的延时指令 这就是delay 指令 其中包括: 1. delay i(一个立即数) 2. delay m(数据单元的内容数) 3. delay a (累加器中的内容数) 一般情况(立即数,内容数范围为1~255)延时时间为立即数加一个周期, 当立即数,内容数为0时,延时周期为257了,很多朋友一开始使用时都没有注意到这一点,结果在除BUG的时间上就会多一些。因为IC的资料上好像也没有特别说明,所以很容易让人误解为delay 0 的功能是延时1个时钟周期了。 但是,如果我们很细心的查看资料时,会发现在一个指令描述的教材中其实是 有专门的注释的。 在此特别感谢一位姓陈的先生提供了相关的信息,谢谢! 感觉还是要举个实际的例子来说明FPPA写延时程序的灵活性:以下例子是一个曼切斯特码的"波特率"常数,1.68ms,我想曼码的解码没有比利用波特率的观念更方便的了.还是那句话,因为有多核心,所以敢利用延时来处理,因为延时解码也不会被任何异常打断. 1.68ms可能用51或PIC,AVR写起来都感觉麻烦,因为一次使用的NOP指令过多,的确不方便见人,呵呵.看看FPPA怎么写吧. 首先我们可以肯定的说,任何数,都是可以拆分成几个数的和的,利用这样的特点,写高精度延时一点也不觉得困难了. 而且FPPA除了查表指令,其他的任何指令都是单周期,不用去考虑,跳转是否又需要2个周期了,呵呵. 本新闻共2页,当前在第1页1 2
|
|
| 上一篇: PPM编码及最佳PPM解码应用 下一篇: 舵机及舵机的精确控制,分辨率2us以下,7路以上 |
