基于VC的MV05芯片PWM功能測(cè)試軟件設(shè)計(jì)
PWM 用戶自定義模式下數(shù)據(jù)包封裝函數(shù)代碼如下:
void CCommWizardDlg::OnButtonUsrMode()
{ UpdateData(TRUE); //數(shù)據(jù)更新
CString strtemp;
int s1[9]; //存放數(shù)據(jù)包數(shù)據(jù)的數(shù)組
unsigned char c1;
// 時(shí)鐘選擇
if(this->m_Check1) {s1[6]=0;s1[7]=0;}// 單時(shí)鐘
if(this->m_Check2) {s1[6]=0;s1[7]=1;}// 雙時(shí)鐘
if(this->m_Check3) {s1[6]=1;s1[7]=0;}// 四時(shí)鐘
if(this->m_Check4) {s1[6]=1;s1[7]=1;}// 12 時(shí)鐘
//占空比設(shè)置
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 進(jìn)制轉(zhuǎn)化為16 進(jìn)制
m_strSendString=(CString)48 59 4C + strtemp ;
}
5 下位機(jī)軟件
下位機(jī)軟件包括串口通信模塊和PWM 功能配置模塊。串口部分使用中斷方式接收數(shù)據(jù), 當(dāng)接收到上位機(jī)的命令執(zhí)行中斷服務(wù)程序轉(zhuǎn)到PWM 功能配置模塊,PWM 功能模塊對(duì)接收到的 數(shù)據(jù)進(jìn)行按位解析,根據(jù)通信協(xié)議將不同的數(shù)據(jù)位送到不同的寄存器。該方法對(duì)其它測(cè)試系 統(tǒng)具有借鑒意義。
6 結(jié)束語(yǔ)
本文介紹了上海大學(xué)微電子研究與開發(fā)中心研發(fā)的一款汽車發(fā)動(dòng)機(jī)冷卻風(fēng)扇控制芯片, 給出一種使用VC++6.0編寫上位機(jī)軟件對(duì)其進(jìn)行測(cè)試的方法。本文的創(chuàng)新點(diǎn)是構(gòu)造數(shù)據(jù)封裝 函數(shù),將用戶要測(cè)試的項(xiàng)目一次發(fā)送給下位機(jī),下位機(jī)按位解析數(shù)據(jù)包,將相應(yīng)數(shù)據(jù)位送入 相應(yīng)寄存器。通過調(diào)試證明該方法是完全可行的,提高了測(cè)試效率,測(cè)試結(jié)果達(dá)到了預(yù)期設(shè) 計(jì)指標(biāo),芯片功能完全正確。
pwm相關(guān)文章:pwm原理
評(píng)論