MSP430WARE++的使用1:LG3641BH driver的调用方法

MSP430WARE是一套基于C++语言的开源的MSP430层次化软件架构,支持多种外设。本文将介绍数码管LG3641BH驱动程序的调用方法。

1、硬件原理图

采用下图所示的数码管LG3641BH电路,可以直接调用NixieTubeA驱动程序进行程序开发。

2、使用方法

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

#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

{

};

e、对象的声明

可以在CHCI类中,进行对象声明,其源程序如下:

class CHCI

{

public:

CLed
Led;

CDisplaySystem
DisplaySystem;

};

f、其它操作

使用NixieTubeA需启用1个定时为1ms的定时器,TimerA或者TimerB均可(本文以TimerB为例),其启动设置在config.hpp中完成,源程序如下:

#define
INTERNAL_PERIPHERAL_TIMERB_MODE 1

定时器启动后,在main.cpp的定时器中断函数中加入显示语句即可,源程序如下:

#pragma vector=TIMERB0_VECTOR

__interrupt void TimerB0_ISR(void)

{

//项目中设置为1ms

Target.HAL.HCI.DisplaySystem.Display();

}

g、调用方法

可以在程序的任意地方操纵NixieTubeA的成员变量DisplayString[4]和DisplayPoint[4],其中DisplayString[4]用于设置数码管需要显示的字符,DisplayPoint[4]用于设置数码管所在位的小数点的显示。以下是示例程序,调用后数码管将显示“----”(不含小数点)。

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位使能引脚

CNixieTubeA_D1_Pin
D1_Pin;    数码管第1位使能引脚

CNixieTubeA_D2_Pin
D2_Pin;    数码管第2位使能引脚

CNixieTubeA_D3_Pin
D3_Pin;    数码管第3位使能引脚

CNixieTubeA_Qa_Pin
Qa_Pin;    数码管a段控制引脚

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段控制引脚

uint8 DisplayString[4];     
 数组的0-3位分别表示数码管的0-3位显示的字符,该驱动程序可显示如下字符:

输入0或‘0‘    显示0

输入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);    字符与小数点绘制函数

void
Display(void);                               显示函数,该函数应在定时为1ms的定时器中断函数中调用。

注1:本文中示例代码用绿色标注。

注2:本文中与使用密切相关的成员变量与成员函数用红色标注。

原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 21:53:50

MSP430WARE++的使用1:LG3641BH driver的调用方法的相关文章

MSP430WARE++的使用2:RSP1 driver的调用方法

MSP430WARE是一套基于C++语言的开源的MSP430层次化软件架构,支持多种外设.本文将介绍雷达測速芯片RSP1驱动程序的调用方法. 1.硬件原理图 採用下图所看到的的RSP1电路,能够直接调用RSP1驱动程序进行程序开发. 2.用法 a.增加驱动程序 选中RSP1目录.右键点击"Exclude from Build"就可以. RSP1驱动程序由3个文件组成.例如以下图所看到的.当中RSP1_config.hpp为RSP1的配置文件.RSP1.cpp为RSP1类的源程序,RSP

MSP430WARE++的使用3:modbus模块的调用方法

MSP430WARE++的使用3:modbus模块的调用方法 MSP430WARE是一套基于C++语言的开源的MSP430层次化软件架构,支持多种外设.本文将介绍modbus模块驱动程序的调用方法. 1.硬件原理图 使用modbus模块驱动程序需要与MSP430单片机的UART0端口相连接. 2.使用方法 a.加入驱动程序 选中modbus文件夹,右键点击"Exclude from Build"即可. modbus驱动程序由多个个文件组成,如下图所示.其中RSP1_config.hpp

点击UIWebView上文字调用方法

有的时候应用中需要通过点击网页中的文字或者按钮调用一个方法或事件,这时需要我们将网页与应用之间建立联系. 1.和服务器人员约定一个协议例如ios:// 2.当点击网页上文字或按钮时,跳转这个约定协议的路径 3.通过webview代理方法监听url,判断是哪个操作决定调用方法. window.location.href = 'iso://openCamer'; #pragma mark - UIWebViewDelegate /** 当webView发送一个请求之前都会调用这个方法, 返回YES,

ios系统铃声调用方法

首先,这里我要说明这里并不是真正调用系统内部自带的铃声,因为苹果是不允许开发者调用的,没有给开发者接口:如果调用了就无法上线的!那为什么AppStore里面还有那么多app显示的效果是调用系统的铃声一样呢?为什么就能上线呢?其实不然,他们是使用了系统一样的铃声!也就说他们录制和系统铃声相似,然后包含进他们的bundle中来实现的. 所以,我们想要实现调用系统铃声的效果,只能通过这个途径:把音频文件捆绑经我们的bundle中来调用,播放! 给一个网址,里面好多苹果系统铃声(ios8的也有啦....

函数常见的写法及调用方法整理

我们平时在阅读别人的代码的时候,总能看到别人在写函数的时候,有各种不同的写法及调用方法,今天就总结下我所遇到过的函数常见的写法及调用方法. 一.函数声明 // 函数的写法 function sum(a, b) { return a + b; } // 调用 sum(1,2); // 3  二.函数表达式 // 函数的写法 var sum = function (a, b) { return a + b; } // 调用 sum(2, 3); // 5 三.将方法作为一个对象 // 作为对象方法,

错误:“Cannot load JDBC driver class 'com.mysql.jdbc.Driver”的解决方法

"Cannot load JDBC driver class 'com.mysql.jdbc.Driver " 表示没有JDBC连接MySql的驱动包,因此需要手动添加驱动包到WEB-INF目录下的lib目录中. 解决方法: 从网上下载mysql-connector-java.jar,将其放到"D:\workspace\my-web\src\main\webapp\WEB-INF\lib"目录下,即可解决上述问题. 错误:"Cannot load JDBC

spring aop 动态代理批量调用方法实例

今天项目经理发下任务,需要测试 20 个接口,看看推送和接收数据是否正常.因为对接传输的数据是 xml 格式的字符串,所以我拿现成的数据,先生成推送过去的数据并存储到文本,以便验证数据是否正确,这时候要批量调用这些同名方法,我觉得这里可以发展成有潜力的代码. 推送比较好做数据,队友们都写好代码,但是有个问题,方法要的值都大致相同,封装的方式不一致,多人开发,有的封装对象里面,有的直接使用 Map.get(),唉,一千个人一千个哈姆雷特嘛,只好利用反射和动态代理节省自己的代码量,而且这种方式练练手

Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理

Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载”和“纵向重载”1 1.2. 方法签名通过  方法名称,参数数量,参数类型+返回类型 参数顺序(命名参数)来组成1 1.3. 重载(重新载选方法流程,如下图所示2 2. 重载的实现方法::argus参数 vs  默认值.可选参数法 可选参数3 2.1. __call()函数是php类的默认魔法函数 3 2.2. Java通过反射调用方法重载 执行方法4 2.

Thread 调用方法的方式

1.传统ThreadStart 2.ParameterizedThreadStart 3.委托thread = new Thread(delegate() { NoticeBroadcast(userinfos, com2); }); 4.匿名方法 thread = new Thread(() =>NoticeBroadcast(userinfos, com2)); Thread 调用方法的方式,布布扣,bubuko.com