打印
[Atmel]

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

[复制链接]
807|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ddllxxrr 于 2015-2-25 09:58 编辑

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





那么,这个温度传感器在内部ADC的第几道呢?
可以右键击 ADC_TEMPERATURE_SENSOR
到定义它的地方:
/** Definitions for ADC channel number */
enum adc_channel_num {
        ADC_CHANNEL_0 = 0,
        ADC_CHANNEL_1,
        ADC_CHANNEL_2,
        ADC_CHANNEL_3,
        ADC_CHANNEL_4,
        ADC_CHANNEL_5,
        ADC_CHANNEL_6,
        ADC_CHANNEL_7,
#if (SAM4N)
        ADC_CHANNEL_8,
        ADC_CHANNEL_9,
        ADC_CHANNEL_10,
        ADC_CHANNEL_11,
        ADC_CHANNEL_12,
        ADC_CHANNEL_13,
        ADC_CHANNEL_14,
        ADC_CHANNEL_15,
#endif
#ifdef TEMP_SENSOR
        ADC_TEMPERATURE_SENSOR,
#endif
        ADC_CHANNEL_ALL = 0xFFFF
};
可见它是第16道,定义ADC如下:
struct adc_config adc_cfg;

        adc_get_config_defaults(&adc_cfg);

        adc_init(ADC, &adc_cfg);
        adc_channel_enable(ADC,ADC_TEMPERATURE_SENSOR);

        adc_set_trigger(ADC, ADC_TRIG_SW);

        struct adc_temp_sensor_config adc_temp_sensor_cfg;

        adc_temp_sensor_get_config_defaults(&adc_temp_sensor_cfg);
        
        adc_temp_sensor_set_config(ADC, &adc_temp_sensor_cfg);

        adc_set_callback(ADC, ADC_INTERRUPT_EOC_16,
                        adc_temp_sensor_end_conversion, 1);

        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

2398

主题

6949

帖子

66

粉丝