interrupt_manage.c
来自「CCS开发的基于DSP的数据采集和显示程序」· C语言 代码 · 共 61 行
C
61 行
#include "interrupt_manage.h"
uint32 IRQ_eventTable_user[32+1];
uint32 IRQ_intTable_user[16];
void setMux(int32 intNum, int32 eventId)
{
uint32 shift, mask, addr_MUX, v;
if((intNum >= 4) && (intNum <= 9))
{
addr_MUX = 0x019C0004; // MUXL
shift = 5*(intNum-4)+(intNum>6 ? 1: 0);
}
else if((intNum >= 10) && (intNum <= 15))
{
addr_MUX = 0x019C0000; // MUXH
shift = 5*(intNum-10)+(intNum>12 ? 1: 0);
}
mask = 31<<shift;
v = *(volatile uint32*)addr_MUX;
v = v & ~mask;
v = v | ((eventId<<shift)&mask);
*(volatile uint32*)addr_MUX = v;
}
void IRQ_map_user(uint32 eventId, uint32 intNum)
{
IRQ_intTable_user[intNum] = eventId;
IRQ_eventTable_user[eventId] = 1<<intNum;
setMux(intNum, eventId);
}
void IRQ_enable_user(uint32 eventId)
{
IER |= IRQ_eventTable_user[eventId];
}
void IRQ_clear_user(uint32 eventId)
{
ICR = IRQ_eventTable_user[eventId];
}
void IRQ_nmiEnable_user()
{
IER |= 0x00000002;
}
void IRQ_globalEnable_user()
{
CSR |= 0x00000001;
}
uint32 IRQ_globalDisable_user()
{
uint32 gie = CSR;
CSR &= 0xFFFFFFFE;
return gie;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?