基于VC的MV05芯片PWM功能测试软件设计
PWM 用户自定义模式下数据包封装函数代码如下:
void CCommWizardDlg::OnButtonUsrMode()
{ UpdateData(TRUE); //数据更新
CString strtemp;
int s1[9]; //存放数据包数据的数组
unsigned char c1;
// 时钟选择
if(this->m_Check1) {s1[6]=0;s1[7]=0;}// 单时钟
if(this->m_Check2) {s1[6]=0;s1[7]=1;}// 双时钟
if(this->m_Check3) {s1[6]=1;s1[7]=0;}// 四时钟
if(this->m_Check4) {s1[6]=1;s1[7]=1;}// 12 时钟
//占空比设置
if(this->m_Check9) {s1[3]=0;s1[4]=0;s1[5]=0;}// 1:1
if(this->m_Check10) {s1[3]=0;s1[4]=0;s1[5]=1;}// 1:2
if(this->m_Check11) {s1[3]=0;s1[4]=1;s1[5]=0;}//1:3
if(this->m_Check12) {s1[3]=0;s1[4]=1;s1[5]=1;}//1:4
if(this->m_Check13) {s1[3]=1;s1[4]=0;s1[5]=0;}//1:5
if(this->m_Check14) {s1[3]=1;s1[4]=0;s1[5]=1;}// 1:6
if(this->m_Check15) {s1[3]=1;s1[4]=1;s1[5]=0;}// 1:7
if(this->m_Check16) {s1[3]=1;s1[4]=1;s1[5]=1;}// 1:8
//PWM -ADC 控制
if(this->m_Check5) {s1[1]=0;s1[2]=0;}// 0 主0 控
if(this->m_Check6) {s1[1]=0;s1[2]=1;}// 0 主1 控
if(this->m_Check7) {s1[1]=1;s1[2]=0;}// 1 主0 控
if(this->m_Check8) {s1[1]=1;s1[2]=1;}// 1 主1 控
s1[0]=0; //用户自定义模式选择
c1=s1[0]*128+s1[1]*64+s1[2]*32+s1[3]*16+s1[4]*8+s1[5]*4+s1[6]*2+s1[7]*1 ;
strtemp.Format(%02X ,c1); //10 进制转化为16 进制
m_strSendString=(CString)48 59 4C + strtemp ;
}
5 下位机软件
下位机软件包括串口通信模块和PWM 功能配置模块。串口部分使用中断方式接收数据, 当接收到上位机的命令执行中断服务程序转到PWM 功能配置模块,PWM 功能模块对接收到的 数据进行按位解析,根据通信协议将不同的数据位送到不同的寄存器。该方法对其它测试系 统具有借鉴意义。
6 结束语
本文介绍了上海大学微电子研究与开发中心研发的一款汽车发动机冷却风扇控制芯片, 给出一种使用VC++6.0编写上位机软件对其进行测试的方法。本文的创新点是构造数据封装 函数,将用户要测试的项目一次发送给下位机,下位机按位解析数据包,将相应数据位送入 相应寄存器。通过调试证明该方法是完全可行的,提高了测试效率,测试结果达到了预期设 计指标,芯片功能完全正确。
pwm相关文章:pwm原理
评论