#define RSP1_RESET_PIN PIN6
d、类的派生
在硬件抽象层中声明类
CRadar,直接由
RSP1类派生即可,其源程序如下:
class CRadar:public CRSP1
{
};
并在HAL_include.hpp文件中添加如下包含语句:
#include "./Radar/Radar.hpp"
e、对象的声明
可以在CHAL类中,进行对象声明,其源程序如下:
class CHAL
{
public:
//看门狗对象,不需更改
CWatchDog WatchDog;
//定义项目中用到的其它对象
CHCI HCI;
CRadar Radar;
使用RSP1需启用1个异步串行口,UART0或者UART1均可(本文以UART1为例),并将其波特率设置为38400,其启动设置在config.hpp中完成,源程序如下:
#define INTERNAL_PERIPHERAL_UART1_MODE 10
异步串行口启动后,在main.cpp的异步串行口中断函数中加入显示语句即可,源程序如下:
#pragma vector=USART1RX_VECTOR
__interrupt void Usart1RX_ISR(void)
{
//接收到的数据存于RXBUF1寄存器中
Target.HAL.Radar.Interrupt_Dispose(RXBUF1);
}
g、调用方法
程序启动后,在进入主循环之前,应进行如下程序操作:
if (Target.HAL.Radar.Reset() == False)//对RSP1进行复位操作,复位不成功,则闪灯提示
{
while(1)
{
Target.HAL.HCI.Led.Open();
Target.Delay.MilliSecond_250();
Target.HAL.HCI.Led.Shut();
Target.Delay.MilliSecond_250();
}
}
Target.HAL.Radar.ReadSamplingRate(); //读取采样频率
if (Target.HAL.Radar.b_UartFinish == False)
{
while(1)
{
Target.HAL.HCI.Led.Open();
Target.Delay.MilliSecond_250();
Target.HAL.HCI.Led.Shut();
Target.Delay.MilliSecond_250();
}
}
上述程序调用完毕后,便可进入主循环,执行希望的操作。