初级会员
- 积分
- 53
- 金钱
- 53
- 注册时间
- 2016-7-1
- 在线时间
- 11 小时
|
10金钱
下面 是例程 请各位大侠 帮忙看看什么问题哈
unsigned int count1=0,count2=0,count7=0;
int stage=0 ;
void TIM4_Init ( void )
{
TIM4_PSCR = 0x06 ; //主时钟分频2~6 定时器时钟 125khz
TIM4_SR = 0 ; //中断标志位清零
TIM4_IER_bit.TIE = 1 ; //开定时器中断
TIM4_ARR = 125 ; //一个技术周期1ms
TIM4_CR1=0x01; //使能计数器
TIM4_CNTR = 125 ; //计数器初始值给125,目的是一开始
//计数就产生一次溢出从而产生更新
//时间来使预分频器的值启用
}
#pragma vector=TIM4_OVR_UIF_vector
__interrupt void TIM4_UPD_OVF_IRQHandler(void)
{
count1++;
TIM4_SR = 0 ; //中断标志位清零
if (count1==1000)
{
count7++;
count1 =0;
if(count7==60)
{
count2++;
count7=0;
if (count2<30) //第一阶段预充电 20A充电30分钟
{
stage=1;
}
if (30<count2<450) //第二阶段恒流充电 30A充电7小时
{
stage=2;
}
if (450<count2<570) //第三阶段恒压充电 2小时 电流逐渐下降到6A
{
stage=3;
}
if (570<count2<690) //浮充电2小时后关机
{
stage=4;
}
}
}
}
|
最佳答案
查看完整内容[请看2#楼]
问题找到了 是 进入死循环了 __IAR_UNHANDLED_EXCEPTION 请问这个情况怎么解决啊 我看网上又说 中断向量地址不对
|