在线时间18 小时
UID3264595
ST金币0
蝴蝶豆0
注册时间2016-4-22
中级会员
- 最后登录
- 2017-12-23
|
楼主 |
发表于 2016-5-7 15:49:38
|
显示全部楼层
a0a.1 32b0c
是直接操作的,结果实际测得周期是205.6mS 和程序里配置的相差很大,
====main.c==============
//时钟初始化
//=================================
void CLK_init(void)
{
CLK_ECKR=0x00; //关外部时钟
CLK_ICKR=0x01; //内部时钟开启
CLK_CMSR=0xe1; //HSI为主时钟源
CLK_CKDIVR=0x18; //16MHZ/8分频=2MHZ
// CLK_PCKENR1=0XFF;
// CLK_PCKENR2=0XFF;
// CLK_SWR=0xe1;
}
void TIM4_init(void)
{
TIM2_EGR =0X01; //允许更新事件
TIM2_PSCR = 0X01; //2MHZ/2=1MHZ 1/1MHZ=1uS
TIM2_ARRH = 0X00;
TIM2_ARRL = 0X32; //0X32=50 50*1uS=50uS
TIM2_CNTRH = 0X00;
TIM2_CNTRL = 0X00; //初值
TIM2_IER |= 0X01;
TIM2_CR1 |= 0X81; //使能
/*
TIM4_CNTR =0; //计数器值
TIM4_PSCR =0x07; //预分频器 2MHZ/128分频 2MHZ/2^7=0.015625MHZ
TIM4_ARR =0XFA; //自动重装寄存器 0XFA=250 T=1/0.015625MHZ=64uS 250*64uS=1.6mS
TIM4_EGR =0X01; //计数器重新初始化并产生寄存器更新
TIM4_IER =0X01; //使能中断
TIM4_CR1 =0X81; //使能定时器
*/
// TIM4_CR1 |= 0X04;
// TIM4_IER |= 0X01;
// TIM4_PSCR = 0X06;
// TIM4_ARR = 0XFA;
// TIM4_CNTR = 0XFA;
// TIM4_CR1 |= 0X01;
// TIM4_EGR |= 0X01;
}
//mian file
//====================================
main()
{
_asm("rim"); //开启中断
CLK_init(); //时钟初始化
GPIO_init(); //IO口初始化
TIM4_init(); //TIM4初始化
while (1);
}
//中断服务程序
@far @interrupt void TIM2(void) // TIM2_UPD_IRQHandler(void)
{
static unsigned int i=0;
i++;
if(i>=2000)
{
i=0;
PB_ODR^=0XFF;
}
TIM2_SR1 =0x00;//=0x0e;//清楚中断标志位
return;
}
|
|