Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
temp_adc.c File Reference

Temperature sensor module for LM35 or NTC (10k / 100k) sensor via analog input. More...

#include "std.h"
#include "modules/sensors/temp_adc.h"
#include "mcu_periph/adc.h"
#include "mcu_periph/uart.h"
#include "pprzlink/messages.h"
#include "subsystems/datalink/downlink.h"
#include <BOARD_CONFIG>
#include "subsystems/datalink/telemetry.h"
+ Include dependency graph for temp_adc.c:

Go to the source code of this file.

Macros

#define LM35   0
 
#define NTC   1
 
#define TEMP_ADC_NB_SAMPLES   DEFAULT_AV_NB_SAMPLE
 
#define TEMP_ADC_SYNC_SEND   FALSE
 Send a TEMP_ADC message with every new measurement. More...
 

Functions

float get_temp (uint8_t nr)
 
static float calc_ntc (int16_t raw_adc, uint16_t pull_up_r, float a, float b, float c)
 Calculate the NTC tempreature in celcius based on the Steinhart equation. More...
 
static float calc_lm35 (int16_t raw_temp)
 
static void temp_adc_downlink (struct transport_tx *trans, struct link_device *dev)
 
void temp_adc_init (void)
 Temperature ADC initialize channels. More...
 
void temp_adc_periodic (void)
 

Variables

bool temp_adc_sync_send = false
 
static float temp_c1
 
static float temp_c2
 
static float temp_c3
 

Detailed Description

Temperature sensor module for LM35 or NTC (10k / 100k) sensor via analog input.

Definition in file temp_adc.c.

Macro Definition Documentation

#define LM35   0

Definition at line 55 of file temp_adc.c.

#define NTC   1

Definition at line 56 of file temp_adc.c.

#define TEMP_ADC_NB_SAMPLES   DEFAULT_AV_NB_SAMPLE

Definition at line 91 of file temp_adc.c.

Referenced by temp_adc_init().

#define TEMP_ADC_SYNC_SEND   FALSE

Send a TEMP_ADC message with every new measurement.

Mainly for debug, use with caution, sends message at ~10Hz.

Definition at line 98 of file temp_adc.c.

Referenced by temp_adc_init().

Function Documentation

static float calc_lm35 ( int16_t  raw_temp)
inlinestatic

Definition at line 116 of file temp_adc.c.

Referenced by temp_adc_periodic().

+ Here is the caller graph for this function:

static float calc_ntc ( int16_t  raw_adc,
uint16_t  pull_up_r,
float  a,
float  b,
float  c 
)
inlinestatic

Calculate the NTC tempreature in celcius based on the Steinhart equation.

Definition at line 104 of file temp_adc.c.

References ADC_RESOLUTION.

Referenced by temp_adc_periodic().

+ Here is the caller graph for this function:

float get_temp ( uint8_t  nr)

Definition at line 37 of file temp_adc.c.

References temp_c1, temp_c2, and temp_c3.

static void temp_adc_downlink ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 121 of file temp_adc.c.

References temp_c1, temp_c2, and temp_c3.

Referenced by temp_adc_init(), and temp_adc_periodic().

+ Here is the caller graph for this function:

void temp_adc_init ( void  )

Temperature ADC initialize channels.

Definition at line 129 of file temp_adc.c.

References adc_buf_channel(), DefaultPeriodic, register_periodic_telemetry(), TEMP_ADC_CHANNEL1, TEMP_ADC_CHANNEL2, temp_adc_downlink(), TEMP_ADC_NB_SAMPLES, temp_adc_sync_send, and TEMP_ADC_SYNC_SEND.

+ Here is the call graph for this function:

Variable Documentation

bool temp_adc_sync_send = false

Definition at line 34 of file temp_adc.c.

Referenced by temp_adc_init(), and temp_adc_periodic().

float temp_c1
static

Definition at line 35 of file temp_adc.c.

Referenced by get_temp(), temp_adc_downlink(), and temp_adc_periodic().

float temp_c2
static

Definition at line 35 of file temp_adc.c.

Referenced by get_temp(), temp_adc_downlink(), and temp_adc_periodic().

float temp_c3
static

Definition at line 35 of file temp_adc.c.

Referenced by get_temp(), temp_adc_downlink(), and temp_adc_periodic().