按键控制灯亮灭程序代码Word格式文档下载.docx

上传人:b****4 文档编号:14002262 上传时间:2022-10-16 格式:DOCX 页数:11 大小:18.24KB
下载 相关 举报
按键控制灯亮灭程序代码Word格式文档下载.docx_第1页
第1页 / 共11页
按键控制灯亮灭程序代码Word格式文档下载.docx_第2页
第2页 / 共11页
按键控制灯亮灭程序代码Word格式文档下载.docx_第3页
第3页 / 共11页
按键控制灯亮灭程序代码Word格式文档下载.docx_第4页
第4页 / 共11页
按键控制灯亮灭程序代码Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

按键控制灯亮灭程序代码Word格式文档下载.docx

《按键控制灯亮灭程序代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《按键控制灯亮灭程序代码Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

按键控制灯亮灭程序代码Word格式文档下载.docx

hal_flash.h"

//初始化一些配置

/*********************************************************************

*MACROS//宏指令

*/

*CONSTANTS//常量

//MaximunnumberofVddsamplescheckedbeforegoon

#defineMAX_VDD_SAMPLES3

#defineZMAIN_VDD_LIMITHAL_ADC_VDD_LIMIT_4//工作电压限制

*TYPEDEFS//典型定义

*GLOBALVARIABLES//全局变量

*EXTERNALVARIABLES//外部变量

*EXTERNALFUNCTIONS//外部函数

externboolHalAdcCheckVdd(uint8limit);

//外部转换器工作电压检查

*LOCALVARIABLES//局部变量

*LOCALFUNCTIONS//局部函数

staticvoidzmain_dev_info(void);

staticvoidzmain_ext_addr(void);

staticvoidzmain_vdd_check(void);

#ifdefLCD_SUPPORTED

staticvoidzmain_lcd_init(void);

#endif

*@fnmain

*@brief

*@returndon'

tcare

intmain(void)

{

//关闭中断

osal_int_disable(INTS_ALL);

//参数为INTS_ALL则关闭所有中断,否则关闭相应中断

//InitializationforboardrelatedstuffsuchasLEDs//处理器运行时钟,LEDIO口设置

HAL_BOARD_INIT();

//初始化板子硬件部分

//Makesuresupplyvoltageishighenoughtorun//确保电源电压足够高来运行

zmain_vdd_check();

//InitializeboardI/O//初始化I/O

InitBoard(OB_COLD);

//InitialzeHALdrivers//硬件驱动

HalDriverInit();

//InitializeNVSystem//nv系统初始化

osal_nv_init(NULL);

//InitializetheMAC//初始化计算机系统

ZMacInit();

//Determinetheextendedaddress//确定扩展地址

zmain_ext_addr();

//InitializebasicNVitems//初始化虚拟条目

zgInit();

#ifndefNONWK

//SincetheAFisn'

tatask,callit'

sinitializationroutine//初始化程序

afInit();

//Initializetheoperatingsystem//初始化操作系统

osal_init_system();

//Allowinterrupts//允许中断

osal_int_enable(INTS_ALL);

//Finalboardinitialization//最终的硬件初始化

InitBoard(OB_READY);

//Displayinformationaboutthisdevice//显示关于这个设备的信息

zmain_dev_info();

/*DisplaythedeviceinfoontheLCD*//在液晶屏上显示设备信息

zmain_lcd_init();

#ifdefWDT_IN_PM1

//如果监视器被占用,这个位置可以启用

WatchDogEnable(WDTIMX);

osal_start_system();

//操作系统初始化

//NoReturnfromhere此处无返回

return0;

//Shouldn'

tgethere.//禁止到达这里

}//main()

*@fnzmain_vdd_check*@briefCheckiftheVddisOKtoruntheprocessor.

*@returnReturnifVddisok;

otherwise,flashLED,thenreset

*********************************************************************/

staticvoidzmain_vdd_check(void)//确认VDD是否达到运行处理器的要求,如果没有达到就会闪烁LED

uint8vdd_passed_count=0;

booltoggle=0;

//RepeatgettingthesampleuntilnumberoffailuresorsuccesseshitsMAX//重复检测VDD的状态,直到成功检测的次数达到规定过的要求为止,估计是等电源稳定

//thenbasedonthecountvalue,determineifthedeviceisreadyornot//然后根据计算值,确定设备是否准备好

while(vdd_passed_count<

MAX_VDD_SAMPLES)//工作电压最大值校验

{

if(HalAdcCheckVdd(ZMAIN_VDD_LIMIT))//转换器电压

vdd_passed_count++;

//Keeptrack#timesVddpassesinarow计算通过的电压

MicroWait(10000);

//延时10毫秒

else

vdd_passed_count=0;

//重置通过的电压

MicroWait(50000);

//延时50毫秒

//50毫秒后再次尝试

//HalAdcCheckVdd()

【hal_adc.c】函数用来检查VDD是否大于或等于最小的要求.

/*toggleLED1andLED2*//切换LED1、LED2

if(vdd_passed_count==0)

if((toggle=!

(toggle)))

HAL_TOGGLE_LED1();

HAL_TOGGLE_LED2();

}

/*turnoffLED1关闭LED1

HAL_TURN_OFF_LED1();

HAL_TURN_OFF_LED2();

}

/**************************************************************************************************

*@fnzmain_ext_addr

*

*@briefExecuteaprioritizedsearchforavalidextendedaddressandwritetheresults

*intotheOSALNVsystemforusebythesystem.TemporaryaddressnotsavedtoNV.

*inputparameters

*None.

*outputparameters

*@returnNone.

***************************************************************************

staticvoidzmain_ext_addr(void)//静态的外部地址扩展

uint8nullAddr[Z_EXTADDR_LEN]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

uint8writeNV=TRUE;

//将8位数位写入虚拟化层

//Firstcheckwhetheranon-erasedextendedaddressexistsintheOSALNV.//检查非扩展地址是否存在于操作虚拟化层

if((SUCCESS!

=osal_nv_item_init(ZCD_NV_EXTADDR,Z_EXTADDR_LEN,NULL))||

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1