在进行
仿真的时候,主程序运行到这条语句的时候就不动了(*PEDATDIR = *PEDATDIR&0x0FFFD;),想进入死循环了一样,我是出学的,在做硬件仿真的时候应该把程序下载到外部RAM里吧,我现在的
电路上还扩展了I/O空间,这样就是地址线和数据线复用,不知道这样能不能进行仿真~
主函数~:
main()
{
char LedBuf[4];
long i;
unsigned int t;
DSPsystem_Init();
KeyOutput1_Fo;
KeyOutput2_Fo;
*PEDATDIR = *PEDATDIR&0x0FFFD;
sprintf(LedBuf, "%4s", "----");
LedDisplay(LedBuf, 1);
i=0;
for(;;)
{
while(key == 0);
switch(key)
………………
}
我的初始化函数如下:
void DSPsystem_Init(void)
{
asm(" SETC INTM "); /*关总中断*/
asm(" CLRC SXM "); /*抑制符号扩展*/
asm(" CLRC OVM "); /*累加器中结果正常溢出*/
asm(" CLRC CNF "); /*B0区被配置为数据空间*/
*SCSR1=0x83FE; /*时钟2倍频,CLKIN=12M,CLKOUT=24M*/
*WDCR=0x00E8; /*不使能WDT*/
*IMR=0x0000; /*屏蔽所有CPU中断*/
*XINT1CR=0x8001; /*高优先级,使能中断INT1,上升沿产生中断*/
*XINT2CR=0x8001; /*低优先级,使能中断INT2,下降沿产生中断*/
*IFR=0xFFFF; /*清全部中断标志*/
*MCRA=0x0007; /*IO口初始化*/
*MCRB=0xFF3D;
*MCRC=0x0000;
WSGR=0x0006; /*外部IO空间和数据存储空间插入等待周期*/
*PADATDIR=0xF080;
*PBDATDIR=0x00FF;
*PCDATDIR=0xFF00;
*PDDATDIR=0xFFFF;
*PEDATDIR=0xFFFF;
*PFDATDIR=0xF000;
/*串口初始化*/
*SCICCR=0x0007; /*空闲线多处理器模式,8位数据,1位停止位,无奇偶校验*/
*SCICTL1=0x0013; /*接收使能,SLEEP=0,SW RESET=0*/
*SCICTL2=0x0002; /*接收中断使能*/
*SCIHBAUD=0x0001;
*SCILBAUD=0x0038; /*波特率为9600systemclk=24M*/
*SCICTL1=0x0033; /*串口初始化完成,SW RESET=1*/
*SCIPRI=0x0060; /*一旦仿真挂起,在完成当前的接收/发送操作后停止*/
/*PEDATDIR = *PEDATDIR&0xFFFD;*/
*IMR=0x0001; /*开中断INT1*/
asm(" CLRC INTM "); /*开总中断*/
}
一周热门 更多>