bes2300之电源管理(六)

这里主要是分析一下充电插拔的处理,以及电池电量的监测的逻辑

初始化流程

/* 初始化流程 */
app_init
	app_battery_open
		/* 创建电池电量检测定时器 */
		osTimerCreate (osTimer(APP_BATTERY), ...)
		/* 创建插拨防抖的定时器 */
		osTimerCreate (osTimer(APP_BATTERY_PLUGINOUT_DEBOUNCE), ...);

		/*注册app线程中APP_MODUAL_BATTERY模块的消息处理函数*/
		app_set_threadhandle(APP_MODUAL_BATTERY, app_battery_handle_process);

		/* 注册中断处理函数 */
		app_battery_charger_indication_open
			pmu_charger_set_irq_handler(app_battery_charger_handler);

		/* 初始化io口 */
		hal_iomux_init(&app_battery_ext_charger_detecter_cfg,...
		hal_iomux_init(&app_battery_ext_charger_enable_cfg,...

		/* 启动电池电量管理的定时器 */
		app_battery_start

当有插拔事件时

/* 当usb有插拔时触发中断 */
app_battery_charger_handler
	/*发APP_BATTERY_STATUS_PLUGINOUT状态给到app线程,最终由 app_battery_handle_process 回调函数处理*/
	app_battery_event_process


/*app线程中APP_MODUAL_BATTERY模块消息回调函数*/
app_battery_handle_process
	APP_BATTERY_GET_STATUS(msg_body->message_id, status);

	/* 上面触发的插拔中断发送的消息,在这里处理 */
	if(status == APP_BATTERY_STATUS_PLUGINOUT)
		/* 启动防抖定时器 */
		app_battery_pluginout_debounce_start
			/* 定时器的回调函数 */
			app_battery_pluginout_debounce_handler
				/* 启动3(次)*50ms之后,发消息将插入状态给到线程处理*/
				/* 最终处理结果为app_battery_measure.status设置为APP_BATTERY_STATUS_CHARGING */
				app_battery_event_process(APP_BATTERY_STATUS_CHARGING, status_charger);
	else/* 正常使用和充电状态的其他消息*/
		switch (app_battery_measure.status)
			case APP_BATTERY_STATUS_NORMAL
				/* 电池正常使用时的处理函数 */
				app_battery_handle_process_normal

			case APP_BATTERY_STATUS_CHARGING
				/* 电池充电状态下的处理函数*/
				app_battery_handle_process_charging

电池电量监测

/* 电池电量管理定时器回调函数,开机之后就会启动 */
app_battery_timer_handler
	/* 启动adc检测,并设置adc中断处理函数 */
	hal_gpadc_open(..., app_battery_irqhandler);
		/* adc检测中断函数,*/
		app_battery_irqhandler
			/* 更新电池电量,通过app_battery_measure.cb实际指向app_battery_event_process*/
			/* 将电量信息发给app_battery_handle_process处理,处理完之后会重新启动该定时器*/
			app_battery_measure.cb->app_battery_event_process

 

 

相关资料请到<bes2300开发调试笔记>文章底部的网盘链接中下载!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在云巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值