|
分享一個液晶顯示的例程 IAR for MSP6.3,主要用于PM2.5模塊的顯示
- #include <msp_RfValve_golbal.h>
- //*****************************************************************************
- //
- //! Perform System clock initialize.
- //! ACLK = XT1CLK = 32.738kHz MCLK = SMCLK = default ~ 1.04MHz
- //
- //! \no param
- //!
- //! \return None.
- //
- task_t task[TASKS_MAX] = {
- [TASK_BASE] = {1, 0, 0, 0, 500, task_baserun}, // 基礎(chǔ)任務(wù)
- [TASK_HMI] = {0, 0, 0, 0, 100, task_Disp}, // 人機(jī)交互
- [TASK_AD] = {0, 0, 0, 10, 5000, task_AdInt}, // 溫度采集
- [TASK_CIRCLE_DIS] = {0, 0, 0, 0, 80, task_circle_dis}, // GPRS數(shù)據(jù)上傳
- [TASK_IOSCAN] = {0, 0, 0, 0, 20, task_ioscan},// IO掃描刷新
- [TASK_BKLED] = {0, 0, 0, 0, 20, task_bkrun},
- [TASK_FLASH] = {0, 0, 0, 10, 20, task_flash},
- // ...
- };
- tRomA_Ins RomA_Ins=
- {
- .Strs_TolTime=900,
- .PM25_SetHm=200,
- .PM25_SetMl=500,
- .Strs_AlamPer=10,
- };
- //*****************************************************************************
- void CLOCK_Config()
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
- SCFQCTL = SCFQ_4M;//121;
- FLL_CTL0 = DCOPLUS + XCAP5_5F;// (121+1) x 32768 x 2 = 7.99 Mhz
- FCTL2 = FWKEY + FSSEL_2 + FN0 + FN1 + FN4; // 選擇smclk/20 = 400kHz
- SCFI0 |= FN_2;
- do
- {
- clear();
- BKLED_ON;
- //Disp_off();
- IFG1 &= ~OFIFG; // Clear osc fault flag
- __delay_cycles(0xfff);//for (i = 0; i < 1000; i++); // Delay for osc to stabilize
-
- } while(IFG1 & OFIFG);
- }
- //*****************************************************************************
- //TA0_T0
- //*****************************************************************************
- void TA0_Config()
- {
- /*
- TACCR0=65; //1ms掃描
- TACTL |= TAIE+MC_1+TASSEL_1+TACLR; //Timer_A interrupt enable
- TACTL&= ~TAIFG;
- */
-
-
- }
- //*****************************************************************************
- //SoftRX setup
- //*****************************************************************************
- //*****************************************************************************
- //Timer1_A3 setup
- //*****************************************************************************
- //BT
- void Bt_Config()
- {
- BTCTL=BT_fCLK2_ACLK+BT_ADLY_1;
- IE2|=BTIE;
- }
-
- //*****************************************************************************
- //Power_ADInit()
- //*****************************************************************************
-
- //*****************************************************************************
- //Power_ADInit()
- //*****************************************************************************
- void Lcd_Config()
- {
- LCDACTL|=LCD4MUX+LCDFREQ_32+LCDON;
-
- P5SEL=0X0FF;
- P7SEL|=BIT6;
- P1SEL|=BIT4+BIT5; //413單片機(jī)需要設(shè)置
- LCDAPCTL0=0x7F;
- // LCDAPCTL1|=LCDS32;
- clear();
-
-
- }
-
- //*****************************************************************************
- //Port_Config()
- //*****************************************************************************
- void Port_Config()
- {
- Key_INIT();
- Led_Port_Dir|=Led_Pin;
- Relay_DIR|=RelayH_BIT+RelayL_BIT;
- BKLED_OFF;
-
- }
- //*****************************************************************************
- void SYS_INT()
- {
- CLOCK_Config();
- Port_Config();
- TA0_Config();
- USART_INT();
- Lcd_Config();
- Bt_Config();
- RX_Ready();
- // RFInit();
- Work_Timing_Flags.Tc_Work_Mode=Work_Off;
- }
- // ************************************************************************
-
-
- //=================================================================================
- void Err_Check()
- {
- Work_Timing_Flags.RS485_COMM_Time++;
- if(Work_Timing_Flags.RS485_COMM_Time>UtCOMM_ERR_Time)//
- {
- Work_Timing_Flags.RS485_COMM_Time=0;
- NFformat.Err_inf.Tc_comm=OnErr;
- USART_INT();
- }
-
- }
- // ****溫控器狀態(tài)監(jiān)測********************************************************************
- void Tc_Work_Check()
- {
- switch(Work_Timing_Flags.Tc_Work_Mode)
- {
- case(Work_Off):
- Disp_Off();
- break;
- case(Work_On_Nomal):
- Disp_On_Nomal();
- break;
- case(Work_On_Set):
- Disp_On_Set();
- break;
- }
- }
- // ************************************************************************
- void Work_Timing_Chenck()
- {
-
-
- wnl_process();
- Err_Check();
- // Ad_Int();
- // Tc_Work_Check();
-
- }
- // ************************************************************************
- void main(void)
- {
- WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer // Disable the GPIO power-on default high-impedance mode
- SYS_INT();
- _EINT();
- // WDTCTL=WDT_ARST_1000;
- while(1)
- {
- task_process();
-
- }
- }
復(fù)制代碼
|
-
-
PM25雙通訊.7z
2020-8-13 04:14 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
372.6 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5
PM2.5模塊通訊顯示
|