共2条
1/1 1 跳转至页
zlg,LPC2210,uc,os 请教zlg:LPC2210的uc/os操作系统中断问题
问
我用LPC2210板在非操作系统下做了一个简单的A/D采样电压的任务,其中采样结果用中断读取的,很正常.但是当用UC/OSII时,在中断程序中老是跳到“取数据中止
DataAbort
B DataAbort”
我所做的操作有:
在irq.s中添加:ADC_Handler HANDLER ADC_Exception
在target.c添加:
void VICInit(void)
{
extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
extern void ADC_Handler(void);
VICIntEnClr = 0xffffffff;
VICDefVectAddr = (uint32)IRQ_Handler;
VICVectAddr0 = (uint32)Timer0_Handler;
VICVectCntl0 = (0x20 | 0x04);
VICVectAddr8 = (uint32)ADC_Handler;
VICVectCntl8 = (0x20 | 0x12);
VICIntEnable = ((1 << 4)|(1<<18));
}
这是我的中断服务程序:发一个信号量给一个任务.
void ADC_Exception(void)
{
OS_ENTER_CRITICAL();
OSSemPost(Sem_Addr);
VICVectAddr = 0; // 通知中断控制器中断结束
OS_EXIT_CRITICAL();
}
请问我是不是漏了什么地方啊?
在操作系统下使用中断需要注意什么?
恳请不吝赐教.
答 1: 先看看你的uc\os能不能正常阿 答 2: uc/os完全正常uc/os完全正常 :我用别的工程实验都正常啊 答 3: 有可能是中断嵌套的问题!!!
DataAbort
B DataAbort”
我所做的操作有:
在irq.s中添加:ADC_Handler HANDLER ADC_Exception
在target.c添加:
void VICInit(void)
{
extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
extern void ADC_Handler(void);
VICIntEnClr = 0xffffffff;
VICDefVectAddr = (uint32)IRQ_Handler;
VICVectAddr0 = (uint32)Timer0_Handler;
VICVectCntl0 = (0x20 | 0x04);
VICVectAddr8 = (uint32)ADC_Handler;
VICVectCntl8 = (0x20 | 0x12);
VICIntEnable = ((1 << 4)|(1<<18));
}
这是我的中断服务程序:发一个信号量给一个任务.
void ADC_Exception(void)
{
OS_ENTER_CRITICAL();
OSSemPost(Sem_Addr);
VICVectAddr = 0; // 通知中断控制器中断结束
OS_EXIT_CRITICAL();
}
请问我是不是漏了什么地方啊?
在操作系统下使用中断需要注意什么?
恳请不吝赐教.
答 1: 先看看你的uc\os能不能正常阿 答 2: uc/os完全正常uc/os完全正常 :我用别的工程实验都正常啊 答 3: 有可能是中断嵌套的问题!!!
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
| 三分钟快速上手搭建nRF Connect SDK开发环境(VSCode)被打赏¥25元 | |
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
我要赚赏金
