中断分配问题

如果我要用到几个中断,1,我要用一个定时器作计数器用,它的计器频率大概是10-300HZ(程序中要不停计数),2要用到一个AD中断,3还要一个定时器作定时用(1MS中断一次)我想问如果这3个中断都用到的话,我要怎么分配它们.对于中断现在好多凝问,比如这3个同时中断的话会不会不冲突,或者是少一次中断什么的,求高手解答.我用的是PIC单片机,它只有一个中断入口,
还有一个问题就是3个中断同时发生,如果在处理完中断1之后,后面两个中断已经结速,是不是后面的两个中断就漏掉了一次处理.....要怎么分配才合理....

不可以,一个程序里可以用到3个定时器,但不能用一个定时器去处理3个中断函数。一定要一一对应,定时器0对应中断1 定时器1对应中断3 定时器2对应中断5,52单片机有3个定时器,51有2个定时器。

利用一个定时器实现多个定时任务
单片机资源有限,当要实现多个定时任务时可以利用一个片上定时器作基准,来实现多个虚拟定时器。假设片上定时器每1ms产生一次中断,然后在中断服务程序中给虚拟定时器加1,这样就可以实现给多个虚拟定时器的定时。
定义一个类似下边的结构体:
typedef struct {
unsigned int F:1; //溢出
unsigned int R:1; //运行
unsigned int var:12; //当前值计数值,位数根据你要记的范围定
unsigned int max:12; //目标值
}_timer;

初始化计数器:
void Timer_Init(){
TMOD = 0x10; //定时器1,16位定时器
TH1 = 0xF7; //0x823=2083=1000us/(12/25Mhz)=1ms ) x0FFFF-0x0823=0xF7DC
TL1 = 0xDC;
IE1 = 1;
EA = 1;
ET1 = 1;
TR1 = 1;
}

计时器中断服务程序:
void timer1_isr() interrupt 3{

short unsigned int i;

TH1 = 0xF7; //0x823=2083=12/28*1000=1ms ) x0FFFF-0x0823=0xF7DC
TL1 = 0xDC;

for(i=0;i<2;i++)
if (time[i].R == 1 && time[i].var <= 0xFFF){
time[i].var += 1;
if( time[i].var >= time[i].max ){ time[i].F=1; }
}
//if(time[contrn].F){ outControl(3,1); }
}
使用的时候先启动虚拟定时器并设定最大值定时值,假设要让LED灯每秒钟闪烁1次,可以设置定时值为500ms:
time[disp].max = 500;
time[disp].R = 1;
然后只要判断定时器是否溢出:
if(time[disp].F){
time[disp].var = 0; //计数初值置0
time[disp].F = 0; //定时器溢出标志清0

if(PowerLED == 0){ PowerLED=1; }
else{ PowerLED=0; }追问

我是用了两个定时器和一个中断,定时器1作计数,定时器2作定时,最后还用到了一个AD中断,还有一个问题就是3个中断同时发生,如果在处理完中断1之后,后面两个中断已经结速,是不是后面的两个中断就漏掉了一次处理.....要怎么分配才合理....

温馨提示:内容为网友见解,仅供参考
无其他回答

中断分配问题
不可以,一个程序里可以用到3个定时器,但不能用一个定时器去处理3个中断函数。一定要一一对应,定时器0对应中断1 定时器1对应中断3 定时器2对应中断5,52单片机有3个定时器,51有2个定时器。利用一个定时器实现多个定时任务 单片机资源有限,当要实现多个定时任务时可以利用一个片上定时器作基准...

PnP技术是怎样实现中断的分配的?
首先,这是一个放大电路。在放大电路中,晶体管无论是PNP型(电压关系:Ve>Vb>Vc),还是NPN型(电压关系:Vc>Vb>Ve),Vb都是中间量,即基级b,再通过导通压降找到发射极e,从而得出集电极c。最后通过Vc、Vb、Ve大小关系得出三极管的类型。在PnP技术出现之前,中断和I\/O端口的分配是由人手工进行...

关于赌金分配的数学问题
回答:这是一道概率的题! 如果其中甲赢了二局,乙赢了一局时中断,甲乙按3:1分配 如果甲赢了二局,乙一局未赢,甲乙按7:1分配 甲赢了一局,乙一局未赢时,甲乙按11:5分配 把后面的情况都排一下看看甲乙赢的情况各有几个,再比一下

在现代计算机系统中,中断系统的软硬件功能是怎样分配的?为什么这样分配...
中断响应的速度要求快,所以一般用硬件实现。中断的处理过程比较多样化,有的可能比较复杂,所以一般用软件来实现,但可以增加某些硬件支持。在中断响应过程中,中断现场的保存和恢复用硬件实现(只保存最重要、最基本通用的硬件状态),以保证有较快的中断响应速度。另一部分现场,需要根据中断处理要求保存的...

比赛中断总进球奖金怎么算
比赛中断总进球奖金怎么算 在足球比赛中,如果比赛因故中断,例如天气原因、球场设施问题或其他紧急情况,那么总进球奖金的分配通常会有特定的规则。1. **预先设定的规则**:大多数足球比赛在开始前都会有一个或是由主办方制定的规则,这些规则会明确如果比赛中断,已经完成的比赛时间内的进球如何计算,以及...

什么是中断优先级?中断优先级的处理原则是什么?
中断优先级是指在多个中断同时出现的情况下,系统为每个中断分配的优先级。中断优先级越高,表示该中断对系统的影响越重要。中断优先级的处理原则是“高优先级中断可以打断低优先级中断,但低优先级中断不能打断高优先级中断”。如果当前正在处理一个低优先级的中断时,如果出现了一个高优先级的中断,那么...

台式一体机wifi中断没有分配网络地址
在控制面板中的设备管理器,网络适配器中找到你网卡,先禁用,然后再启用,重启路由器,右键点击我的电脑(这台电脑),选择‘管理’,在‘服务与应用程序’中,选中服务,在右边的窗口中找到DHCP.client 和WLAN AutoConfig 服务,如果服务没有启动,分别右键点击服务名称,选择‘启动 ...

我有一个GATE的键盘,可是一用这个键盘就没声音?USB接口的
解决问题 第二步 如果上面一步还是不能解决问题 现在多半是中断冲突了 那我们只能手动调 整来解决中断冲突 在系统=>设备管理器=>属性中我们可以看到系统资源分配的情况 通过 查看此项就可以从中了解到哪些系统资源被占用 哪些系统资源还没有用 用户做相应的调 整即可 三 如何防止中断冲突 要防止中断...

中断的优先级原则
2. 中断优先级的概念和必要性 在实际系统中,有时会出现多个中断同时发生的情况。这时,如果没有优先级规则,系统可能会无所适从,不知道先处理哪个中断。因此,为了解决这个问题,系统设计了中断优先级原则,给不同的中断分配不同的优先级。优先级高的中断会被优先处理,而优先级低的中断则会等待高...

pb1同一组中断怎么分
pb1同一组中断这样分:1、pb1不同端口、同一pin口,共用一个中断线2、另外外部中断分配给GPIO_EVEN和GPIO_ODD两个源来处理。

相似回答
大家正在搜