智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3022|回复: 8
打印 上一主题 下一主题

关于输入捕捉IC中断问题

[复制链接]

3

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
QQ
威望
172
贡献
51
兑换币
2
注册时间
2012-4-1
在线时间
28 小时
跳转到指定楼层
1#
发表于 2012-4-8 21:19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我不清中断标志位,程序缺依旧不断进入中断,而不是一直处于中断中,本人学习MC9S12XS128两天了,崭新的新手,忘指点,下面程序(利用PP3产生占空比10%的波形,利用PT0采集方波数目,并在PA显示)
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include<MC9S12XS128.h>
unsigned char num=0;
void delay(int z)
{
  int x,y;
  for(x=z;x>0;x--)
    for(y=1000;y>0;y--);
}
void PLL_Init(void)
{
  CLKSEL=0X00; // 初始化PLL前先使用外部晶振
  PLLCTL_PLLON=1; // 开启 PLL
  SYNR =0x40 | 0x04; // pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
  REFDV=0x80 | 0x01;
  POSTDIV=0x00;
  _asm(nop); // BUS CLOCK=40M
  _asm(nop);
  while(!(CRGFLG_LOCK==1)); //等待PLL稳定
}
void PWM_Init(void)
{
    PWME_PWME3=0;
    PWMPRCLK=0X33;
    PWMSCLA=100;
    PWMSCLB=10;
    PWMCLK_PCLK3=1;
    PWMPOL_PPOL3=1;
    PWMCAE_CAE3=0;
    PWMCTL=0x00;
    PWMPER3=100;
    PWMDTY3=90;
    PWME_PWME3=1;
    DDRA|=0x40;
    PORTA&=0xbf;
}
void IC_init()
{
  TIOS_IOS0=0;
  TCTL4=0x02;
  TSCR2=0x07;
  TSCR1=0x80;
  TIE_C0I=1;
}
void PA_init()
{
  DDRA=0XFF;
  PORTA=0;
}


void main(void) {
  /* put your own code here */
  IC_init();
  PWM_Init();
  PLL_Init();
  PA_init();

EnableInterrupts;

  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
#pragma CODE_SEG NON_BANKED
void interrupt 8 time0()
{
   //TFLG1_C0F=1;                                 //  就是这句话,我加与不加都一样
   num++;
   if(num>=255)
   {  
      num=0;
   }
    PORTA=~PORTA;
    delay(200);
}

3

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
QQ
威望
172
贡献
51
兑换币
2
注册时间
2012-4-1
在线时间
28 小时
2#
 楼主| 发表于 2012-4-8 21:20:45 | 只看该作者
延时函数主要是想看到PA口的LED变化
回复 支持 反对

使用道具 举报

47

主题

788

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6116
威望
3442
贡献
1406
兑换币
1753
注册时间
2012-2-3
在线时间
634 小时
毕业学校
浙江工业大学
3#
发表于 2012-4-9 18:12:14 | 只看该作者
同问!!。。
回复 支持 反对

使用道具 举报

7

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
威望
327
贡献
89
兑换币
2
注册时间
2012-4-4
在线时间
32 小时
毕业学校
山东大学威海分校
4#
发表于 2012-5-12 19:16:21 | 只看该作者
你的程序是总进入中断,我的程序是进不了中断!
回复 支持 反对

使用道具 举报

7

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
威望
327
贡献
89
兑换币
2
注册时间
2012-4-4
在线时间
32 小时
毕业学校
山东大学威海分校
5#
发表于 2012-5-12 19:21:32 | 只看该作者
我是进不了中断啊
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
威望
225
贡献
55
兑换币
0
注册时间
2010-12-14
在线时间
11 小时
6#
发表于 2012-7-28 17:22:45 | 只看该作者
同问 不要那句的话 函数以很短的时间不停的进入中断,不明白为什么?
回复 支持 反对

使用道具 举报

1

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
418
威望
259
贡献
109
兑换币
39
注册时间
2012-3-19
在线时间
25 小时
7#
发表于 2012-10-4 21:19:52 | 只看该作者
中断函数前面加#pragma CODE_SEG __NEAR_SEG NON_BANKED  函数后面加#pragma CODE_SEG __NEAR_SEG NON_BANKED  试下
回复 支持 反对

使用道具 举报

1

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
418
威望
259
贡献
109
兑换币
39
注册时间
2012-3-19
在线时间
25 小时
8#
发表于 2012-10-4 21:20:59 | 只看该作者
抱歉,中断函数后面加的是#pragma CODE_SEG DEFAULT 打错了
回复 支持 反对

使用道具 举报

7

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
850
威望
438
贡献
252
兑换币
244
注册时间
2014-10-30
在线时间
80 小时
毕业学校
青岛振华
9#
发表于 2015-3-22 10:07:23 | 只看该作者
应该加个拉电阻吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-27 21:25 , Processed in 0.048777 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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