智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7052|回复: 13
打印 上一主题 下一主题

为什么PIT中断跳不出去?

  [复制链接]

4

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
威望
181
贡献
25
兑换币
0
注册时间
2010-9-4
在线时间
21 小时
跳转到指定楼层
1#
发表于 2011-7-3 14:33:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void pll_init()
{
  CLKSEL_PLLSEL=0; //选择外部晶振oscclk=6MZ
  PLLCTL_PLLON=0;
  SYNR=9;                   //总线时钟=40/2=20MHz
  REFDV=2;
  PLLCTL_PLLON=1;
  _asm(nop);
  _asm(nop);
  while(CRGFLG_LOCK==0);//锁相环锁定
  CLKSEL_PLLSEL=1;//选定外部时钟
}   
void pit_int()
{
  PITCFLMT_PITE=0;//pit使能
  PITCE_PCE0=1;//通道0使能
  PITMTLD0=200-1;//设置八位计数器初值 20分频,0.1M
  PITMUX=0x00;
  PITLD0=10000-1;//10000*0.01MS=10S
  PITINTE_PINTE0=1;//开通定时中断溢出
  PITCFLMT_PITE=1;
}
void main(void)
{
  DisableInterrupts;
  pll_init();
  io_int();
  pit_int();
  
  EnableInterrupts;
  for(;;) {}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED      
interrupt 66 void pit0(void)
{
  PITTF_PTF0=1; //清除标志位
  PORTB=~PORTB;  
}
#pragma CODE_SEG DEFAULT

求大家给看看为什么pit中断跳不出去,一直在中断程序里反复进行。单片机上的LED根本就没有闪过。

4

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
威望
181
贡献
25
兑换币
0
注册时间
2010-9-4
在线时间
21 小时
2#
 楼主| 发表于 2011-7-3 18:21:06 | 只看该作者
有时候程序实现不了,干脆新建一个工程,说不定就可以了呢。现在中断可以跳出去了。但是仍然很迷惑。中断时间太短的话基本上整个程序都在中断函数里运行。望好心的大神能够给点建议。PIT中断应该用在什么地方,怎么用才能发挥出他的优点呢?
回复 支持 反对

使用道具 举报

22

主题

351

帖子

2

精华

跨届大侠

physicsboy.taobao.com

Rank: 10Rank: 10Rank: 10

积分
9030

论坛元老奖章资源大师奖章活跃会员奖章优秀会员奖章热心会员奖章论坛骨干奖章

QQ
威望
2985
贡献
5441
兑换币
12
注册时间
2010-8-17
在线时间
302 小时
3#
发表于 2011-7-3 19:04:37 | 只看该作者
本帖最后由 physics_boy 于 2011-7-3 19:06 编辑

//PITTF_PTF0=1;
这一句无法清除中断,请参考飞思卡尔手册说明文档的注意事项,请使用如下清除中断语句。
        asm(MOVB #$01,PITTF);

你懂的,只能使用MOVB而不能使用BSET(上一句会汇编成BSET)

怎么使用?根据需要使用,比如数码管轮流显示的话,中断速率1kHz就差不多够用了,100Hz可以用于测量码盘的脉冲个数。自己看着办吧~
回复 支持 反对

使用道具 举报

10

主题

416

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3914

特殊贡献奖章优秀会员奖章在线王奖章活跃会员奖章

QQ
威望
1338
贡献
1476
兑换币
141
注册时间
2010-11-18
在线时间
550 小时
4#
发表于 2011-7-3 23:33:25 | 只看该作者
回复 3# physics_boy


    为什么我的一切正常?数据手册说写1清标志位,单片机位寻址的写1和置位应该是一样的操作吧?
回复 支持 反对

使用道具 举报

22

主题

351

帖子

2

精华

跨届大侠

physicsboy.taobao.com

Rank: 10Rank: 10Rank: 10

积分
9030

论坛元老奖章资源大师奖章活跃会员奖章优秀会员奖章热心会员奖章论坛骨干奖章

QQ
威望
2985
贡献
5441
兑换币
12
注册时间
2010-8-17
在线时间
302 小时
5#
发表于 2011-7-4 12:53:18 | 只看该作者
回复  physics_boy


    为什么我的一切正常?数据手册说写1清标志位,单片机位寻址的写1和置位应该是 ...
doramin 发表于 2011-7-3 23:33


跟编译器版本不同可能
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
威望
280
贡献
64
兑换币
0
注册时间
2011-9-28
在线时间
40 小时
6#
发表于 2011-10-31 19:53:59 | 只看该作者
求教,我的程序和楼主的基本一样。可是也跳不出中断。为什么呢?
回复 支持 反对

使用道具 举报

3

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
威望
439
贡献
438
兑换币
39
注册时间
2012-2-8
在线时间
151 小时
毕业学校
北方民族大学
7#
发表于 2012-6-2 16:23:17 | 只看该作者
回复 支持 反对

使用道具 举报

5

主题

51

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1191
威望
581
贡献
332
兑换币
113
注册时间
2012-3-13
在线时间
139 小时
8#
发表于 2012-7-30 06:53:13 | 只看该作者
如果向标志位写入1和标志位置1同时发生在同一个总线周期,标志位保持置1的状态,如果PIT模块禁能或相应的定时器通道禁能,则这一位请0。
回复 支持 反对

使用道具 举报

11

主题

159

帖子

0

精华

高级会员

Rank: 4

积分
960

优秀会员奖章活跃会员奖章

威望
569
贡献
217
兑换币
231
注册时间
2012-9-25
在线时间
87 小时
9#
发表于 2012-12-2 11:56:48 | 只看该作者
学习了~
回复 支持 反对

使用道具 举报

30

主题

585

帖子

1

精华

等待验证会员

积分
-8838
威望
-9931
贡献
77
兑换币
46
注册时间
2012-6-23
在线时间
508 小时
10#
发表于 2012-12-2 14:15:41 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 19:01 , Processed in 0.443531 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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