-
大小: 3KB文件類型: .c金幣: 1下載: 0 次發(fā)布日期: 2021-06-18
- 語言: 其他
- 標(biāo)簽: msp430??直流調(diào)速??.c源程序??
資源簡介
結(jié)合永磁直流電機(jī)驅(qū)動要求和集成驅(qū)動芯片工作特點(diǎn),進(jìn)行永磁直流電機(jī)調(diào)速驅(qū)動的單片機(jī)應(yīng)用程序設(shè)計(jì)。該源程序利用MSP430單片機(jī)實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)以及調(diào)速
代碼片段和文件信息
#include?“msp430x14x.h“
#define?PWMDIR?P4DIR
#define?PWMSEL?P4SEL
#define?PWMOUT?P4OUT
#define?BITP????BIT1
typedef?unsigned?int?uint;
typedef?unsigned?char?uchar;
/*初始化時(shí)鐘函數(shù)*/
void?clk_init()
{
?
??BCSCTL1&=~XT2OFF;?//開啟XT2
??do
??{
????IFG1&=~OFIFG;???//清除振蕩器錯(cuò)誤標(biāo)識
????_NOP();?????????//產(chǎn)生一個(gè)系統(tǒng)周期延時(shí)
??}
??while((IFG1&OFIFG)!=0);?//標(biāo)識為1繼續(xù)等待
?
??BCSCTL2|=SELM_2;????????//選擇MCLK時(shí)鐘源為XT2CLK
??BCSCTL2|=SELS;??????????//選擇SMCLK時(shí)鐘源為XT2CLK
??BCSCTL2|=DIVS_0;????????//SMCLK分頻比為1
??IFG1&=~OFIFG;???//清除振蕩器錯(cuò)誤標(biāo)識
}
/*延時(shí)函數(shù)*/
/*void?delay(uint?t)
{
????uint?i=0;
????for(i=0;i }*/
/*讀取開關(guān)狀態(tài)函數(shù)*/
uchar?read_switch()
{
????uchar?address;??//聲明端口地址變量
????address=P6IN;???//從P6IN口讀取數(shù)據(jù)?撥碼開關(guān)p6.4-p6.7
????address&=0xf0;??//地址低4位置0
????return?address;
}
/*端口初始化函數(shù)*/
void?port_init()
{
?????P3DIR|=?BIT6;
?????P3DIR|=?BIT7;
??
?????P3SEL&=?~BIT6;
?????P3SEL&=?~BIT7;
??
?????P3OUT|=?BIT6;??????
?????P3OUT|=?BIT7;??//置高,否則不能運(yùn)轉(zhuǎn)
????
????//pwm輸出引腳/?EA/EB
????PWMDIR|=BITP;??//設(shè)為輸出
????PWMSEL|=BITP;??//設(shè)為第二功能
????PWMOUT|=BITP;??//輸出高電平
????
????
????//正反轉(zhuǎn)控制輸出引腳
????P4DIR|=BIT3;??//設(shè)置P4.3引腳為輸出引腳
????P4DIR|=BIT2;??//設(shè)置P4.2引腳為輸出引腳
????
????P4SEL&=~BIT3;?//設(shè)置P4.3引腳為輸入/輸出引腳
????P4SEL&=~BIT2;?//設(shè)置P4.2引腳為輸入/輸出引腳
????
????
????P4OUT|=BIT3;??//設(shè)置P4.3引腳輸出高電平
????P4OUT&=~BIT2;?//設(shè)置P4.2引腳輸出低電平
}
/*中斷服務(wù)程序*/
#pragma?vector=TIMERB0_VECTOR
__interrupt?void?pwm_ccr0()
{
??uchar?addr=read_switch();
??uchar?dir=addr?&?0x80;
??uchar?speed=addr?&?0x70;
???if(dir==0x80)
評論
共有 條評論