智能车制作
标题:
关于输入捕捉IC中断问题
[打印本页]
作者:
xushaoqing
时间:
2012-4-8 21:19
标题:
关于输入捕捉IC中断问题
为什么我不清中断标志位,程序缺依旧不断进入中断,而不是一直处于中断中,本人学习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);
}
作者:
xushaoqing
时间:
2012-4-8 21:20
延时函数主要是想看到PA口的LED变化
作者:
徐晋鸿!
时间:
2012-4-9 18:12
同问!!。。
作者:
从不耘败
时间:
2012-5-12 19:16
你的程序是总进入中断,我的程序是进不了中断!
作者:
从不耘败
时间:
2012-5-12 19:21
我是进不了中断啊
作者:
破浪激流
时间:
2012-7-28 17:22
同问 不要那句的话 函数以很短的时间不停的进入中断,不明白为什么?
作者:
/ka一寸蔚蓝
时间:
2012-10-4 21:19
中断函数前面加#pragma CODE_SEG __NEAR_SEG NON_BANKED 函数后面加#pragma CODE_SEG __NEAR_SEG NON_BANKED 试下
作者:
/ka一寸蔚蓝
时间:
2012-10-4 21:20
抱歉,中断函数后面加的是#pragma CODE_SEG DEFAULT 打错了
作者:
暴走蜗牛
时间:
2015-3-22 10:07
应该加个拉电阻吧
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2