Jennic-WSN专业综合训练文档-基础通信实验2.doc_第1页
Jennic-WSN专业综合训练文档-基础通信实验2.doc_第2页
Jennic-WSN专业综合训练文档-基础通信实验2.doc_第3页
Jennic-WSN专业综合训练文档-基础通信实验2.doc_第4页
Jennic-WSN专业综合训练文档-基础通信实验2.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WSN基础通信实验讲义2 GPIO及LCD使用实验 四、基本实验1. 按键控制LED将如下给定代码添加到工程程序框架中,并给予注释,然后编译、下载、运行,分别按动按键,观测实验现象。/Include files#include #include /Macro Definitions#define APP_TICK_PERIOD_ms 500/Local Function PrototypesPRIVATE void vAppTick(void *pvMsg, uint8 u8Param);PRIVATE void vProcessSplashKeyPress(uint8 u8KeyMap);PRIVATE void vAppTickLED(void *pvMsg, uint8 u8Param);/Local VariablesPRIVATE bool_t bNwkStarted = FALSE;PRIVATE bool_t NextReadStart = TRUE ;PRIVATE uint8 u8Msg;PRIVATE uint8 u8TimerId;PRIVATE uint8 LED=3;PRIVATE bool_t bToggle;PRIVATE void vInit(void) (void)JZS_u32InitSystem(TRUE); vLedInitFfd(); vLedControl(0,TRUE); vLedControl(1,FALSE); vLedControl(2,FALSE); vLedControl(3,FALSE); vButtonInitFfd(); (void)bBosRun(TRUE);PRIVATE void vAppTick(void *pvMsg, uint8 u8Param) NextReadStart = TRUE;PRIVATE void vProcessSplashKeyPress(uint8 u8KeyMap) switch (u8KeyMap) case BUTTON_0_MASK: LED=0; break; case BUTTON_1_MASK: LED=1; break; case BUTTON_2_MASK: LED=2; break; case BUTTON_3_MASK: LED=3; break; default: break; vLedControl(0,FALSE); vLedControl(1,FALSE); vLedControl(2,FALSE); vLedControl(3,FALSE);PRIVATE void vAppTickLED(void *pvMsg, uint8 u8Param) bToggle=!bToggle; vLedControl(LED,bToggle); (void)bBosCreateTimer(vAppTickLED, &u8Msg, 0, (APP_TICK_PERIOD_ms/10), &u8TimerId);void JZA_vAppEventHandler(void) uint8 u8ReadButton=0; if (!bNwkStarted) return; u8ReadButton=u8ButtonReadFfd(); if (bNwkStarted&NextReadStart&u8ReadButton) NextReadStart = FALSE; vProcessSplashKeyPress(u8ReadButton); (void)bBosCreateTimer(vAppTick, &u8Msg, 0, (APP_TICK_PERIOD_ms/10), &u8TimerId); PUBLIC void JZA_vStackEvent(teJZS_EventIdentifier eEventId, tuJZS_StackEvent *puStackEvent) if (eEventId = JZS_EVENT_NWK_STARTED) bNwkStarted = TRUE; vLedControl(0, FALSE); (void)bBosCreateTimer(vAppTickLED, &u8Msg, 0, (APP_TICK_PERIOD_ms/10), &u8TimerId); 2. 按键控制LCD将如下给定代码添加到工程程序框架中,并给予注释,然后编译、下载、运行,分别按动按键,观测实验现象。/Include files#include Lcd_JM12864_Driver.h/Macro Definitions#define LCD/PRIVATE void vInit(void)#ifdef LCD vLcdInit();#endifPRIVATE void vProcessSplashKeyPress(uint8 u8KeyMap) switch (u8KeyMap) case BUTTON_0_MASK: /如果按下按键1 LED=0;#ifdef LCD vLcdShadowClear(); /初始化该影子内存 au8Shadow0=0x20;/空格 au8Shadow1=0x20;/空格 au8Shadow2=0x20;/空格 au8Shadow3=0x4A;/J au8Shadow4=0x45;/E au8Shadow5=0x4E;/N au8Shadow6=0x4E;/N au8Shadow7=0x49;/I au8Shadow8=0x43;/C au8Shadow9=0x2D;/- au8Shadow10=0x57;/W au8Shadow11=0x53;/S au8Shadow12=0x4E;/N au8Shadow13=0x20;/空格 au8Shadow14=0x20;/空格 au8Shadow15=0x20;/空格 vLcdRefresh(); /内容复制到lcd的ddram中并显示#endif break; case BUTTON_1_MASK: /如果按下按键1 LED=1;#ifdef LCD vLcdShadowClear(); /清除影子内存 vLcdTextWrite(1,1,江苏技术师范学院); vLcdTextWrite(2,3,欢迎您!); vLcdTextWrite(3,1,提供无线传感器网); vLcdTextWrite(4,2,开发技术支持); vLcdRefresh(); /内容复制到lcd的ddram中并显示#endif break; case BUTTON_2_MASK: /如果按下按键2 LED=2;#ifdef LCD vLcdShadowClear(); vLcdRefresh(); vLcdBitmapShadowClear(); /初始化影子内存,全部清零 vLcdBitmapWrite(1,1,1234); vLcdBitmapWrite(5,7,3456); vLcdBitmapWrite(10,2,5678); vLcdBitmapWrite(32,5,7890); vLcdBitmapWrite(33,1,90ab); vLcdBitmapWrite(35,7,abcd); vLcdBitmapWrite(40,2,cdef); vLcdBitmapWrite(62,5,efde); vLcdBitmapRefresh(); /全部内容复制到gdram中显示 vLcdBitmapDisplayOnOff (1); /打开绘图显示功能 vLcdModeExchange(0); /改变模式为基本指令模式#endif break; case BUTTON_3_MASK: /如果按下按键3 LED=3;#ifdef LCD vLcdModeExchange(1); /改模式为扩充指令模式 vLcdBitmapDisplayOnOff (0); /关闭绘图显示功能 v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论