CW MCU v11.1学习笔记1

说明:通过处理器专家创建芯片为MC9S08DZ60的工程,按键控制LED

一、CW11.1软件界面布局

1、双击桌面图标,打开软件,设置工作空间

CW MCU v11.1学习笔记1

软件主界面

CW MCU v11.1学习笔记1

调试界面

CW MCU v11.1学习笔记1

处理器专家界面

CW MCU v11.1学习笔记1

有时经常调整(删除)面板布局,如果想恢复布局,可在Window工具栏下的Reset Perspective选项来复位面板布局

CW MCU v11.1学习笔记1

二、新建工程

1、在C/C++模式下,在Commander面板下点击New MCU project

CW MCU v11.1学习笔记1

2、创建一个裸板工程,设置工程名和存储路径(默认存储到工作空间),下一步

CW MCU v11.1学习笔记1

3、选择芯片型号

CW MCU v11.1学习笔记1

4、选择连接方式(程序调试下载方式)

CW MCU v11.1学习笔记1

5、选择编程语言

CW MCU v11.1学习笔记1

6、快速应用开发,处理器专家

CW MCU v11.1学习笔记1

7、C/C++选项

CW MCU v11.1学习笔记1

8、新建工程完成

CW MCU v11.1学习笔记1

三、底层配置

芯片具体型号选择(重要

CW MCU v11.1学习笔记1

1、时钟设置,使能外部时钟,设置时钟频率8MHz(根据硬件的晶振频率),高速时钟设置为外部时钟

CW MCU v11.1学习笔记1

2、生成软件延时函数

CW MCU v11.1学习笔记1

查看帮助文档

CW MCU v11.1学习笔记1

点击Component MC9S08DZ60_64 Methods

CW MCU v11.1学习笔记1

CW MCU v11.1学习笔记1

//    us100:word - Number of 100 us delay repetitions.

void Delay100US(word us100)


CW MCU v11.1学习笔记1

3、按键接口硬件电路

IO口 描述
PTG2 ESC
PTG3 DOWN
PTG4 OK
PTG5 UP

CW MCU v11.1学习笔记1

4、双击 BitIO,添加IO组件

CW MCU v11.1学习笔记1

Pull resister设置为 no pull resister ,因为按键电路已经有一个4.7K的上拉电阻,按键没按下IO口为高电平,按下为低电平。

CW MCU v11.1学习笔记1

生成函数GetVal();

CW MCU v11.1学习笔记1

重命名组件

CW MCU v11.1学习笔记1

CW MCU v11.1学习笔记1CW MCU v11.1学习笔记1

5、重复相同步骤,设置另外三个按键组件

CW MCU v11.1学习笔记1

6、LED硬件电路,可以看出IO口输出低电平LED亮。

CW MCU v11.1学习笔记1

7、双击 BitIO,添加IO组件,步骤如上,方向为推挽输出,初始置为高电平

CW MCU v11.1学习笔记1

CW MCU v11.1学习笔记1

8、编译工程,生成代码。

CW MCU v11.1学习笔记1

四、编写中间件程序

1、新建文件夹

CW MCU v11.1学习笔记1

CW MCU v11.1学习笔记1

在SDK文件夹下新建源文件和头文件

CW MCU v11.1学习笔记1

在构建工程的时候,按模块分类文件夹,就存在需要包含头文件路径的问题。

CW MCU v11.1学习笔记1

选择C/C++General的Path and Symble,再选择GUN C。点击右边的 Add,点击Variables 选择ProjDirPath,在设置相应的文件路径。

CW MCU v11.1学习笔记1

CW MCU v11.1学习笔记1

2、编写代码

KeyCtr.h


#ifndef KEYCTR_H_
#define KEYCTR_H_

#include "KeyEsc.h"
#include "KeyDown.h"
#include "KeyOk.h"
#include "KeyUp.h"

#define 	KEYDOWN 		0

#define   	Get_KeyEsc()   	KeyEsc_GetVal()
#define   	Get_KeyDown()   KeyDown_GetVal()
#define   	Get_KeyOk()   	KeyOk_GetVal()
#define   	Get_KeyUp()   	KeyUp_GetVal()



#endif /* KEYCTR_H_ */

KeyCtr.c


#include "KeyCtr.h"

LedCtr.h

#ifndef LEDCTR_H_
#define LEDCTR_H_

#include "Led1.h"
#include "Led2.h"
#include "Led3.h"
#include "Led4.h"

#define ON 	0
#define OFF 1

void Led1_onoff(bool onoff);
void Led2_onoff(bool onoff);
void Led3_onoff(bool onoff);
void Led4_onoff(bool onoff);


#endif /* LEDCTR_H_ */

LedCtr.c

#include "LedCtr.h"



void Led1_onoff(bool onoff)
{
	Led1_PutVal(onoff);
}

void Led2_onoff(bool onoff)
{
	Led3_PutVal(onoff);
}

void Led3_onoff(bool onoff)
{
	Led3_PutVal(onoff);
}

void Led4_onoff(bool onoff)
{
	Led4_PutVal(onoff);
}



五、建立应用层

1、新建文件夹

CW MCU v11.1学习笔记1

2、添加路径,新建文件(步骤如上)

CW MCU v11.1学习笔记1

3、代码编写

Task1.h

#ifndef TASK1_H_
#define TASK1_H_

#include "LedCtr.h"
#include "KeyCtr.h"

void task1(void);


#endif /* TASK1_H_ */

Task1.c



#include "Task1.h"

void task1(void)
{
	if( KEYDOWN==Get_KeyEsc() )
	{
		Led1_onoff(ON);
	}
	else
	{
		Led1_onoff(OFF);
	}
	
	if( KEYDOWN==Get_KeyDown() )
	{
		Led2_onoff(ON);
	}
	else
	{
		Led2_onoff(OFF);
	}
	
	if( KEYDOWN==Get_KeyOk() )
	{
		Led3_onoff(ON);
	}
	else
	{
		Led3_onoff(OFF);
	}
	
	if( KEYDOWN==Get_KeyUp() )
	{
		Led4_onoff(ON);
	}
	else
	{
		Led4_onoff(OFF);
	}
	Cpu_Delay100US(100);//10ms
	
}

Working.h

#ifndef WORKING_H_
#define WORKING_H_

#include "Task1.h"

void runing(void);

#endif /* WORKING_H_ */

Working.c

#include "Working.h"


void runing(void)
{
	for(;;)
	{
		
		task1();
		
	}
}

4、主函数编写

CW MCU v11.1学习笔记1

5、编译,调试下载

CW MCU v11.1学习笔记1

 

 

上一篇:Qt for MCUs 1.4 版本发布


下一篇:无线充SoC方案及MCU方案