📄 adc_task.h
字号:
/*
**
****************************************************************************
**
**
** Copyright (c) 2007 - Atmel Corporation
** Proprietaty Information
**
** Project : ATMEGA88 + ATA6824 High Temperature H-bridge System
** Module : ADC_task.h
** Description : Header file
** Manage ADC to acquire Current (VSHUNT) Supply voltage (Vbat)
** and Speed set
**
** Version : Date: Author: Comment:
** 1.0 24.01.2007 F.G. Creation
**
** LICENSE -
**
** ATMEL - 2007
** All software programs are provided 'as is' without warranty of any kind:
** Atmel does not state the suitability of the provided materials for any
** purpose. Atmel hereby disclaim all warranties and conditions with regard
** to the provided software, including all implied warranties, fitness for
** a particular purpose, title and non-infringement.In no event will Atmel
** be liable for any indirect or consequential damages or any damages
** whatsoever resulting from the usage of the software program.
****************************************************************************
**
*/
#ifndef ADC_TASK_H
#define ADC_TASK_H
/*_____ I N C L U D E S ____________________________________________________*/
/*_____ M A C R O S ________________________________________________________*/
//! select ADC channel
#define Set_ADC_Channel(Channel) (ADMUX &= ( (1<<REFS1) | (1<<REFS0) | (1<<ADLAR)), \
ADMUX |= Channel & ((1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (1<<MUX0)))
//! Start a new ADC acquistion
#define ADC_start_conv() (ADCSRA |= (1<<ADSC))
//! Check end conversion interrupt flag
#define ADC_end_conv() ((ADCSRA & (1<<ADIF)) == (1<<ADIF))
//! reset adc flag and start a new conversion
#define ADC_clear_end_conv_flag() (ADCSRA |= (1<<ADIF))
//! ADC data register
#define ADC_data_reg() (ADC)
/*_____ D E F I N I T I O N S ______________________________________________*/
//! @typedef ADC_state_t ADC status definitions
//! ADC_state_t is used to schedule ADC acquisitions
typedef enum
{
ADC_INIT_TASK, //!< Start current measurement
ADC_WAIT_CURRENT_MEAS, //!< Wait current measurement aquisition
ADC_WAIT_SPEED_SET_MEAS, //!< Wait desired speed measurement aquisition
ADC_WAIT_VBAT_MEAS, //!< Wait Vbat end conversion
}ADC_state_t; // ADC conversions state machine type definition
// @defgroup ADC_channels ADC channels definitions
// @{
#define ADC0 0x00
#define ADC1 ( (1<<MUX0) )
#define ADC2 ( (1<<MUX1) )
#define ADC3 ( (1<<MUX1) | (1<<MUX0) )
#define ADC4 ((1<<MUX2) )
#define ADC5 ((1<<MUX2) | (1<<MUX0) )
#define ADC6 ((1<<MUX2) | (1<<MUX1) )
#define ADC7 ((1<<MUX2) | (1<<MUX1) | (1<<MUX0) )
// @}
/*_____ G L O B A L S ______________________________________________________*/
/*_____ P R O T O T Y P E S - D E C L A R A T I O N ________________________*/
void ADC_Init(void); // ADC initialization
void ADC_task(void); // Manages ADC acquisitions
unsigned int adc_get_speed(void); // Returns speed set value
unsigned int adc_get_current(void); // Returns measured current
unsigned int adc_get_V_bat(void); // Returns measured V_bat
#endif //ADC_TASK_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -