你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2573|回复: 1

ucos移植到STM32 外中断开启后很快进硬件中断【悬赏问答】

[复制链接]

1

主题

6

回帖

0

蝴蝶豆

新手上路

最后登录
2018-12-18
发表于 2012-8-26 21:46:58 | 显示全部楼层 |阅读模式
我把ucos的OS_TICKS_PER_SEC 设为1000  就是1秒1000个节拍..
我在用超声波模块的时候,开启一个外中断  程序运行一小时间就进入了硬件中断.我在ucos上是有跑其它任务的,任务还是比较多的.
但是只要关了这个中断(外中断)  ucos就能正常跑了.
这东西折腾我好几天了,我都快崩溃了.有没谁能帮忙解答下不?
以下是我的程序:
1,中断
void EXTI1_IRQHandler(void)
{       
        OS_CPU_SR  cpu_sr; 
        OS_ENTER_CRITICAL(); 
        OSIntNesting++;
        OS_EXIT_CRITICAL();
 
        if(EXTI_GetITStatus(EXTI_Line1) != RESET)
        {                 //有检测到信号         但是不是反射回来的信号还不能确定, 一般Time大于20应该是接收到信号                 
                EXTI_Cmd(DISABLE);
                CSB_Time=TIM_GetCounter(TIM5);                                        
                OS_EXIT_CRITICAL();                          
        } 
        OSIntExit();         
}
 
中断的配置:
 
void CSB_NVIC(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
#ifdef VECT_TAB_SRAM
  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif 
 
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =1;       
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;                
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);       
}
void CSB_EXTI(void)
{
        EXTI_InitTypeDef EXTI_InitStructure;
        EXTI_InitStructure.EXTI_Line=EXTI_Line1; 
        EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd=ENABLE;//先关闭外中断,等发送完声波再延迟一小时间再开启
        EXTI_Init(&EXTI_InitStructure);
}
 
 
 
<
回复

使用道具 举报

3

主题

16

回帖

0

蝴蝶豆

初级会员

最后登录
2020-10-20
发表于 2012-8-27 09:44:42 | 显示全部楼层

RE:ucos移植到STM32 外中断开启后很快进硬件中断

这个硬中断不能开启太早,要在ucos 跑起来以后,另外,ucos时钟节拍最好再慢点,---100
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版