我用2407写了一个产生方波的简单程序,但是烧进去后发现出不来波形,不知道是怎么回事,难道是我的程序错了吗?各位能帮我看看是怎么回事吗?<br /><br />//这是主程序<br />#include "DSP2407A.h"<br /><br />#define uint unsigned int<br />#define uchar unsigned char<br /><br />uint cn; //计数次数<br /><br />//Iintial system configure <br />void InitSys(void)<br />{<br /> <br /> asm (" clrc OVM"); <br /> asm (" clrc CNF"); //B0--数据存储器<br /> *SCSR1 = 0x81FE;<br /> *WDCR = 0x0E8; <br /> *IMR = 0x0001; <br /> *IFR = 0x0FFFF; <br /> *MCRA = 0x0000; //配置成一般IO口 <br /> *PBDATDIR = 0x0FFFF; //PB为输出1<br />}<br /><br />int main(void)<br />{<br /> InitSys();<br /> asm (" setc INTM"); //关中断<br /><br /> while (1)<br /> {<br /> //PB口产生一个方波<br /> *PBDATDIR = 0x0FF00; //PB输出0<br /> for(cn=0; cn<35000; cn++){;} //延时<br /> *PBDATDIR =0x0FFFF; //PB输出1<br /> for(cn=0; cn<35000; cn++){;} <br /> //PS:把0x0ff00换成0xff00也能通过编译,奇怪了<br /> }<br /> return 0;<br />}<br /><br /><br />//这是cmd配置文件<br /><br />MEMORY<br />{<br /> PAGE 0:<br /> VECS origin = 0000h, length = 0040h<br /> FLASH: origin = 0100h, length = 0F00h<br /> SARAM_P: origin = 8100h, length = 1000h <br /><br /> PAGE 1:<br /> B2: origin = 0060h, length = 020h<br /> B0: origin = 200h, length = 100h<br /> B1: origin = 300h, length = 100h<br /> SARAM_D: origin = 0800h, length = 0800h<br /> EXT_RAM: origin = 8000h , length = 8000h <br />}<br /><br />SECTIONS<br />{<br /> .vectors: > VECS PAGE 0<br /> .text: > FLASH PAGE 0<br /> .data: > FLASH PAGE 0<br /> .bss: > SARAM_D PAGE 1<br /> .stack: > SARAM_D PAGE 1<br /> .buffer: > SARAM_D PAGE 1<br />}<br /> |
|