無功補償控制器程序:
源碼預覽:
- /***********************************************************************
- * 文 件 名 :main.c
- * 描 述 :智能電容控制器
- *
- * 程序版本: V1.0
- * 日 期: 2016-11-18
- *
- * IAR開發環境 版本 V2.20.1
- * ST庫函數 版本 V2.2.0
- ***********************************************************************/
- #include "pbdata.h"//引入自定義公共頭文件
- void BSP_Configuration(void);//硬件初始化函數聲明
- /***********************************************************************
- * 函 數 名: main
- * 功能說明: c程序入口
- * 形 參:無
- * 返 回 值: 錯誤代碼(無需處理)
- ***********************************************************************/
- int main(void)
- {
- BSP_Configuration(); // 硬件驅動初始化函數
- W25QXX_Demo();
- RN7302_Init();
- while(1) // 主程序循環,反復執行循環體里的語句
- {
- KeyDispose();
- PCF8563_Demo();
- TempSamplingDemo3();
- UART3_Send_Str();
- RN7302RD(bank0,RN7302_UA,4);
- // delay_ms(500);
- }
- }
- /***********************************************************************
- * 函 數 名: BSP_Configuration
- * 功能說明: 初始化硬件設備。只需要調用一次。該函數配置CPU寄存器和外設的
- 寄存器并初始化一些全局變量。
- * 形 參:無
- * 返 回 值: 無
- ***********************************************************************/
- void BSP_Configuration(void)
- {
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//時鐘速度為內部16M,1分頻,
-
- I2C_Configuration();
- TempSamplingConfiguration();
- lcd_config();
- FLASH_Write();
- Tim3_Init(); // 調用TIM3初始化程序
- Tim4_Init();
- Tim3_Lcd();
- clear_screen();
- display_zhiming();
- delay_ms(1000);
- clear_screen();
- W25QXX_GPIO();
- RN7302_GPIO();
- UART3_Congfiguration();
- rim(); // 打開總中斷
- }
- /*斷言函數:它的作用是在編程的過程中為程序提供參數檢查*/
- #ifdef USE_FULL_ASSERT
- void assert_failed(u8* file,u32 line)
- {
- while(1)
- {
- }
- }
- #endif
復制代碼- #include "pbdata.h" //引入自定義公共頭文件
- /*********************************************************************************
- * 函 數 名: delay_us
- * 功能說明: 微秒延時程序,注意此函數的運行環境為(16M時鐘速度)
- * 形 參:nCount要延時的微秒數,輸入nCount=1微妙
- * 返 回 值: 無
- *********************************************************************************/
- void delay_us(u16 nCount) //16M 晶振時 延時 1個微妙
- {
- nCount*=3;//等同于 nCount=nCount*3 相當于把nCount變量擴大3倍
- while(--nCount);//nCount變量數值先減一,再判斷nCount的數值是否大于0,大于0循環減一,等于0退出循環。
- }
- /*********************************************************************************
- * 函 數 名: delay_ms
- * 功能說明: 毫秒延時程序,注意此函數的運行環境為(16M時鐘速度)
- * 形 參:nCount要延時的毫秒數,輸入nCount=1毫秒
- * 返 回 值: 無
- *********************************************************************************/
- void delay_ms(u16 nCount) //16M 晶振時 延時 1個毫秒
- {
- while(nCount--)//先判斷while()循環體里的nCount數值是否大于0,大于0循環,減一執行循環體,等于0退出循環。
- {
- delay_us(1000);//調用微妙延時函數,輸入1000等譯演示1毫秒。
- }
- }
- /************************************************************************************************
- * 函 數 名: Get_decimal
- * 功能說明: 獲得數值小數部分
- * 形 參:dt輸入數據 deci小數位數,最多保留4位小數
- * 返 回 值: 放大后的小數部分
- *************************************************************************************************/
- u16 Get_decimal(double dt,u8 deci) //獲得數值小數部分double
- {
- long x1=0;
- u16 x2=0,x3=0;
-
- if(deci>4) deci=4;
- if(deci<1) deci=1;
- x3=(u16)pow(10, deci);
- x1=(long)(dt*x3);
- x2=(u16)(x1%x3);
- return x2;
- }
- /************************************************************************************************
- * 函 數 名: FLASH_Write
- * 功能說明: 內部EEPROM的讀寫
- * 形 參:dt輸入數據 deci小數位數,最多保留4位小數
- * 返 回 值: 放大后的小數部分
- *************************************************************************************************/
- void FLASH_Write(void)
- {
- u16 val=0;
- FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
- FLASH_Unlock(FLASH_MEMTYPE_DATA);
- FLASH_ProgramByte(CTL,0);
- FLASH_ProgramByte(CTH,0);
- val=((FLASH_ReadByte(CTH))<<8)|(FLASH_ReadByte(CTL));
- if(!val)
- {
- FLASH_ProgramByte(ZERO,0);
- FLASH_ProgramByte(CTL,100);
- FLASH_ProgramByte(GYH,0);
- FLASH_ProgramByte(GYL,250);
- FLASH_ProgramByte(QYH,0);
- FLASH_ProgramByte(QYL,175);
- FLASH_ProgramByte(GWZ,75);
- FLASH_ProgramByte(TMX,99);
- FLASH_ProgramByte(QMX,93);
- FLASH_ProgramByte(TTS,15);
- FLASH_ProgramByte(QTS,15);
- FLASH_ProgramByte(VHR,1);
- FLASH_ProgramByte(IHR,3);
- FLASH_ProgramByte(SL,0);
- FLASH_ProgramByte(SL+1,0);
- FLASH_ProgramByte(SL+2,0);
- FLASH_ProgramByte(SK,62);
- FLASH_ProgramByte(SK+1,86);
- FLASH_ProgramByte(SK+2,01);
- }
- FLASH_Lock(FLASH_MEMTYPE_PROG);
- // val=FLASH_ReadByte(add_byte);
- // return
- }
- //===============================================================================================//
復制代碼
0.png (66.04 KB, 下載次數: 128)
下載附件
2017-4-24 15:59 上傳
iar源碼下載(注意這個不是Keil工程,這個是iar寫的,如果沒有安裝iar的就不要下載了):
硬件電路資料:無(未完成)
iar工程源碼:
iar工程 無功補償控制器源程序.7z
(1.08 MB, 下載次數: 169)
2023-5-10 18:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|