在成都永腾电子买了块鸿翔dsp学习板,和仿真器xds100,这块开发板可以不用仿真器直接把程序下载到单片机中,单片机作为5402的外存。
不过这样比较麻烦,而且最烦的是,这块开发板单片机程序下载需要接计算机串口。
现在有几台笔记本还有串口呢?
我用了一根usb转串口来试了一下,结果单片机下载程序时计算机蓝屏。
看来我花180元买个仿真器也还是明智的。
不过这个仿真器支持ccs 4.0以上,ccs 3.3竟然不支持。
而我前一阵只是熟悉了ccs3.3。ccs4.2还不大明白。
增加了难度呀。
不过经过一番折腾,倒是仿真成功。
虽然简单得很,不过成功的喜悦还是很不错的。
我首先把学习板和仿真器连接好,并打开学习班电源。
首先打开ccs 4.2
然后在project菜单的import legacy ccs3.3 project来导入一个ccs3.3项目:Cputimer
然后在Project中编译项目Buile Active Project.//也可以不编译,直接debug,系统自己会编译
最后在Target中Debug Active Project.
点击run运行时,学习板上的led会不断闪烁。
图上最亮的那个灯是电源指示灯,旁边的小灯就是程序控制的闪烁的led灯
分析一下程序main.c:
#include "cpu_reg.h"
int ms,f;
void main()
{
asm(" STM #0000h,CLKMD ");
while(*CLKMD & 0x01 );
asm(" STM #40C7h,CLKMD "); //设置CPU运行频率=100M
/* 40C7h:5*clkin =100M
30c7h:4*clkin =80M
20c7h:3*clkin =60M
10C7h:2*clkin =40M
*/
asm(" stm #4240h, SWWSR ");
//2 wait except for on-chip program 1
asm(" stm #00a0h, PMST "); //MP/MC = 0, IPTR = 001,ovly=0
asm(" stm #0802h, BSCR ");
asm(" STM #0h,IMR ");
asm(" STM #0010h,TCR "); //关定时器
asm(" STM #0186ah,PRD ");//1ms
asm(" STM #0C2fh,TCR "); //TCR=最后四位
asm(" STM #0008h,IFR ");
asm(" ORM #0008h,*(IMR) ");/*开时间中断*/
asm(" RSBX INTM "); /*开中断*/
f=2;
ms=0;
while(1)
{
while(ms<500/f); //LED_flash
ms=0;
asm(" RSBX XF ");
while(ms<20/f);
ms=0;
asm(" SSBX XF ");
}
}
interrupt void timer0()
{
ms++;
}
CLKMD:时钟模式寄存器。这里有详细说明: http://blog.sina.com.cn/s/blog_492ff82b0100r2hh.html