针对PIC微控制器的设计窍门
据大小定义为以字节来表示的数据大小(例如32位为4个字节等);
2.分配栈存储空间并将MathPtr初始化为栈的最低地址;
3.MathCarry数据位存储计算后的PIC进位标志;
4.MathDouble配置位在非零时可进行双精度乘、除操作。
PicMath还提供用于无栈运算的函数,该函数利用指针指示源及目的参数,并用计算结果覆盖目的参数。
并行从端口
以往,快速数据传输总是以并行来进行。现在有了每秒数百万位的串行数据速率,串行传输可能是一种更好选择,但除各种串行端口外,很多较大的PIC还提供一个并行从端口(PSP)。当在所有串行端口都用于其它事情后还需要另一个通信通道时,PSP可能相当有用。虽有几条用于片选及读/写8位数据的控制线,但没有标准方法来知道数据何时能读或者PIC是否已处理完写入的最后值,等等。
PIC在内部拥有输入缓冲器满(IBF)及输出缓冲器满(OBF)状态位。IBF表示有人对并行端口进行写操作,而OBF则表示PIC输出的最后值仍在等待被读取。图7显示这些过程是如何进行的。
列表1:CCPR1中断程序。
尽管可以只用现有功能、某些固件以及非常严格的协议来进行通信,但设计工程师可能还需要额外的握手线以再造内部IBF和OBF状态位的等效值。这通常至少需要一个额外的输出管脚与一个额外的输入管脚来监视信号。可用快脉冲来指示发送方与接收方准备就绪。可直接将一个握手输出连接至一个边沿触发中断管脚。一些管脚可根据变化来产生一次中断,但如果它是快脉冲,则读该端口管脚将正好显示当前逻辑电平。
电平激励握手存在使两边失去同步的危险。发送方可能会看到接收方“READY”握手线,发送一个字节,并在接收方响应前再检查“READY”信号。而接收方可能会看到发送方的“READY”握手线,读一个字节,并在发送方响应前再检查“READY”信号,并再一次读同一数据。
PLD或其它外部逻辑器件可产生模仿内部IBF及OBF状态位的外部握手信号。发送方的/WR信号可设置XIBF(外部IBF),并可由接收方的输出握手管脚来清除。发送方通过监视XIBF来确定接收方何时准备就绪。发送方的握手管脚可将XOBF(外部OBF)设置为数据已做好读准备的信号。接收方的/RD信号清除XOBF。发送方不需要监视XOBF,因其内部OBF会复制该信号并产生中断。
处理器能提供满足所有需要的内置硬件支持当然最好,但如果不能,且设计不得不尽快完成,则上述技巧中的一项可能就够用。这些技巧可用于各种处理器,包括16Cxx、16Fxx及18Fxx PIC等。只要了解其潜在优势与局限,它们就能成为您工具箱中的有用选项。
- 分析连结USB闪存盘与PIC微控制器的简单方案(10-08)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)