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