專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

新唐NuMicro M051定時器1測試程序

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年09月01日   【字體:

 新唐ARM芯片NuMicro M051單片機(jī)的資料太少了,根本沒有資料可以參考,只能根據(jù)數(shù)據(jù)手冊對寄存器編程,定時器1跑了起來。經(jīng)驗(yàn)證正確0603

#include "SmartM_M0.h" 
unsigned char i;
VOID TMR1Init(VOID)
{
    PROTECT_REG
 (
     APBCLK |= 0x08;     //定時器1時鐘使能
  CLKSEL1 |= 0x4000;   //定時器1時鐘選擇外部高速晶振0X000,內(nèi)部22為0X4000
  IPRSTC2 |=  0x40;  //TIMER1先復(fù)位
  IPRSTC2 &= 0xFB;  //定時器1正常工作
  TCSR1  &= 0x18FFFF00;//先清0
  TCSR1 |= 0x6C000000; //賦值:計(jì)數(shù)開始、使能定時器中斷、周期模式、重置預(yù)分頻值、
  TCMPR1 = 12000*50;  //設(shè)置比較值 [0~16777215] 
  NVIC_ISER |= 0x0200; //TMR0_INT;
 )
}
INT32 main(VOID)
{
// unsigned char i;
  PROTECT_REG
  (
   PWRCON |= XTL12M_EN;      
   while((CLKSTATUS & XTL12M_STB) == 0);    
  
   CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; 
  
   P2_PMD=0x5555;          
   P2_DOUT = 0xff;
  )
 TMR1Init();
  while(1)
  {
  if(i>7)
  i= 0; 
  }
}
VOID TMR1_IRQHandler(VOID)
{
 TISR1 = 1;  
    P2_DOUT = ~(1UL<<i);            
 i++; 
}
關(guān)閉窗口