📄 inits.c
字号:
//#include "includes.h"
#include <msp430x16x.h>
#include <defines.h>
unsigned int MuxByte[8], ADC_control[4];
//==================== config_MainCLK () ==============================
void config_MainCLK(void)
{ int i;
BCSCTL1 &= ~XT2OFF; // XT2on => runing from 8MHz crystal
do { IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--);// Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2 + SELS; // MCLK= SMCLK= XT2 (safe)
}
//======================= init_vectors() ================================
void init_vectors()
{
ADC_control[0] = 0x9F; // CH0: OXIMETER
ADC_control[1] = 0xDF; // CH1: EEG1 (On the processor board)
ADC_control[2] = 0xAF; // CH2: EEG2
ADC_control[3] = 0xEF; // CH3: ECG 1110 1111
MuxByte[0] = 0x18; // xxx1 1xxx ExG_DATA
MuxByte[1] = 0x18; // xxx1 1xxx ExG_DATA
MuxByte[1] = 0x0B; // xxx0 1011 ExG_Zpos
MuxByte[2] = 0x08; // xxx0 1001 ExG_Zneg
MuxByte[3] = 0x00; // xxx0 1100 ExG_DRL
}
//==================== IO_control_lines( ) ==============================
void IO_control_lines()
{
//******** PORT 1 *******//
P1DIR = 0x7F;
P1OUT = 0x00;
//******** PORT 2 *******//
P2DIR = 0x3F;
P2OUT = 0xFF;
//******** PORT 4 *******//
P4DIR = 0xFF;
P4SEL = 0x00;
P4OUT &= 0x00;
//-------- PORT 5 --------//
P5DIR = 0xFF;
P5OUT = 0x00; //
}
//==================== set_USART0_SPI( ) ================================
void set_USART0_SPI(void)
{
//---------SPI configuration----------------------------------------
UCTL0 |= 0x01;
ME1 |= USPIE0;
U0CTL |= CHAR + SYNC + MM;
U0TCTL |= CKPL + SSEL0 + SSEL1 + STC;
U0BR0 = 0x05;
U0BR1 = 0x00;
U0MCTL = 0x00;
U0CTL &= ~SWRST;
P3OUT |= 0x01;
}
//==================== set_USART0_UART () ===============================
void set_USART0_UART()
{
P3SEL |= 0xF0;
UCTL0 |= 0x01;
ME1 |= UTXE0 + URXE0;
UCTL0 = 0x10;
UTCTL0 = 0x31;
//Configuration for 115200 bps
UBR00 = 0x45;
UBR10 = 0x00;
UMCTL0 = 0x2C;
UCTL0 &= ~SWRST;
}
//==================== set_USART1_UART( ) ================================
void set_USART1_UART(void)
{
ME2 |= UTXE1 + URXE1;
UCTL1 |= CHAR;
UTCTL1 |= SSEL1;
//Configuration for 115200 bps
UBR01 = 0x45;
UBR11 = 0x00;
UMCTL1 = 0x00;
UCTL1 &= ~SWRST;
}
//==================== config_Timer_A_TimerINT () =================================
void config_Timer_A_TimerINT()
{
CCTL0 = CCIE;
// CONFIGURATION FOR 32 kHZ
// CCR0 = TIMER_A_CCR0 - 1;
// TACTL = TASSEL_1 + MC_1;
// CONFIGURATION FOR 8MHZ
CCR0 = TIMER_A_CCR0 * 2;
TACTL = TASSEL_2 + MC_1;
}
//==================== config_Timer_B_TimerINT () =================================
void config_Timer_B_TimerINT()
{
TBCCTL0 = CCIE;
// CONFIGURATION FOR 8MHZ
TBCCR0 = TIMER_B_CCR0;
TBCTL = TBSSEL_2 + MC_1;
}
//==================== config_Timer_A_PWM_ON () =================================
void config_Timer_A_PWM_ON()
{
P2DIR |= 0x10;
P2SEL |= 0x10;
CCR0 = TIMER_A_COUNTER - 1;
CCTL2 = OUTMOD_4;
//CCR2 = 128;
TACTL = TASSEL_1 + MC_1;
}
//==================== config_Timer_A_PWM_OFF () =================================
void config_Timer_A_PWM_OFF()
{
TACTL &= TIMER_A_OFF;
TACCTL0 = OUTMOD_0;
}
//==================== Timer B Configuration ============================
void config_Timer_B_PWM()
{
// P4DIR |= 0x7e;
// P4SEL |= 0x7e;
TBCCR0 = TIMER_B_COUNTER - 1;
// Only for TB1
TBCCTL1 = OUTMOD_4;
//GLOBAL
TBCTL = TBSSEL_2 + MC_1; // ACLK, up mode, START TIMER
}
//================== timer_B_OFF (void) ============================
void timer_B_OFF(void)
{
TBCTL &= TIMER_B_OFF;
TBCCTL0 = OUTMOD_0; // CCR0 OUT mode
}
//====================== MUXs_Port4(VOID) ===============================
void MUX_extZ(unsigned int code_value)
{
}
//==================================================================
//==================================================================
//==================================================================
//==================== config_all () ==============================
void config_all(void)
{
//------- WATCHDOG
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog
//------- CONFIGURATIONS
config_MainCLK();
init_vectors();
IO_control_lines();
set_USART0_UART();
//set_USART0_SPI();
set_USART1_UART();
//=== DAC12 configuration:
ADC12CTL0 = REF2_5V + REFON;
#ifdef BITS12
//-- 12 bits DAC
DAC12_1CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; // Internal ref gain 1
#endif
#ifdef BITS8
//-- 8 bits DAC
DAC12_1CTL = DAC12IR + DAC12AMP_2 + DAC12ENC + DAC12RES;// + DAC12IE;
// Gain x1 + + Enable + 8bits + Int
#endif
config_Timer_A_TimerINT();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -