MSP430WARE++的使用1:LG3641BH driver的调用方法
来源:互联网 发布:php static 变量 编辑:程序博客网 时间:2024/05/21 17:32
MSP430WARE是一套基于C++语言的开源的MSP430层次化软件架构,支持多种外设。本文将介绍数码管LG3641BH驱动程序的调用方法。
1、硬件原理图
采用下图所示的数码管LG3641BH电路,可以直接调用NixieTubeA驱动程序进行程序开发。
1、硬件原理图
采用下图所示的数码管LG3641BH电路,可以直接调用NixieTubeA驱动程序进行程序开发。
2、使用方法
a、加入驱动程序
选中NixieTubeA文件夹,右键点击“Exclude from Build”即可。
a、加入驱动程序
选中NixieTubeA文件夹,右键点击“Exclude from Build”即可。
NixieTubeA驱动程序由3个文件组成,如下图所示。其中NixieTubeA_config.hpp为NixieTubeA的配置文件,NixieTubeA.cpp为NixieTubeA类的源程序,NixieTubeA.hpp为NixieTubeA类的头文件。
b、使能外设
在config.hpp中使能外设NixieTubeA,其源程序如下:
#define EXTERNAL_MODULE_NixieTubeA_MODE 1
c、驱动程序的配置。
查看原理图,可以看到如下的引脚对应关系。
D1——P5.4
D2——P5.3
D3——P5.2
D4——P5.1
Qa——P4.5
Qb——P4.7
Qc——P4.2
Qd——P4.4
Qe——P4.6
Qf——P5.0
Qg——P4.1
根据上述对应关系更改NixieTubeA_config.hpp配置文件,其更改后的源程序如下:
#define NIXIETUBEA_D0_PORT PORT5
b、使能外设
在config.hpp中使能外设NixieTubeA,其源程序如下:
#define EXTERNAL_MODULE_NixieTubeA_MODE 1
c、驱动程序的配置。
查看原理图,可以看到如下的引脚对应关系。
D1——P5.4
D2——P5.3
D3——P5.2
D4——P5.1
Qa——P4.5
Qb——P4.7
Qc——P4.2
Qd——P4.4
Qe——P4.6
Qf——P5.0
Qg——P4.1
根据上述对应关系更改NixieTubeA_config.hpp配置文件,其更改后的源程序如下:
#define NIXIETUBEA_D0_PORT PORT5
#define NIXIETUBEA_D0_PIN PIN4
#define NIXIETUBEA_D1_PORT PORT5
#define NIXIETUBEA_D1_PIN PIN3
#define NIXIETUBEA_D2_PORT PORT5
#define NIXIETUBEA_D2_PIN PIN2
#define NIXIETUBEA_D3_PORT PORT5
#define NIXIETUBEA_D3_PIN PIN1
#define NIXIETUBEA_Qa_PORT PORT4
#define NIXIETUBEA_Qa_PIN PIN5
#define NIXIETUBEA_Qb_PORT PORT4
#define NIXIETUBEA_Qb_PIN PIN7
#define NIXIETUBEA_Qc_PORT PORT4
#define NIXIETUBEA_Qc_PIN PIN2
#define NIXIETUBEA_Qd_PORT PORT4
#define NIXIETUBEA_Qd_PIN PIN4
#define NIXIETUBEA_Qe_PORT PORT4
#define NIXIETUBEA_Qe_PIN PIN6
#define NIXIETUBEA_Qf_PORT PORT5
#define NIXIETUBEA_Qf_PIN PIN0
#define NIXIETUBEA_Qg_PORT PORT4
#define NIXIETUBEA_Qg_PIN PIN1
#define NIXIETUBEA_Qdp_PORT PORT4
#define NIXIETUBEA_Qdp_PIN PIN3
d、类的派生
在硬件抽象层,人机交互类中声明类CDisplaySystem,直接由CNixieTubeA类派生即可,其源程序如下:
class CDisplaySystem:public CNixieTubeA
d、类的派生
在硬件抽象层,人机交互类中声明类CDisplaySystem,直接由CNixieTubeA类派生即可,其源程序如下:
class CDisplaySystem:public CNixieTubeA
{
};
e、对象的声明
可以在CHCI类中,进行对象声明,其源程序如下:
class CHCI
e、对象的声明
可以在CHCI类中,进行对象声明,其源程序如下:
class CHCI
{
public:
CLed Led;
CDisplaySystem DisplaySystem;
};
f、其它操作
使用NixieTubeA需启用1个定时为1ms的定时器,TimerA或者TimerB均可(本文以TimerB为例),其启动设置在config.hpp中完成,源程序如下:
f、其它操作
使用NixieTubeA需启用1个定时为1ms的定时器,TimerA或者TimerB均可(本文以TimerB为例),其启动设置在config.hpp中完成,源程序如下:
#define INTERNAL_PERIPHERAL_TIMERB_MODE 1
定时器启动后,在main.cpp的定时器中断函数中加入显示语句即可,源程序如下:
#pragma vector=TIMERB0_VECTOR 输入1或'1' 显示1
输入2或'2' 显示2
输入3或'3' 显示3
输入4或'4' 显示4
输入5或'5' 显示5
输入6或'6' 显示6
输入7或'7' 显示7
输入8或'8' 显示8
输入9或'9' 显示9
输入10或'A' 显示A
输入11或'B' 显示B
输入12或'C' 显示C
输入13或'D' 显示D
输入14或'E' 显示E
输入15或'F' 显示F
输入'-' 显示-
输入'N' 显示NULL,就是什么也不显示
uint8 DisplayPoint[4]; 用于控制0-3位小数点的显示,赋值为1显示小数点,赋值为0不显示小数点。
成员函数:
CNixieTubeA(void); 构造函数
void SelectLED(uint8 u8_Number); 位选择函数
void DrawLED(uint8 u8_Number, uint8 u8_Point); 字符与小数点绘制函数
定时器启动后,在main.cpp的定时器中断函数中加入显示语句即可,源程序如下:
#pragma vector=TIMERB0_VECTOR
__interrupt void TimerB0_ISR(void)
{
//项目中设置为1ms
Target.HAL.HCI.DisplaySystem.Display();
}
g、调用方法
g、调用方法
可以在程序的任意地方操纵NixieTubeA的成员变量DisplayString[4]和DisplayPoint[4],其中DisplayString[4]用于设置数码管需要显示的字符,DisplayPoint[4]用于设置数码管所在位的小数点的显示。以下是示例程序,调用后数码管将显示“----”(不含小数点)。
Target.HAL.HCI.DisplaySystem.DisplayString[0] = '-';
Target.HAL.HCI.DisplaySystem.DisplayString[0] = '-';
Target.HAL.HCI.DisplaySystem.DisplayString[1] = '-';
Target.HAL.HCI.DisplaySystem.DisplayString[2] = '-';
Target.HAL.HCI.DisplaySystem.DisplayString[3] = '-';
Target.HAL.HCI.DisplaySystem.DisplayPoint[0] = 0x00;
Target.HAL.HCI.DisplaySystem.DisplayPoint[1] = 0x00;
Target.HAL.HCI.DisplaySystem.DisplayPoint[2] = 0x00;
Target.HAL.HCI.DisplaySystem.DisplayPoint[3] = 0x00;
3、CNixieTubeA类成员变量和成员函数的说明
成员变量:
CNixieTubeA_D0_Pin D0_Pin; 数码管第0位使能引脚
3、CNixieTubeA类成员变量和成员函数的说明
成员变量:
CNixieTubeA_D0_Pin D0_Pin; 数码管第0位使能引脚
CNixieTubeA_D1_Pin D1_Pin; 数码管第1位使能引脚
CNixieTubeA_D2_Pin D2_Pin; 数码管第2位使能引脚
CNixieTubeA_D3_Pin D3_Pin; 数码管第3位使能引脚
CNixieTubeA_Qa_Pin Qa_Pin; 数码管a段控制引脚 uint8 DisplayString[4]; 数组的0-3位分别表示数码管的0-3位显示的字符,该驱动程序可显示如下字符:
输入0或'0' 显示0
CNixieTubeA_Qb_Pin Qb_Pin; 数码管b段控制引脚
CNixieTubeA_Qc_Pin Qc_Pin; 数码管c段控制引脚
CNixieTubeA_Qd_Pin Qd_Pin; 数码管d段控制引脚
CNixieTubeA_Qe_Pin Qe_Pin; 数码管e段控制引脚
CNixieTubeA_Qf_Pin Qf_Pin; 数码管f段控制引脚
CNixieTubeA_Qg_Pin Qg_Pin; 数码管g段控制引脚
CNixieTubeA_Qdp_Pin Qdp_Pin; 数码管dp段控制引脚
输入0或'0' 显示0
输入2或'2' 显示2
输入3或'3' 显示3
输入4或'4' 显示4
输入5或'5' 显示5
输入6或'6' 显示6
输入7或'7' 显示7
输入8或'8' 显示8
输入9或'9' 显示9
输入10或'A' 显示A
输入11或'B' 显示B
输入12或'C' 显示C
输入13或'D' 显示D
输入14或'E' 显示E
输入15或'F' 显示F
输入'-' 显示-
输入'N' 显示NULL,就是什么也不显示
uint8 DisplayPoint[4]; 用于控制0-3位小数点的显示,赋值为1显示小数点,赋值为0不显示小数点。
成员函数:
CNixieTubeA(void); 构造函数
void SelectLED(uint8 u8_Number); 位选择函数
void DrawLED(uint8 u8_Number, uint8 u8_Point); 字符与小数点绘制函数
void Display(void); 显示函数,该函数应在定时为1ms的定时器中断函数中调用。
注1:本文中示例代码用绿色标注。
注2:本文中与使用密切相关的成员变量与成员函数用红色标注。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
注1:本文中示例代码用绿色标注。
注2:本文中与使用密切相关的成员变量与成员函数用红色标注。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
1 2
- MSP430WARE++的使用1:LG3641BH driver的调用方法
- MSP430WARE++的使用2:RSP1 driver的调用方法
- MSP430WARE++的使用3:modbus模块的调用方法
- MSP430应用技巧4:创建MSP430Ware工程项目的方法
- MSP430WARE++的使用4:GPIO的使用方法a
- 使用shell进行调用脚本或者命令driver的测试
- MSP430Ware使用笔记 初始化XT1
- 使用SoftIce调试free build版的Driver方法
- 使用SoftIce调试free build版的Driver方法
- windows driver 的入门方法
- windows driver 的入门方法
- Driver的prob的调用顺序
- Driver的prob的调用顺序
- Driver的prob的调用顺序
- Selenium_webdriver对 chrome driver的调用
- Selenium_webdriver对 chrome driver的调用
- 反射的使用---调用方法(*)
- windows driver 定时器的使用
- Mac 系统下vbox 的双网卡配置
- mac使用过程总结
- 整理了一些犬细小病毒用药仅供参考
- 编写最简单的内核:HelloWorld
- ZOJ 3686 A Simple Tree Problem(线段树)
- MSP430WARE++的使用1:LG3641BH driver的调用方法
- 欧拉函数[已解决]
- 黑马程序员Java笔记——IO篇之流对象
- 黑马程序员 IO流
- 为mysql数据库建立索引
- ZOJ 3693 Happy Great BG
- Lua查找表元素过程(元表、__index方法是如何工作的)
- 黑马程序员Java笔记——网络编程
- Cocos2d-x中,ControlSlider的基本用法