Init
This commit is contained in:
commit
f837b94a9d
|
|
@ -0,0 +1,86 @@
|
|||
//
|
||||
// Created by ilya on 14.12.23.
|
||||
//
|
||||
#include <stdbool.h>
|
||||
#include "Adcs.h"
|
||||
#include "at32f435_437.h"
|
||||
|
||||
|
||||
//todo Проверить правильность инициализации Adcs
|
||||
void Adc_Battery(tAdc *env){
|
||||
//*gpio*//
|
||||
gpio_init_type gpio_initstructure;
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_ADC2_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_default_para_init(&gpio_initstructure);
|
||||
gpio_initstructure.gpio_mode = GPIO_MODE_ANALOG;
|
||||
gpio_initstructure.gpio_pins = GPIO_PINS_2;
|
||||
gpio_init(GPIOA, &gpio_initstructure);
|
||||
|
||||
//*adc*//
|
||||
env->vcc = ADC_Initial(ADC2, ADC_CHANNEL_2,0,env->calibCoef,1);
|
||||
env->vccIo = vAdcGetIo(&env->vcc);
|
||||
}
|
||||
|
||||
void Adc_BoardVoltage(tAdc *env){
|
||||
// nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
|
||||
//*gpio*//
|
||||
gpio_init_type gpio_initstructure;
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_ADC1_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_default_para_init(&gpio_initstructure);
|
||||
gpio_initstructure.gpio_mode = GPIO_MODE_ANALOG;
|
||||
gpio_initstructure.gpio_pins = GPIO_PINS_3;
|
||||
gpio_init(GPIOC, &gpio_initstructure);
|
||||
|
||||
env->vcc = ADC_Initial(ADC1, ADC_CHANNEL_13,0,env->calibCoef,1);
|
||||
env->vccIo = vAdcGetIo(&env->vcc);
|
||||
}
|
||||
|
||||
void Adc_AntGnss(tAdc *env){
|
||||
//*gpio*//
|
||||
gpio_init_type gpio_initstructure;
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_ADC3_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_default_para_init(&gpio_initstructure);
|
||||
gpio_initstructure.gpio_mode = GPIO_MODE_ANALOG;
|
||||
gpio_initstructure.gpio_pins = GPIO_PINS_3;
|
||||
gpio_init(GPIOA, &gpio_initstructure);
|
||||
|
||||
env->vcc = ADC_Initial(ADC3, ADC_CHANNEL_3,0,1,1);
|
||||
env->vccIo = vAdcGetIo(&env->vcc);
|
||||
|
||||
}
|
||||
tAdcs ADCS;
|
||||
|
||||
void Adcs_Init() {
|
||||
tAdcs *env = &ADCS;
|
||||
env->battery.calibCoef = (float)1.60;
|
||||
env->boardVoltageVal.calibCoef = 1;// 8.97
|
||||
Adc_AntGnss(&env->antGnss);
|
||||
Adc_Battery(&env->battery);
|
||||
Adc_BoardVoltage(&env->boardVoltageVal);
|
||||
}
|
||||
|
||||
bool Adcs_SetCalibBoardVoltage(tAdc *env, float *externalCalibCoef) {
|
||||
env->calibCoef = 1;
|
||||
Adc_BoardVoltage(env);
|
||||
uint16_t volts = AdcGet(&env->vccIo, 1000);
|
||||
*externalCalibCoef = (float)12000.0/(float)volts;
|
||||
env->calibCoef = *externalCalibCoef;
|
||||
Adc_BoardVoltage(env);
|
||||
volts = AdcGet(&env->vccIo, 1000);
|
||||
if((volts>11500) && (volts<12500)){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void Adcs_InitBip() {
|
||||
tAdcs *env = &ADCS;
|
||||
// Adc_BipButtons(&env->bipADC);
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
//
|
||||
// Created by ilya on 14.12.23.
|
||||
//
|
||||
|
||||
#ifndef ERA_ELEMENT_2_ADCS_H
|
||||
#define ERA_ELEMENT_2_ADCS_H
|
||||
|
||||
#include "AdcArtery.h"
|
||||
|
||||
typedef struct {
|
||||
tAdcArtery vcc;
|
||||
tAdcIO vccIo;
|
||||
float calibCoef;
|
||||
} tAdc;
|
||||
|
||||
typedef struct {
|
||||
tAdc antGnss;
|
||||
tAdc battery;
|
||||
tAdc boardVoltageVal;
|
||||
} tAdcs;
|
||||
|
||||
extern tAdcs ADCS;
|
||||
|
||||
bool Adcs_SetCalibBoardVoltage(tAdc *env, float *externalCalibCoef);
|
||||
|
||||
void Adcs_Init();
|
||||
|
||||
void Adc_BoardVoltage(tAdc *env);
|
||||
|
||||
void Adcs_InitBip();
|
||||
|
||||
#endif //ERA_ELEMENT_2_ADCS_H
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"dep": [
|
||||
|
||||
],
|
||||
"cmake": {
|
||||
"inc_dirs": [
|
||||
"./"
|
||||
],
|
||||
"srcs": [
|
||||
"./**.c"
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue