智能车制作
标题:
关于ECT捕捉的问题
[打印本页]
作者:
chenrunshe_007
时间:
2009-4-28 12:57
标题:
关于ECT捕捉的问题
/*程序的目的是利用输入捕捉0通道对外来的方波信号进行捕捉,采用中断的形式。中断发生后读取捕捉后的计数值,并用B口的LED指示中断成功,接线方面我采取的是PA6与PT0连接。编译可以通过可是连接的时候有错误“
Fixup overflow in _Vector_8, to ic0_int type 1, at offset 0x0
”,本人不知道什么原因,望高手赐教,能在我迷茫中给及希望感谢啊!*/
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h>
#pragma LINK_INFO DERIVATIVE "mc9s12dg128"
unsigned int ic_first,ic_second,dic;/*声明变量*/
void Set_Pll(void);
void Ic_Init(void);
void main(void)
{
unsigned int i;
/* put your own code here */
Set_Pll(); /*设置锁相环*/
Ic_Init(); /*IC初始化*/
EnableInterrupts;
DDRA=0XFF; /*设置A为输出*/
PORTA=0X00; /*初始化为低电平*/
DDRB=0XFF; /*设置B为输出*/
PORTB=0XFF; /*初始化为高电平*/
for(;;)
{
for(i=0;i<6000;i++)
{
PORTA_BIT6=1; /*循环中设置为高电平*/
}
for(i=0;i<6000;i++)
{
PORTA_BIT6=0; /*循环中设置为低电平,产生一个方波*/
}
_FEED_COP(); /* feeds the dog,看门狗,不用理它 */
} /* loop forever */
/* please make sure that you never leave main */
}
/*设置锁相环,总线频率为24MHz*/
void Set_Pll(void)
{
CLKSEL=0X00;
PLLCTL=0XE1;
SYNR=2;
REFDV=1;
PLLCTL=0X60;
asm NOP;
asm NOP;
asm NOP;
while(!(CRGFLG&0X08));
CLKSEL=0X80;
}
/*IC初始化*/
void Ic_Init(void)
{
TSCR1=0X90; /*主定时器使能*/
TSCR2=0X07; /*Prescaler Factor=128*/
ICSYS=0X02; /*IC缓冲使能*/
TIOS=0; /*通道设置为输入捕捉*/
TCTL4=0XFF; /*采用上升、下降沿触发*/
TIE=0X00000001;/*通道0开中断*/
}
#pragma CODE_SEG NON_BANDKED
void interrupt 8 ic0_int (void)
{
TFLG1_C0F=1;/*中断标志清除*/
ic_second=TC0; /*通过读TC0寄存器来响应中断*/
dic=ic_second-ic_first; /*得到脉冲宽度*/
ic_first=ic_second;
PORTB++;/*用LED来指示已经进入中断*/
}
作者:
chenrunshe_007
时间:
2009-4-28 15:46
大家不用看了,我把#pragma CODE_SEG NON_BANKED写成了#pragma CODE_SEG NON_BANDKED,真sick,害的我一个中午都在反复写了几遍程序都不对,大家要引以为鉴啊,一个小小的马掌丁跟一个国家灭亡的故事你们小时候没少看吧
作者:
whut_wj
时间:
2009-4-28 16:49
呵呵
作者:
敏2009
时间:
2009-4-28 17:22
正常,呵呵,不灰心努力!
作者:
敏2009
时间:
2009-4-28 19:13
正常,呵呵,不灰心努力!
作者:
xbsf-写轮眼
时间:
2009-4-28 21:28
作者:
wokao
时间:
2010-1-15 19:58
想问一下,为什么要PA6口与PT0连接?
作者:
chenrunshe_007
时间:
2010-1-15 23:50
回复
7#
wokao
PA6我是用于产生脉冲信号用的,PT0是用来捕捉信号用的,PA6当然要联PT0。
作者:
muyicangren
时间:
2010-1-18 18:07
呵呵
作者:
he251125
时间:
2010-3-9 11:13
很好啊
作者:
kenuo1991
时间:
2010-3-23 20:13
有点儿意思……学习啦
作者:
山孩子
时间:
2010-3-24 15:02
本帖最后由 山孩子 于 2010-3-24 15:04 编辑
回复
1#
chenrunshe_007
PORTA_BIT6在XS128中不识别
修给为 PORTA_PA6 就好了
不好意思 很菜
那个在DG中可以识别的
作者:
jiao19880804
时间:
2010-3-24 19:22
tonggan
作者:
cnpcshangbo
时间:
2010-3-25 16:42
很好
作者:
qnbs1
时间:
2010-3-28 09:41
呵呵 。不错。学习了
作者:
luqingyun
时间:
2010-7-29 22:56
这个程序在那个地方进入中断啊?
作者:
逐梦者
时间:
2010-10-5 22:10
不错
作者:
1347519017
时间:
2013-4-17 12:16
chenrunshe_007 发表于 2010-1-15 23:50
回复 7# wokao
PA6我是用于产生脉冲信号用的,PT0是用来捕捉信号用的,PA6当然要联PT0。
我请教一下,pt0 捕捉的不是系统时钟的上升沿吗?
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2