智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 18496|回复: 46
打印 上一主题 下一主题

求一完整外部中断程序!!!!!!!!!!!!!!!!!

  [复制链接]

3

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
威望
102
贡献
128
兑换币
104
注册时间
2008-1-20
在线时间
17 小时
跳转到指定楼层
1#
发表于 2008-4-6 22:39:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求一完整外部中断程序!!!!!!!!!!!!!!!!!

1

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
535
威望
291
贡献
200
兑换币
14
注册时间
2009-3-7
在线时间
22 小时
2#
发表于 2009-7-30 18:11:19 | 只看该作者
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
/* 使用PWM功能产生1K频率的方波,触发PJ0*/

#define uint unsigned int

uint   Input_Num;

/*时钟初始化*/
void PLL_Init(void)   //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{                     //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
  REFDV=1;            //总线时钟=48/2=24MHz
  SYNR=2;
  while(!(CRGFLG&0x08));
  CLKSEL=0x80;
}


/*PWM初始化程序*/
void PWM_Init(void)  
{
  PWME_PWME3=0x00;  // PWW is disabled               禁止            
  PWMPRCLK=0x33;    // 0b0011 0011 A=B=24M/8=3M      时钟预分频寄存器设置
  PWMSCLA=150;      // SA=A/2/150=10k                时钟设置
  PWMSCLB=150;      // SB=B/2/15 =10k               时钟设置
  PWMCTL=0x00;      // no concatenation              控制寄存器设置                                
  PWMCLK_PCLK3=1;   // PWM3-----SB                   时钟源的选择
  PWMPOL_PPOL3=1;   // Duty=High Time                极性设置
  PWMCAE_CAE3=0;    // left-aligned                  对齐方式设置
  PWMPER3=250;      // Frequency=SB/250=40           周期寄存器设置
  PWMDTY3=125;      // Duty cycle = 50%              占空比寄存器设置
  PWME_PWME3=1;     // enable                        使能
}

void main(void)
{
  PPSJ_PPSJ0=0;       //PJ0口触发方式   上升沿触发
  PIEJ_PIEJ0=1;        //PJ0中断使能
  PLL_Init();
  PWM_Init();
  DDRB=0XFF;
  PORTB=0X00;
  EnableInterrupts;
  for(;;)
  {

  }
}


#pragma CODE_SEG NON_BANKED      
void interrupt 24 zhongduan(void)     //H口是通用的  中断向量是25(P口同样)
{
  PIFJ_PIFJ0=1;         //清除中断标志位
  PORTB=0XFF;
  Input_Num++;
  PORTB=Input_Num;
  if(Input_Num>=255)
  {
    Input_Num=0;
  }     
}
/*调试通过的外部中断触发*/
回复 支持 反对

使用道具 举报

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
3#
发表于 2009-8-3 18:13:18 | 只看该作者
IRQ中断级别较高,可以做优先中断的控制.当然也可以在HPRIO里修改优先级.IRQ用时有几点特别: 1、只能下降沿或低电平触发中断2、无需清除标志位,(本身也没有标志位)3、外部必须做好滤波。 详情请见程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
威望
187
贡献
23
兑换币
0
注册时间
2009-8-7
在线时间
11 小时
4#
发表于 2009-8-12 17:36:24 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

29

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1144
威望
687
贡献
343
兑换币
322
注册时间
2009-9-23
在线时间
57 小时
5#
发表于 2009-9-23 18:05:30 | 只看该作者
楼主说的,正是我也想知道的。呵呵,交流中
回复 支持 反对

使用道具 举报

3

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
威望
216
贡献
39
兑换币
0
注册时间
2009-9-23
在线时间
40 小时
6#
发表于 2009-9-26 09:41:45 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
威望
191
贡献
26
兑换币
4
注册时间
2009-9-24
在线时间
4 小时
7#
发表于 2009-10-12 15:44:39 | 只看该作者
多谢了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
威望
187
贡献
32
兑换币
10
注册时间
2009-10-15
在线时间
2 小时
8#
发表于 2009-10-15 14:28:00 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
威望
323
贡献
58
兑换币
30
注册时间
2009-12-17
在线时间
13 小时
9#
发表于 2010-2-3 16:18:59 | 只看该作者
谢谢了
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
10#
发表于 2010-2-3 22:08:15 | 只看该作者
回复 3# whut_wj
这种想不劳而获的帖子太多了,论坛代码模块明明就有例程,可是大家就是不想去看,想要现成的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 15:07 , Processed in 0.076818 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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