智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4048|回复: 11
打印 上一主题 下一主题

菜鸟求助关于ECT的中断优先级问题

[复制链接]

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
跳转到指定楼层
1#
发表于 2011-9-28 21:30:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各位大侠  下面的程序到底是怎么执行的 有中断的优先级吗?哪个优先级更高呀!
程序是这样的
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#pragma LINK_INFO DERIVATIVE "mc9s12xdg128"
int count=0;
float f;
double f1=2000000,first=0,second=0,n,N;
void main(void)
{
  DisableInterrupts;//关闭中断
  TSCR2=0x82;//定时器控制寄存器2 定时器溢出中断允许 禁止复位 计数器自由计数 4分频
  PACTL=0x20;//16位脉冲累加器A控制寄存器 脉冲累加器模式寄存器置1(PAMOD) PAEN=1时候
  //两个八位的脉冲累加寄存器组成16 PAMOD寄存器设置的是这个16累加器的工作模式
  TIOS=0xfe;//通道选择寄存器 除了0通道设置为输入捕捉 其他通道全部使能为输出比较
  TCTL4=0x01;//通道0仅在上升沿捕捉
  ICSYS=0x0a;//控制系统控制寄存器 通道不结合 BUFEN=1 输入捕捉和脉冲累加寄存器有效
  //TFMOD=1 如果是队列模式
  PBCTL_PBEN=0x00;//16位脉冲累加器B控制寄存器 16位脉冲累加寄存器禁止使用
  ICPAR=0x01;//脉冲累加器控制寄存器 只有在PBEN清零的时候
  //8位脉冲累加器PAc1和PAC2才有作用 如果PAEB被置位则脉冲累加器不起作用
  TIE=0x01;//定时器中断允许寄存器 相应位被置1则允许相应通道产生硬件中断
  //此处设置0通道为1允许硬件中断
  TSCR1=0x80;//定时器控制寄存器1 TEN=1 定时器正常工作
  EnableInterrupts;
  for(;;)
  {;}     //无限循环 停下来
}
#pragma CODE_SEG_NEAR_SEG NON_BANKED
interrupt void CH0IC(void) //检测两个高电平之间的时间 记录算出频率
{
  first=TC0H;//IC保持寄存器 这些寄存器用于为相应的捕捉寄存器
  //TC0-TC3提供锁存功能
  second=TC0;//每个通道都有一个这样的16位寄存器 这个为0通道的寄存器
  //对于 IC(输入捕捉)通道,
  //当通道的边沿探测器检测到由 EDGnA、EDGnB指定的条件时,
  //将自由定时器(说明里面存的是有效信号过来是的时间)的
  //值捕捉到寄存器 TCn,随后程序可以读取和处理
  n=count*65535+second-first;
  f=f1/n;
  N=PA0H;//脉冲累加器保持寄存器
  TFLG1=0x01;
  count=0;
}
interrupt void TOI(void)
{
  count++;
  TFLG2_TOF=1;
}
各位大侠帮帮满 刚接触单片机

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
2#
 楼主| 发表于 2011-9-28 21:30:45 | 只看该作者
大家都来看看呀
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
3#
 楼主| 发表于 2011-9-28 21:31:11 | 只看该作者
自己先顶一下  高手赶紧来啊  谢谢了啊
回复 支持 反对

使用道具 举报

26

主题

441

帖子

0

精华

知名人物

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
41695
QQ
威望
3920
贡献
37275
兑换币
290
注册时间
2011-3-16
在线时间
250 小时
4#
发表于 2011-9-28 21:48:39 | 只看该作者
这里貌似只启动了定时器通道0,不存在所谓的优先级问题吧
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
5#
 楼主| 发表于 2011-9-29 08:14:33 | 只看该作者
那怎么有两个中断呀?那怎么执行呢?望高手指点,谢谢了!
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
6#
 楼主| 发表于 2011-9-29 08:16:39 | 只看该作者
TOI和CHOIC是什么寄存器 怎么找不到呢?
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
7#
 楼主| 发表于 2011-9-29 09:48:23 | 只看该作者
刚刚搞明白了,TOI和CHOIC不是寄存器 是自己糊涂了  可是这个程序到底要怎么执行呢?还是不太明白呀!斑竹大侠来帮帮忙呀!新手不胜感激呀!
回复 支持 反对

使用道具 举报

19

主题

278

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1441
QQ
威望
866
贡献
435
兑换币
0
注册时间
2011-8-23
在线时间
70 小时
8#
发表于 2011-10-10 14:50:27 | 只看该作者
回复 支持 反对

使用道具 举报

22

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2257
QQ
威望
614
贡献
1505
兑换币
18
注册时间
2011-9-20
在线时间
69 小时
9#
发表于 2011-10-10 14:53:09 | 只看该作者
慢慢弄把】
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
10#
 楼主| 发表于 2011-10-10 21:05:26 | 只看该作者
N=PA0H;//脉冲累加器保持寄存器
  TFLG1=0x01;
怎么理解呀?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 16:51 , Processed in 0.048684 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表