[Atmel] 跑一下SAM4N例程(二):ADC内部温度 

[复制链接]
1141|2
ddllxxrr 发表于 2015-2-24 10:12 | 显示全部楼层 |阅读模式
本帖最后由 ddllxxrr 于 2015-2-25 09:58 编辑

这个例程我觉得挺有用,毕竟不用其它的温度传感器就可搞定温度打开例程很方便,插上开发板点例程就可:





那么,这个温度传感器在内部ADC的第几道呢?
可以右键击 ADC_TEMPERATURE_SENSOR
到定义它的地方:
  1. /** Definitions for ADC channel number */
  2. enum adc_channel_num {
  3.         ADC_CHANNEL_0 = 0,
  4.         ADC_CHANNEL_1,
  5.         ADC_CHANNEL_2,
  6.         ADC_CHANNEL_3,
  7.         ADC_CHANNEL_4,
  8.         ADC_CHANNEL_5,
  9.         ADC_CHANNEL_6,
  10.         ADC_CHANNEL_7,
  11. #if (SAM4N)
  12.         ADC_CHANNEL_8,
  13.         ADC_CHANNEL_9,
  14.         ADC_CHANNEL_10,
  15.         ADC_CHANNEL_11,
  16.         ADC_CHANNEL_12,
  17.         ADC_CHANNEL_13,
  18.         ADC_CHANNEL_14,
  19.         ADC_CHANNEL_15,
  20. #endif
  21. #ifdef TEMP_SENSOR
  22.         ADC_TEMPERATURE_SENSOR,
  23. #endif
  24.         ADC_CHANNEL_ALL = 0xFFFF
  25. };
可见它是第16道,定义ADC如下:
  1. struct adc_config adc_cfg;

  2.         adc_get_config_defaults(&adc_cfg);

  3.         adc_init(ADC, &adc_cfg);
  4.         adc_channel_enable(ADC,ADC_TEMPERATURE_SENSOR);

  5.         adc_set_trigger(ADC, ADC_TRIG_SW);

  6.         struct adc_temp_sensor_config adc_temp_sensor_cfg;

  7.         adc_temp_sensor_get_config_defaults(&adc_temp_sensor_cfg);
  8.         
  9.         adc_temp_sensor_set_config(ADC, &adc_temp_sensor_cfg);

  10.         adc_set_callback(ADC, ADC_INTERRUPT_EOC_16,
  11.                         adc_temp_sensor_end_conversion, 1);

  12.         adc_start_software_conversion(ADC);


以后便是循环地显示ADC的温度值,运行结果如下:






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1威望 +1 收起 理由
okyouwin + 1 很给力!

查看全部评分

okyouwin 发表于 2015-2-26 15:27 | 显示全部楼层
给力!多谢楼主了。
wsnsyy 发表于 2015-2-26 15:30 | 显示全部楼层
這是在討論什麽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7004

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部