Chinaunix首页 | 论坛 | 博客
  • 博客访问: 387605
  • 博文数量: 61
  • 博客积分: 4650
  • 博客等级: 上校
  • 技术积分: 786
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-11 21:07
个人简介

少抱怨,多实干;

文章分类

全部博文(61)

文章存档

2017年(1)

2016年(13)

2015年(1)

2013年(2)

2011年(1)

2010年(3)

2009年(23)

2008年(17)

我的朋友

分类: 嵌入式

2016-04-12 14:46:16

该app的位置:
Fimrware/src/drivers/stm32/adc.cpp

adc类天实例化时,先注册一个设备:/dev/adc0
然后会向NUTTX内核注册一个周期性运行函数:

点击(此处)折叠或打开

  1. int
  2. ADC::open_first(struct file *filp)
  3. {
  4.     /* get fresh data */
  5.     _tick();

  6.     /* and schedule regular updates */
  7.     hrt_call_every(&_call, _tickrate, _tickrate, _tick_trampoline, this);

  8.     return 0;
  9. }

点击(此处)折叠或打开

  1. hrt_call_every(&_call, _tickrate, _tickrate, _tick_trampoline, this);
函数"_tick_trampoline"就是被系统周期执行的函数.
这个函数的功能就是:
1.读取ADC通道的数据到adc_msg_s结构中
2.uorb发布数据到system_power中.
当然system_power中并没有包含所有ADC的数据,具体哪些数据可以看system_power结构的定义.


open_first(struct file *filp)函数是父类:device::CDev的虚拟函数,它会被CDdev::open函数调用 .

阅读(2971) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~