📄 system.c
字号:
/*
*********************************************************************************************************
* IOPORT functions
*
*
* File : IOPORT.C
* Data : April 12, 2007
*********************************************************************************************************
*/
#include "hal.h"
/*
*********************************************************************************************************
* IOPORT_INIT
*
* Description :
* Arguments : none
* Returned Values : none
* Note(s)/Warnings :
*********************************************************************************************************
*/
inline void Init_Port(void)
{
// PORT1 Peripheral SEL DIR OUT IE IES User
// P17 A2+ 1 0 0 0 0 A2+
// P16 A2- 1 0 0 0 0 A2-
// P15 TACLK/ACLK/A3+ 1 0 0 0 0 A3+
// P14 A3-/DAC0 1 0 0 0 0 A3-
// P13 TA2/A4+ 1 0 0 0 0 A4+
// P12 TA1/A4- 1 0 0 0 0 A4-
// P11 TA0/MCLK 0 0 0 1 0 TXD / KEY2
// P10 TA0 0 0 0 1 0 RXD / CHARGE
P1SEL = B1111_1100;
P1DIR = B0000_0011;
P1OUT = B0000_0000;
P1IE = B0000_0011;
P1IES = B0000_0000;
//P1IFG
//P1IN
// PORT2 Peripheral SEL DIR OUT IE IES User
// P27 S6 0 0 0 1 0 PLATE4
// P26 S7 0 0 0 1 0 PLATE3
// P25 S8 0 0 0 1 0 PLATE2
// P24 S9 0 0 0 1 0 PLATE1
// P23 S10 0 0 0 1 0 PLATE0
// P22 S11 0 0 0 1 0 KEY1
// P21 S12 0 1 1 0 0 CSN
// P20 S13 0 0 0 1 1 GDO2
P2SEL = B0000_0000;
P2DIR = B0000_0010;
P2OUT = B0000_0010;
P2IE = B1111_1101;
P2IES = B0000_0001;
//P2IFG
//P2IN
// PORT5 Peripheral SEL DIR OUT User
// P57 S4 0 1 0 OUT /EO
// P56 S3 0 1 1 SCL
// P55 S2 0 1 1 SDA
// P54 COM3 0 1 0 MOSI
// P53 COM2 0 1 0 SCK
// P52 COM1 0 0 0 MISO
// P51 S0 0 1 1 SCH4
// P50 S1 0 1 1 SCH3
P5SEL = B0000_0000;
P5DIR = B1111_1011;
P5OUT = B0110_0011;
//P5IN
// PORT6 Peripheral SEL DIR OUT User
// P67 - 0 1 1 SCH2
// P66 - 0 1 1 SCH1
// P65 - 0 1 1 SCH0
// P64 - 0 1 1 SCHREF
// P63 A1- 1 0 0 A1-
// P62 A1+ 1 0 0 A1+
// P61 A0- 1 0 0 A0-
// P60 A0+ 1 0 0 A0+
P6SEL = B0000_1111;
P6DIR = B1111_0000;
P6OUT = B1111_0000;
//P6IN
}
/*
*********************************************************************************************************
* INIT_SYS
*
* Description : Hardware Abstract Layer initializtion,call this routine to initialize all peripherals
* Arguments : none
* Returned Values : none
* Note(s)/Warnings :
*********************************************************************************************************
*/
void Init_Sys(void)
{
//--------------------------------------------------------------------------
//Watchdog
//--------------------------------------------------------------------------
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
//--------------------------------------------------------------------------
#ifdef USE_TIMER_A3
//--------------------------------------------------------------------------
//CLK = TACLK DIV = 8 MODE = UP INT = CCIFG0
//4096 = 1S
//TACTL = TASSEL_1 + ID_3 + MC_0 + TACLR;
TACCTL0 = CCIE ;
//TACCR0 = 0;
//TACCTL1 = 0;
//TACCR1 = 0;
//TACCTL2 = 0;
//TACCR2 = 0;
//TAR ; read only
#endif
//--------------------------------------------------------------------------
//Flash
//--------------------------------------------------------------------------
//FCTL3 = 0;
//FCTL2 = 0;
//FCTL1 = 0;
//--------------------------------------------------------------------------
#ifdef USE_DAC12
//--------------------------------------------------------------------------
//DAC12_0DAT = 0;
//DAC12_0CTL = 0;
#endif
//--------------------------------------------------------------------------
#ifdef USE_SD16_A
//--------------------------------------------------------------------------
SD16CCTL0 = SD16OSR_256 + SD16DF + SD16IE ; // Continuous conv., 2s compl.
SD16INCTL0 = SD16GAIN_32 + SD16INCH_0; // 32x gain, channel pair A0
SD16AE = SD16AE0 ;//|SD16AE1 |SD16AE2 |SD16AE3 |SD16AE4 ;
//SD16IV ;
//SD16MEM0 ;
#ifdef SYSCLOCK_2M
SD16CTL = SD16DIV_1; //when SYSCLOCK_2M
#endif
#ifdef SYSCLOCK_4M
SD16CTL = SD16DIV_2; //when SYSCLOCK_4M
#endif
#endif
//--------------------------------------------------------------------------
#ifdef USE_LCD_A
//--------------------------------------------------------------------------
{
int i;
char *pLCD = (char *)&LCDM1; //LCDM20..LCDM1
for (i = 0; i < 20; i++) // Clear LCD memory
*pLCD++ = 0;
LCDAVCTL1 = 0;
LCDAVCTL0 = 0;
LCDAPCTL1 = 0;
LCDAPCTL0 = 0;
LCDACTL = 0;
}
#endif
//--------------------------------------------------------------------------
//FLL+clock
//--------------------------------------------------------------------------
//FLL_CTL1 = 0;
#ifdef SYSCLOCK_512K
SCFQCTL = SCFQ_512K;
#endif
#ifdef SYSCLOCK_1M
SCFQCTL = SCFQ_1M;
#endif
#ifdef SYSCLOCK_2M
SCFQCTL = SCFQ_2M;
#endif
#ifdef SYSCLOCK_4M
SCFQCTL = SCFQ_4M;
#endif
//SCFI1 = 0;
SCFI0 = FLLD_1;
FLL_CTL0 |= XCAP18PF + DCOPLUS; // Set load capacitance for xtal
//--------------------------------------------------------------------------
#ifdef USE_BT //basic timer
//--------------------------------------------------------------------------
//ACLK = 32768 /256=128 (/256..2)
BTCTL = BTDIV + BT_fCLK2_DIV32; //0.5S
//BTCNT1 = 0; //for LCD
//BTCNT2 = 0;
#endif
//--------------------------------------------------------------------------
//Port
//--------------------------------------------------------------------------
Init_Port();
//--------------------------------------------------------------------------
//Special functions
//--------------------------------------------------------------------------
//IFG2 = 0;
//IFG1 = 0;
IE2 |= BTIE;
IE1 |= 0;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -