新唐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++;
}