TDxxxV1.0
图2-4 新建Project
2、单击OK。
3、新工程选项配置,在确认建立工程后,出现Project Setting 对话框,左边的Project列表中默认选中我们刚刚建立的工程,在这里我们只修改Chip 和Code Option项目下的选项,如图所示:
图2-5 Project Setting 对话框
6
TDxxxV1.0
4、选择正确的芯片: 在Chip页中,Definition文本框中显示系统依据你选定的芯片母体系列而确定的需要调用的芯片定义文件。Chip List 表列出了当前版本的IDS所支持的这一系列的各个芯片,选中其中你需要使用的芯片母体,Selected 文本框和Description文本框相应会自动改变。如图:
图2-6 选择芯片
5、设置正确的Code Option选项和ICE MODE:
ICE MODE的设置在SN8P1xxx芯片中是用于选择是否是ICE仿真模式,在Code Option列表中自动显示选定芯片母体的Code Option 选项,在Option Value项的默认值上单击,出现一个下拉列表,单击选择合适的选项。如图:
图2-7 设置正确的Code Option
7
TDxxxV1.0
6、单击OK,系统生成一个没有文件的工程,在Workspace 管理窗口中我们可以看见当前生成的工程为Working project,正处被激活状态(工程名称为加粗字体):
图2-8 新建Project的状态被激活
打开相应的文件夹,我们会发现系统生成了很多个新的文件,其中的.prj文件即为工程文件,其他的文件为根据我们刚才的设置和不同的芯片生成的配置文件及头文件。
三、 新建文件
完成项目的新建后,我们发现项目管理器source文件夹下是空的,没有任何文件,文件就是我们编程的主要工作了!
1、打开文件->新建菜单,单击出现我们前面看过很多次的New对话框,不过比前面多了一个选项——Files,选择New列表中的Files选项,单击按钮,对话框如图所示:
图2-9 新建文件对话框
2、在File List中选中需要创建的文件类型,这里我们创建一个C Source File,给文件命名从Name 编辑框中输入,存放的地点为刚才的设定位置,默认不做修改。
3、单击OK按钮,IDS打开一个编辑窗口,最大化,显示为刚刚建立的文件名的页,系统允许我们在这里进行程序的编写。
四、 编写程序
8
TDxxxV1.0
在新建一个文件后,系统自动打开编辑器,并打开一个由用户命名的空文档,它与普通文档相比较没有什么不同的之处,只不过它可以对C的关键字进行高亮显示。在新的文档里编辑程序。
C本身就是一种模块化的编程语言,SN8C的编程保持C 语言的编程风格。 SN8C所具有的Non-ANSI C的特性请参看其他章节,在此不再做描述。 下面是一个简单的C程序举例。 例2:
/****************************************************************** *
* File Name : SN8C_Ex.c * Post By : Dragon.Yi * Date : 2005/09/23 * Test History : V1.00.220 * describe:test 2708 interrupt
*
*******************************************************************/ #include
unsigned int tc0cvalue=0x64; unsigned int accbuf = 0x00; unsigned int pflagbuf = 0; __interrupt intserv(void) {
_bCLR(&INTRQ,5); TC0C = tc0cvalue;
//The data will auto store!
intword.fint = 1; }
void initIO(void); void initINT(void);
void main(void) { STKP=0x07;
initIO(); initINT(); while(1) {
if(intword.fint!=0) {
P1=0x00;
9
TDxxxV1.0
}
} else { }
P0=0xff; P1=0xff; P2=0xff; P3=0xff; P4=0xff; P5=0xff; P2=0x00; P3=0x00; P4=0x00; P5=0x00; P0=0x00;
}
void initIO(void) {
P0M=0xFF; P1M=0xFF; P2M=0xFF; P3M=0xFF; P4M=0xFF; P5M=0xFF;
}
void initINT(void) {
INTRQ=0x00; INTEN=0x00; TC0M=0x00; TC0M=0x20; TC0C=0x64; _bCLR(&INTRQ,5); _bSET(&INTEN,5); _bSET(&TC0M,7); _bSET(&STKP,7);
}
注:程序只作为程序架构提供参考!
五、 调试程序
10