智能车制作
标题:
128pit中断
[打印本页]
作者:
绝影逐魂
时间:
2015-5-10 17:06
标题:
128pit中断
急救啊,
,有没有xs128的大神?谢谢了,小弟快疯了,快救救我这个学渣。
pit定时中断进去出不来,中断函数里面就改了一个标志位,程序就几行,中断标志位也清除了。。。
最近写的一个测试小程序,只有锁相环和pit(1s)的初始化,一个pit中断和累加变量的主函数,单步调试永远在中断中,但是直接点continue,能看到累加的变量是正常的(好像是正常的,但是单步永远到不了变量值累加的那儿)。更神奇的是,单片机的工作指示灯竟然不会亮。
小车程序里面也是类似的,永远进不了主函数,不同于小的测试程序,continue也进不了了,断点也进不去。
不知道是不是我用的codewarrior有问题,单步调试会卡住的地方,用断点能跳过
作者:
林新手
时间:
2015-5-10 17:07
沙发!虽然我不会128
作者:
绝影逐魂
时间:
2015-5-10 17:20
#include "derivative.h"
#include <hidef.h>
void startup()
{
CLKSEL = 0x00;
PLLCTL_PLLON = 1;
SYNR = 0xC0 | 0x09;
REFDV = 0x80 | 0x01;
POSTDIV = 0x00;
while(CRGFLG_LOCK != 1);
CLKSEL_PLLSEL = 0x01; //80m
PITCFLMT = 0x00;
PITCE_PCE0=1;
PITMUX = 0X00;
PITLD0 = 0X7a11;
PITMTLD0 =0XFF; //1s
PITINTE= 0X01;
PITCFLMT=0X80;
EnableInterrupts;
}[code]#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
extern void startup() ;
// #define led PORTE_PE1
int flag;
int count;
int a;
void main(void)
{
/* put your own code here */
startup() ;
while(1)
{
if(flag)
{
a = 1;
flag=0;
}
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 66U void PIT_ISR(viod)
{
EnableInterrupts;
PITTF_PTF0=1;
count++;
if(count==5)
{
flag=1;
count=0;
}
}
#pragma CODE_SEG DEFAULT
复制代码
[/code]
作者:
绝影逐魂
时间:
2015-5-10 17:22
上面是我写的测试程序,请各位哥们看看,谢谢了
作者:
江上远帆
时间:
2015-5-11 00:37
进中断以后应该先关闭中断吧?为什么你却打开中断?
作者:
黑色枫夜
时间:
2015-5-11 19:00
楼上+1
作者:
小福猪
时间:
2015-5-11 21:54
PIT没禁止使能怎么出来。。。
作者:
绝影逐魂
时间:
2015-5-14 16:20
江上远帆 发表于 2015-5-11 00:37
进中断以后应该先关闭中断吧?为什么你却打开中断?
这个关系啊,我准备嵌套其他中断,当然要开着中断。我试过在中断程序中关掉中断,没有用
作者:
绝影逐魂
时间:
2015-5-14 16:21
小福猪 发表于 2015-5-11 21:54
PIT没禁止使能怎么出来。。。
哪有这种说法啊,难道自己的中断还能被自己打断不成?我试过关中断,没有用
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2