欢迎回到CapTivate Technology 软件设计快速指南系列课程 接下来我将带领大家来完成我们最后一个实验 如何使用CapTivate软件库 在本实验中 我们需要学习如何使用CapTivate软件库 去访问我们的sensor data 以及如何将我们的touch状态通过LED来表示出来 上一讲当中 我们学习了如何使用在线调试工具 进行touch相关参数的调试 这一讲 我们将学习如何利用TI CapTivate函数库 撰写用户自定义的Callback 函数 在撰写Callback函数之前 我们来看一下所生成工程的源代码的结构 首先我们来看CapTivate文件夹 CapTivate文件夹里面就是我们所包含的CapTivate函数库 所定义的源代码 第二个文件夹 CapTivate下划线APP 那么这里呢 是我们的一些阴性的函数 包括我们的 在梦函数里面所执行的一些CapTivate初始化 CapTivate处理的一些函数 我们的BSP.C里面 是进行我们MCU系统的一些[Inaudible]配置 时钟配置 以及我们timer的配置 Watchdog的配置 CapTivate的Config 这个我们应该很熟悉了 就是我们刚才在我们CDC里面 所调试的所有touch相关的参数配置 [Inaudible]配置 Drive Live是我们TI 针对于MSP430平台所推出的 系统性的函数库 好 我们回到 我们的梦函数 那么 在这里呢 我们将要加入两个Callback函数 第一个函数是我们的button group Callback函数 名称叫做my Keypad Callback 该Callback函数 我们所执行的功能是 当我手指按到Keypad 任何一个按钮的时候 我们的LED2点亮 当我手指离开的时候 LED2关闭 大家可以看到 我们在这里调用了CapTivate函数库[Inaudible]所定义的 sensor touch 这样的一个标志位 我们首先判断Keypad这个sensor 的B sensor touch 等于触 也就是我的 状态是touch的状态 并且我要判断上一个 扫描周期 touch状态 Pre-touch 是false 也就是我从没有触摸到触摸 状态转换的一个过程 当这个过程发生的时候 LED2点亮 那么同样的 当上一个周期为touch 这个周期 为没有touch 那我的LED2关闭 第二个Callback函数 是slider Callback函数 我们名为 my slide Callback Slider Callback函数去判断 利用了API所定义的 slider position 这样一个变量 判断当 slider的位置大于500的时候 LED1点亮 当Slider的位置小于500的时候 LED1关闭 那么在撰写完这两个Callback函数以后 我们需要把Callback函数利用我们的 API接口去定义到转换周期中去 那上一讲我们所讲了 我们需要在 Cap App start 函数 调用之前 去注册 Callback函数 那我们现在将我们的Callback函数 注册到这里 这两步函数调用我们就已经将我们的两个 Callback函数去注册到我们两个相应的sensor上面去 在这里呢 我们进入Y循环 当我们的主循环中 系统默认 自动生成的是一个 Demo 的 LED点亮 熄灭的一个过程 这里 我们需要把这一段程序注释掉 我们只需要调用Cap App handler 这样一个函数 这个函数需要在每个循环周期中 进行调用 好的 重新下载程序 运行程序 此时 当我手按上button group 任意按键的时候 大家可以看到 我们的LED2会点亮 但我手指在滑动滑条的时候 滑条的位置大于500 LED1会点亮 小于500以下 LED1关闭 好的 试验3到此为止 谢谢!