//定時器2配置,1毫秒產生一次中斷,用于系統計時
void TIM2_Init(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);//將主時鐘信號送給定時器4(L系列單片機必需)
TIM2_TimeBaseInit(TIM2_Prescaler_16,TIM2_CounterMode_Up,0x7D); //定時器4,將主時鐘16分頻.自動裝載FA=125
TIM2_SetCounter(0xFA); //設定計數值FA=125
TIM2_ITConfig(TIM2_IT_Update,ENABLE);
TIM2_ARRPreloadConfig(ENABLE);
TIM2_Cmd(ENABLE); //計數器使能,開始計數
}
/*
****************************************************************************
* INTERRUPT_HANDLER(TIM2_UPD_OVF_TRG_BRK_IRQHandler, 19)
* 功能描述: TIM2中斷處理函數,產生1毫秒中斷,用于計時
* 返 回 值:無
****************************************************************************
*/
//中斷處理函數,在中斷中累加數據
INTERRUPT_HANDLER(TIM2_UPD_OVF_TRG_BRK_IRQHandler, 19)//TIM2中斷處理函數,產生1毫秒中斷,用于計時
{
TIM2_ClearFlag(TIM2_FLAG_Update); //清中斷標志位
ms2_cnt++;
ms10_cnt++;
ms100_cnt++;
UsartTime++;
if( Second_cnt >= 999 )
{
Second_cnt = 0;
SecondFlag = 1;
}
else
{
Second_cnt++;
}
}
/*
****************************************************************************
* void Init(void)
* 功能描述: 初始化各個功能模塊狀態
* 返 回 值:無
****************************************************************************
*/
void Init(void)
{
asm("sim"); //關全局中斷
CLK_Init( ); //時鐘初始化
SPI_Initial( ); //SPI初始化sht10
GPIO_Initial( );//端口初始化
USART_Initial( );//用于485通訊
IIC_Init(); //用于傳感器通訊
Init_BH1750( ); //初始化BH1750
TIM2_Init( ); //時鐘2用于1毫秒計時
FLASH_DeInit(); //eeprom初始化
InitEeprom( );
InitAWU( ); //使能自動喚醒功能
asm("rim"); //開全局中斷
}
/*
****************************************************************************
* main()
* 功能描述: 主函數
* 返 回 值:無
****************************************************************************
*/
#define CC1101Tx 0 //0:接收模式,1:發送模式
void main (void)
{
unsigned char i=0;
unsigned char timecnt=0;
Init();
//485設為接收模式//
//M485_Para.ReceivePoint = 0;
//M485_Para.ReadPoint = 0;
//s_connectionreset();
//Single_Write_BH1750(0x01); //傳感器上電power on
//Single_Write_BH1750(0x10); //設定傳感器工作模式 H- resolution mode
delay_ms(180); //延時180ms,用于等待傳感器初始化
//GS_CC1101SetTRMode( RX_MODE );
while(1)
{
if( ms2_cnt > 2 )
{
ms2_cnt = 0;
//M485DataPro();//485數據處理
}
if( ms10_cnt >=10 )
{
ms10_cnt = 0;
ms10_Work();//10毫秒執行的任務
}
if( ms100_cnt >= 100 )
{
ms100_cnt = 0;
ms100_Work();//100毫秒執行的任務
}
if( SecondFlag == 1 )
{
timecnt++;
SecondFlag = 0;
Second_Work();//每秒執行的任務
#if CC1101Tx //數據發送
CC1101SendData(0x03,0x00,0x0E);
//GS_CC1101SendPacket( M485_Send_Buffer,9, ADDRESS_CHECK );
#else //數據接收
i = CC1101DataPro();
if( i== 0 )
GPIO_ToggleBits( GPIOD, GPIO_Pin_0); //反轉燈的狀態
for(i=0;i<27;i++)
{
putchar(M485_Para.Uart_Buffer[i]);
}
if(timecnt > 20)
{
timecnt = 0;
halt(); //進入待機模式
}
#endif
}
}
}
說明:TIM2用于產生1毫秒中斷,作為系統工作節拍。main函數到10ms,100ms ,1s執行不同的任務
上一篇:STM8 入門學習與實驗(一)GPIO與UART
下一篇:stm8s003 PD4引腳多個功能應用指南
推薦閱讀
史海拾趣
另一家新興顯示技術公司,專注于透明顯示技術的研發。他們通過優化顯示材料的透光性和顯示效果,成功研發出了高透明度的顯示屏。這種顯示屏可以像玻璃一樣透明,同時又能顯示圖像和文字。這一技術的創新,為商業廣告、智能家居、公共交通等領域帶來了全新的視覺體驗。
隨著金融危機的持續影響,Daewoo汽車公司最終未能幸免于難。2000年,大宇汽車公司宣告破產。然而,就在此時,美國通用汽車公司看到了Daewoo汽車公司的潛力和價值,決定對其進行收購。這一收購不僅為Daewoo汽車公司帶來了新的生機,也使其能夠借助通用汽車的技術和管理經驗實現轉型和升級。
為了進一步擴大市場份額,Catalyst公司積極實施國際化戰略。公司通過與國外知名企業的合作與交流,引進先進的技術和管理經驗,不斷提升自身的競爭力。同時,Catalyst還積極參加國際電子展會和論壇,展示公司的最新產品和技術成果,吸引了眾多國際客戶的關注。通過國際化戰略的拓展,Catalyst成功打開了海外市場的大門,為公司的長遠發展奠定了堅實的基礎。
為了進一步擴大市場份額,Catalyst公司積極實施國際化戰略。公司通過與國外知名企業的合作與交流,引進先進的技術和管理經驗,不斷提升自身的競爭力。同時,Catalyst還積極參加國際電子展會和論壇,展示公司的最新產品和技術成果,吸引了眾多國際客戶的關注。通過國際化戰略的拓展,Catalyst成功打開了海外市場的大門,為公司的長遠發展奠定了堅實的基礎。
品質是Excelsys公司的生命線。公司始終堅持嚴格的品質控制標準,從原材料采購到生產制造的每一個環節,都經過嚴格的質量檢測。這種對品質的執著追求,讓Excelsys的產品在市場上贏得了良好的口碑。同時,公司還建立了完善的售后服務體系,為客戶提供及時、專業的技術支持,進一步提升了品牌的信譽度。
近年來,隨著物聯網技術的快速發展,Echelon也積極布局該領域。公司在嵌入式系統部門收購了Echelon Corporation后,成立了新的物聯網業務部門,并推出了SmartServer物聯網平臺。該平臺采用了開放、可擴展的體系結構,可以連接、監控商業和工業物聯網部署設備,并提供智能化和自動化的決策支持。SmartServer平臺的推出,使得Echelon在物聯網領域取得了重要突破。
高畫質產品獨領風騷 2008年絕對是各項安防產品功能大躍升的新時代!隨著安防系統性能不斷提升,以及滿足使用者對于高畫質的需求,有關高解析的各項技術不斷推陳出新。在今年展會上從前端的鏡頭、攝像機,到后端的監視器,都有不少廠 ...… 查看全部問答∨ |
嵌入式Linux 從入門到核心開發 【4天免費學習實踐】 嵌入式開發技術普及大行動!嵌入式Linux免費普及班(北京)8月27日至8月30日! 活動目的 嵌入式是軟件開發的高端技術,也是正在快速升溫的開 ...… 查看全部問答∨ |
#include <setjmp.h> #include <stdio.h> #include <stdlib.h> static jmp_buf buf; main() { volatile int b; b=3; if(setjmp(buf)!=0 ...… 查看全部問答∨ |
|
導師讓做dsp控制的開關電源,可是對dsp一點知識都沒有,經過別人推薦買了一套《手把手教你學dsp》的書和開發板,可是跟著視頻學了一陣后還是不知道在干什么~~~請假大神們改怎么辦?… 查看全部問答∨ |