📄 mspper.c
字号:
#include "mspper.h"
/*
*******************************************************************************
* MSP OSC *
*******************************************************************************
*/
void CpuOscInit(void)
{
char i;
BCSCTL1 &= 0x7f;
while(1)
{
IFG1 &= 0xfd;
for(i=0;i<100;i++);
if((IFG1 & 0x02)==0)
break;
}
for(i=0;i<100;i++);
BCSCTL2=0x88; /*MCLK and SMCLK select second oscillator*/
}
/*
*******************************************************************************
* MSP PORT *
*******************************************************************************
*/
void CpuGpioInit(void)
{
/*Initialize IO port*/
P1SEL = 0x00; /*P1 as IO port*/
P1DIR = 0x4f; /*P1 as outport*/
P1OUT = 0xff;/*Initialize P1 Port*/
P2SEL = 0x00; /*P2 as IO port*/
P2DIR = 0x00; /*P2 inport*/
P3SEL = 0xb0; /*P3.0-3 and p3.6 as IO port,P3.4,p3.5 and P3.7 as function port*/
P3DIR = 0x0f; /*P3.0-3 as outport,p3.6 as input*/
P3OUT = 0x00;/*Initialize P1 Port*/
P4SEL = 0x00; /*P4 as IO port*/
P4DIR = 0xff; /*P4 as outport*/
P4OUT = 0xff;/*Initialize HDS1=1*/
P5SEL = 0x00; /*P5 as IO port*/
P5DIR = 0xff; /*P5 as output*/
P6SEL = 0xff; /*P6.0-5 as A/D Port,p6.6-7 as io port*/
P6DIR = 0x00; /*P6 as inport*/
}
/*
*******************************************************************************
* MSP TIMERA *
*******************************************************************************
*/
void CpuTimeraInit(float priod)
{
unsigned long priodcnt;
unsigned int taid;
priodcnt = (MSP_OSC/1000.0)*priod;
taid = 0;
while(priodcnt>65535L)
{
priodcnt >>= 1;
taid++;
}
if(taid>3)
{
taid = 3;
}
CCR0 = priodcnt-1;
CCR1 = priodcnt;
CCR2 = priodcnt;
TACTL = 0x0206; /*TA intfreq = SMCLK/priod,clear time*/
TACTL_bit.TAID = taid;
TACTL |= 0x0010; /*Enable timer A interrupt*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -