From 6521b2c4bd535825af2669ec6c6a2d5af9e0459a Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 2 Jun 2025 13:26:40 +0300 Subject: [PATCH] Init --- Amplifier.c | 445 +++++++++++++++++++++++++++++++++++++++++++++++++++ Amplifier.h | 101 ++++++++++++ modular.json | 10 ++ 3 files changed, 556 insertions(+) create mode 100644 Amplifier.c create mode 100644 Amplifier.h create mode 100644 modular.json diff --git a/Amplifier.c b/Amplifier.c new file mode 100644 index 0000000..07a7a4c --- /dev/null +++ b/Amplifier.c @@ -0,0 +1,445 @@ +// +// Created by ilya on 06.05.24. +// + +#include "Amplifier.h" +//#include "Amplifier_MAX9768.h" +#include "Amplifier_AW87579.h" + +#include "SystemDelayInterface.h" +#include "DeviceStorage.h" +#include + +uint8_t ProtMethods_AmplGetLvlVoltIndex(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->voltages); i++){ + if(env->voltages[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetLvlAmperIndex(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=1; i < sizeof(env->ampers); i++){ + if(env->ampers[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetLvlVolumeIndex(tAmplifier *env, uint8_t indexValule) { + for(uint16_t i=0; i < sizeof(env->levels); i++){ + if(env->levels[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetADP_BoostStep(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->boost_steps); i++){ + if(env->boost_steps[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetADP_En_Boost(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->confStr->data); i++){ + if(env->confStr->data[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetADP_BoostVTH1(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->boost_vths1); i++){ + if(env->boost_vths1[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetADP_BoostVTH2(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->boost_vths2); i++){ + if(env->boost_vths2[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetADP_BoostMode(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->adp_boostModes); i++){ + if(env->adp_boostModes[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetAGC1_AttackTime(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->agc1_att_times); i++){ + if(env->agc1_att_times[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetAGC3_RelTime(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->agc3_relTimes); i++){ + if(env->agc3_relTimes[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetAGC3_AttTime(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->agc3_attTimes); i++){ + if(env->agc3_attTimes[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetAGC3_OutPower(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->agc3_out_powers); i++){ + if(env->agc3_out_powers[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetEN_Boost(tAmplifier *env, uint8_t indexValule) { + if(env->en_boost == indexValule){ + return 1; + } + return 0; +} + +uint8_t ProtMethods_AmplGetAGC2_AttTime(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->agc2_attTimes); i++){ + if(env->agc2_attTimes[i] == indexValule){ + return i; + } + } + return 0; +} + +uint8_t ProtMethods_AmplGetAGC2_OutPower(tAmplifier *env, uint8_t indexValule) { + for(uint8_t i=0; i < sizeof(env->agc2Opr_out_powers); i++){ + if(env->agc2Opr_out_powers[i] == indexValule){ + return i; + } + } + return 0; +} + +void ProtMethodsAdd_AmplifierSetCard(tAmplifier *env) { + if(env != NULL) { + env->levels[0] = PA_GAIN_0dB; + env->levels[1] = PA_GAIN_1_5dB; + env->levels[2] = PA_GAIN_3dB; + env->levels[3] = PA_GAIN_4_5dB; + env->levels[4] = PA_GAIN_6dB; + env->levels[5] = PA_GAIN_7_5dB; + env->levels[6] = PA_GAIN_9dB; + env->levels[7] = PA_GAIN_10_5dB; + env->levels[8] = PA_GAIN_12dB; + env->levels[9] = PA_GAIN_13_5dB; + env->levels[10] = PA_GAIN_15dB; + env->levels[11] = PA_GAIN_16_5dB; + env->levels[12] = PA_GAIN_18dB; + env->levels[13] = PA_GAIN_19_5dB; + env->levels[14] = PA_GAIN_21dB; + env->levels[15] = PA_GAIN_22_5dB; + env->levels[16] = PA_GAIN_24dB; + env->levels[17] = PA_GAIN_25_5dB; + env->levels[18] = PA_GAIN_27dB; + + env->ampers[0] = BST_IPEAK_2A; + env->ampers[1] = BST_IPEAK_2A; + env->ampers[2] = BST_IPEAK_2_25A; + env->ampers[3] = BST_IPEAK_2_5A; + env->ampers[4] = BST_IPEAK_2_75A; + env->ampers[5] = BST_IPEAK_3A; + env->ampers[5] = BST_IPEAK_3_25A; + env->ampers[6] = BST_IPEAK_3_5A; + env->ampers[7] = BST_IPEAK_3_75A; + env->ampers[8] = BST_IPEAK_4A; + env->ampers[9] = BST_IPEAK_4_25A; + env->ampers[10] = BST_IPEAK_4_5A; + + env->voltages[0] = BST_VOUT_6_5V; + env->voltages[1] = BST_VOUT_6_75V; + env->voltages[2] = BST_VOUT_7V; + env->voltages[3] = BST_VOUT_7_25V; + env->voltages[4] = BST_VOUT_7_5V; + env->voltages[5] = BST_VOUT_7_75V; + env->voltages[6] = BST_VOUT_8V; + env->voltages[7] = BST_VOUT_8_25V; + env->voltages[8] = BST_VOUT_8_5V; + env->voltages[9] = BST_VOUT_8_75V; + env->voltages[10] = BST_VOUT_9V; + env->voltages[11] = BST_VOUT_9_25V; + env->voltages[12] = BST_VOUT_9_5V; + env->voltages[13] = BST_VOUT_9_75V; + env->voltages[14] = BST_VOUT_10V; + env->voltages[15] = BST_VOUT_10_25V; + env->voltages[16] = BST_VOUT_10_5V; + env->voltages[17] = BST_VOUT_10_75V; + env->voltages[18] = BST_VOUT_11V; + env->voltages[19] = BST_VOUT_11_25V; + env->voltages[20] = BST_VOUT_11_5V; + env->voltages[21] = BST_VOUT_11_75V; + env->voltages[22] = BST_VOUT_12V; + + env->boost_vths1[0] = SET_BOOST_VTH1_0_1W; + env->boost_vths1[1] = SET_BOOST_VTH1_0_2W; + env->boost_vths1[2] = SET_BOOST_VTH1_0_3W; + env->boost_vths1[3] = SET_BOOST_VTH1_0_4W; + + env->boost_vths2[0] = SET_BOOST_VTH2_1_2W; + env->boost_vths2[1] = SET_BOOST_VTH2_1_4W; + env->boost_vths2[2] = SET_BOOST_VTH2_1_6W; + env->boost_vths2[3] = SET_BOOST_VTH2_1_8W; + env->boost_vths2[4] = SET_BOOST_VTH2_2_0W; + env->boost_vths2[5] = SET_BOOST_VTH2_2_2W; + + env->boost_steps[0] = ADP_LOW_STEP_1st_BST_OUT_6_5V; + env->boost_steps[1] = ADP_LOW_STEP_1st_BST_OUT_6_75V; + env->boost_steps[2] = ADP_LOW_STEP_1st_BST_OUT_7V; + env->boost_steps[3] = ADP_LOW_STEP_1st_BST_OUT_7_25V; + + env->adp_boostModes[0] = ADPBOOST_MODE_PassThrough; + env->adp_boostModes[1] = ADPBOOST_MODE_ForceBOOST; + env->adp_boostModes[2] = ADPBOOST_MODE_MD1; + env->adp_boostModes[3] = ADPBOOST_MODE_MD2; + + env->agc1_att_times[0] = AGC1_ATT_TIME_0_04ms_dB; + env->agc1_att_times[1] = AGC1_ATT_TIME_0_08ms_dB; + env->agc1_att_times[2] = AGC1_ATT_TIME_0_16ms_dB; + env->agc1_att_times[3] = AGC1_ATT_TIME_0_32ms_dB; + + + env->agc3_out_powers[0] = AGC3OP_0_5W_8ohm_OR_0_67W_6ohm; + env->agc3_out_powers[1] = AGC3OP_0_6W_8ohm_OR_0_8W_6ohm; + env->agc3_out_powers[2] = AGC3OP_0_7W_8ohm_OR_0_93W_6ohm; + env->agc3_out_powers[3] = AGC3OP_0_8W_8ohm_OR_1_07W_6ohm; + env->agc3_out_powers[4] = AGC3OP_0_9W_8ohm_OR_1_2W_6ohm; + env->agc3_out_powers[5] = AGC3OP_1W_8ohm_OR_1_33W_6ohm; + env->agc3_out_powers[6] = AGC3OP_1_1W_8ohm_OR_1_47W_6ohm; + env->agc3_out_powers[7] = AGC3OP_1_2W_8ohm_OR_1_6W_6ohm; + env->agc3_out_powers[8] = AGC3OP_1_3W_8ohm_OR_1_73W_6ohm; + env->agc3_out_powers[9] = AGC3OP_1_4W_8ohm_OR_1_87W_6ohm; + env->agc3_out_powers[10] = AGC3OP_1_5W_8ohm_OR_2W_6ohm; + env->agc3_out_powers[11] = AGC3OP_1_6W_8ohm_OR_2_13W_6ohm; + env->agc3_out_powers[12] = AGC3OP_1_7W_8ohm_OR_2_27W_6ohm; + env->agc3_out_powers[13] = AGC3OP_1_8W_8ohm_OR_2_4W_6ohm; + env->agc3_out_powers[14] = AGC3OP_1_9W_8ohm_OR_2_53W_6ohm; + env->agc3_out_powers[15] = AGC3OP_2W_8ohm_OR_2_67W_6ohm; + + env->agc3_relTimes[0] = AGC3_REL_TIME_5_12ms_dB; + env->agc3_relTimes[1] = AGC3_REL_TIME_10_24ms_dB; + env->agc3_relTimes[2] = AGC3_REL_TIME_20_48ms_dB; + env->agc3_relTimes[3] = AGC3_REL_TIME_40_56ms_dB; + env->agc3_relTimes[4] = AGC3_REL_TIME_81_92ms_dB; + env->agc3_relTimes[5] = AGC3_REL_TIME_163_84ms_dB; + env->agc3_relTimes[6] = AGC3_REL_TIME_327_68ms_dB; + env->agc3_relTimes[7] = AGC3_REL_TIME_655_36ms_dB; + + env->agc3_attTimes[0] = AGC3_ATT_TIME_1_28ms_dB; + env->agc3_attTimes[1] = AGC3_ATT_TIME_2_56ms_dB; + env->agc3_attTimes[2] = AGC3_ATT_TIME_10_24ms_dB; + env->agc3_attTimes[3] = AGC3_ATT_TIME_40_96ms_dB; + env->agc3_attTimes[4] = AGC3_ATT_TIME_82ms_dB; + env->agc3_attTimes[5] = AGC3_ATT_TIME_164ms_dB; + env->agc3_attTimes[6] = AGC3_ATT_TIME_328ms_dB; + env->agc3_attTimes[7] = AGC3_ATT_TIME_656ms_dB; + + env->agc2Opr_out_powers[0] = AGC2OP_1W_8ohm_OR_1_33W_6ohm; + env->agc2Opr_out_powers[1] = AGC2OP_1_2W_8ohm_OR_1_6W_6ohm; + env->agc2Opr_out_powers[2] = AGC2OP_1_4W_8ohm_OR_1_87W_6ohm; + env->agc2Opr_out_powers[3] = AGC2OP_1_6W_8ohm_OR_2_13W_6ohm; + env->agc2Opr_out_powers[4] = AGC2OP_1_8W_8ohm_OR_2_4W_6ohm; + env->agc2Opr_out_powers[5] = AGC2OP_2W_8ohm_OR_2_67W_6ohm; + env->agc2Opr_out_powers[6] = AGC2OP_2_2W_8ohm_OR_2_93W_6ohm; + env->agc2Opr_out_powers[7] = AGC2OP_2_4W_8ohm_OR_3_2W_6ohm; + env->agc2Opr_out_powers[8] = AGC2OP_2_6W_8ohm_OR_3_47W_6ohm; + env->agc2Opr_out_powers[9] = AGC2OP_2_8W_8ohm_OR_3_73W_6ohm; + env->agc2Opr_out_powers[10] = AGC2OP_3W_8ohm_OR_4W_6ohm; + env->agc2Opr_out_powers[11] = AGC2OP_OFF; + + env->agc2_attTimes[0] = AGC2_ATT_TIME_0_16ms_dB; + env->agc2_attTimes[1] = AGC2_ATT_TIME_0_32ms_dB; + env->agc2_attTimes[2] = AGC2_ATT_TIME_0_64ms_dB; + env->agc2_attTimes[3] = AGC2_ATT_TIME_2_56ms_dB; + env->agc2_attTimes[4] = AGC2_ATT_TIME_10_24ms_dB; + env->agc2_attTimes[5] = AGC2_ATT_TIME_40_96ms_dB; + env->agc2_attTimes[6] = AGC2_ATT_TIME_82ms_dB; + env->agc2_attTimes[7] = AGC2_ATT_TIME_164ms_dB; + } +} + +tAW87579_RegsList Amplifier_ConvertStrToRegs(tString32 *conf) { + tAW87579_RegsList list; + list.sysctr.data = conf->data[def_sysctr]; + list.batsafe.data = conf->data[def_batsafe]; + list.bstvout.data = conf->data[def_bstvout]; + list.bstcpr2.data = conf->data[def_bstcpr2]; + list.pagr.data = conf->data[def_pagr]; + list.pagc3Opr.data = conf->data[def_pagc3Opr]; + list.pagc3Pr.data = conf->data[def_pagc3Pr]; + list.pagc2Opr.data = conf->data[def_pagc2Opr]; + list.pagc2Pr.data = conf->data[def_pagc2Pr]; + list.pagc1Pr.data = conf->data[def_pagc1Pr]; + list.adpMode.data = conf->data[def_adpMode]; + list.adpbstTime1.data = conf->data[def_adpbstTime1]; + list.adpbstVth.data = conf->data[def_adpbstVth]; + return list; +} + +void Amplifier_ConfRegsToStr(tAW87579_RegsList *conf, tString32 *res) { +// tString32 res; + res->data[def_sysctr] = conf->sysctr.data; + res->data[def_batsafe] = conf->batsafe.data; + res->data[def_bstvout] = conf->bstvout.data; + res->data[def_bstcpr2] = conf->bstcpr2.data; + res->data[def_pagr] = conf->pagr.data; + res->data[def_pagc3Opr] = conf->pagc3Opr.data; + res->data[def_pagc3Pr] = conf->pagc3Pr.data; + res->data[def_pagc2Opr] = conf->pagc2Opr.data; + res->data[def_pagc2Pr] = conf->pagc2Pr.data; + res->data[def_pagc1Pr] = conf->pagc1Pr.data; + res->data[def_adpMode] = conf->adpMode.data; + res->data[def_adpbstTime1] = conf->adpbstTime1.data; + res->data[def_adpbstVth] = conf->adpbstVth.data; + res->length = 12; + res->data[4]= -1; +// return res; +} + + +void Amplifier_BoostAdpMode_SetSTEP(tAmplifier *env, uint8_t index){ + tAW87579_RegsList *list; + list = &env->confRegs; + list->adpbstVth.ADP_LOW_STEP = index; +} + +void Amplifier_BoostAdpMode_SetVTH1(tAmplifier *env, uint8_t index){ + tAW87579_RegsList *list; + list = &env->confRegs; + list->adpbstVth.SET_BOOST_VTH1 = env->boost_vths1[index]; +} + +void Amplifier_BoostAdpMode_SetVTH2(tAmplifier *env, uint8_t index){ + tAW87579_RegsList *list; + list = &env->confRegs; + list->adpbstVth.SET_BOOST_VTH2 = env->boost_vths2[index]; +} + +tAW87579_RegsList Amplifier_GetDefaultConf(){ + tAW87579_RegsList list = { + .sysctr.EN_SW = true, + .sysctr.EN_PA = true, + .sysctr.EN_BOOST = true, + .sysctr.RCV_MODE = false, + .sysctr.EN_HVBAT = true, + + .batsafe.EN_BAT_SFGD = true, + .batsafe.BAT_SFGD_LEVEL = BAT_SFGD_LEVEL_6_5V, + .batsafe.BAT_SFGD_VTH = BAT_SFGD_VTH_3_6V, + .batsafe.BAT_SFGD_DEGLITCH = BAT_SFGD_DEGLITCH_1ms, + + .bstvout.BST_VOUT = BST_VOUT_6_5V, + + .bstcpr2.BST_IPEAK = BST_IPEAK_4_5A, + + .pagr.PA_GAIN = PA_GAIN_SET__dB(false,27), + + .pagc3Opr.PD_AGC3 = false, + .pagc3Opr.AGC3_OUTPUT_POWER = AGC3OP_2W_8ohm_OR_2_67W_6ohm, + + .pagc3Pr.AGC3_REL_TIME = AGC3_REL_TIME_40_56ms_dB, + .pagc3Pr.AGC3_ATT_TIME = AGC3_ATT_TIME_82ms_dB, + + .pagc2Opr.AGC2_OUTPUT_POWER = AGC2OP_OFF, + + .pagc2Pr.AGC2_ATT_TIME = AGC2_ATT_TIME_0_32ms_dB, + + .pagc1Pr.PD_AGC1 = false, + .pagc1Pr.AGC1_ATT_TIME = AGC1_ATT_TIME_0_04ms_dB, + + .adpMode.AGC1_ATT_TIMEA = false, + .adpMode.ADPBOOST_MODE = ADPBOOST_MODE_PassThrough, + + .adpbstTime1.ADP_BST_TIME1 = ADP_BST_TIME_160ms, + .adpbstTime1.ADP_BST_TIME2 = ADP_BST_TIME_140ms, + + .adpbstVth.ADP_LOW_STEP = ADP_LOW_STEP_1st_BST_OUT_7_25V, + .adpbstVth.SET_BOOST_VTH1 = SET_BOOST_VTH1_0_1W, + .adpbstVth.SET_BOOST_VTH2 = SET_BOOST_VTH2_2_2W + }; + return list; +} + +void Amplifier_DumpConf(tAmplifier *env){ + Amplifier_ConfRegsToStr(&env->confRegs, env->confStr); + EraGlonassUveosDumper_ForceDump(env->dumper); +} + +void Amplifier_ChangeConf(tAmplifier *env){ +// env->confRegs = Amplifier_ConvertStrToRegs(env->confStr); +// *env->confStr = Amplifier_ConfRegsToStr(&env->confRegs); + xAmplifierAW87579_SetAll(env->amplIoBus,env->confRegs); +} + +void Amplifier_PowerOn(tAmplifier *env){ + Pwm_SetMuteInCar(env->power, true); + Pwm_AmpOn(env->power); + SystemDelayMs(500); + Amplifier_StartUp(env); + SystemDelayMs(500); +} + +void Amplifier_PowerOff(tAmplifier *env){ + Pwm_SetMuteInCar(env->power, false); + SystemDelayMs(500); + Pwm_AmpOff(env->power); +} + +void Amplifier_StartUp(tAmplifier *env){ + if(env->confStr->length < 1 ){ + env->confRegs = Amplifier_GetDefaultConf(); + if(xAmplifierAW87579_SetAll(env->amplIoBus,env->confRegs)){ + env->isTest = 2; + } else { + env->isTest = 1; + } + } else { + env->confRegs = Amplifier_ConvertStrToRegs(env->confStr); + if(xAmplifierAW87579_SetAll(env->amplIoBus,env->confRegs)){ + env->isTest = 2; + } else { + env->isTest = 1; + } + } +} + +void Amplifier_Init(tAmplifier *env, tI2cIO *ampl_IO, tEraGlonassUveosDumperInterface *dumper, tString32 *conf, tPowerManagement *power, bool *speakTestAcsess){ + env->isTest = 0; + env->speakTestAcsess = speakTestAcsess; + env->power = power; + env->confStr = conf; + env->dumper = dumper; + env->amplIoBus = ampl_IO; + ProtMethodsAdd_AmplifierSetCard(env); +} diff --git a/Amplifier.h b/Amplifier.h new file mode 100644 index 0000000..ff75e09 --- /dev/null +++ b/Amplifier.h @@ -0,0 +1,101 @@ +// +// Created by ilya on 06.05.24. +// + +#ifndef SMART_COMPONENTS_AMPLIFIER_H +#define SMART_COMPONENTS_AMPLIFIER_H + +//#include "Amplifier_MAX9768.h" +#include "Amplifier_AW87579.h" +#include "BaseTypes/Strings.h" +#include "EraGlonassUveos_Dumper.h" +#include "PowerManagment.h" + +//********************************************************************** +//void Gpios_AudioPins(tAudioPins *env){ +// +// env->mute = InitGpioPin(GPIOB, GPIO_PINS_1, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); +// env->off_mcu = InitGpioPin(GPIOB, GPIO_PINS_0, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); +//} +//********************************************************************** +typedef struct { + bool *speakTestAcsess; + uint8_t isTest; + tI2cIO *amplIoBus; + tEraGlonassUveosDumperInterface *dumper; + tString32 *confStr; + tAW87579_RegsList confRegs; + tPowerManagement *power; + uint8_t en_boost; + uint16_t levels[19]; + uint16_t voltages[23]; + uint16_t ampers[11]; + uint16_t boost_vths1[4]; + uint16_t boost_vths2[6]; + uint16_t boost_steps[4]; + uint16_t agc1_att_times[4]; + uint16_t adp_boostModes[4]; + uint16_t agc3_out_powers[16]; + uint16_t agc3_relTimes[8]; + uint16_t agc3_attTimes[8]; + uint16_t agc2Opr_out_powers[12]; + uint16_t agc2_attTimes[8]; +}tAmplifier; + +void Amplifier_Init(tAmplifier *env, tI2cIO *ampl_IO, tEraGlonassUveosDumperInterface *dumper, tString32 *conf, tPowerManagement *power, bool *speakTestAcsess); + +void Amplifier_PowerOn(tAmplifier *env); + +void Amplifier_PowerOff(tAmplifier *env); + +void Amplifier_StartUp(tAmplifier *env); + +void Amplifier_ConfRegsToStr(tAW87579_RegsList *conf, tString32 *res) ; + +void Amplifier_BoostAdpMode_SetVTH1(tAmplifier *env, uint8_t index); + +void Amplifier_BoostAdpMode_SetVTH2(tAmplifier *env, uint8_t index); + +void Amplifier_BoostAdpMode_SetSTEP(tAmplifier *env, uint8_t index); + +void Amplifier_DumpConf(tAmplifier *env); + +void Amplifier_ChangeConf(tAmplifier *env); + +void ProtMethodsAdd_AmplifierInit(tAmplifier *env); + +uint8_t ProtMethods_AmplGetLvlVolumeIndex(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetLvlAmperIndex(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetLvlVoltIndex(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetADP_BoostStep(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetADP_BoostVTH1(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetADP_En_Boost(tAmplifier *env, uint8_t indexValule); + +uint8_t ProtMethods_AmplGetADP_BoostVTH2(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetADP_BoostMode(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetAGC1_AttackTime(tAmplifier *env, uint8_t regVal); + +uint8_t ProtMethods_AmplGetAGC3_OutPower(tAmplifier *env, uint8_t indexValule); + +uint8_t ProtMethods_AmplGetAGC2_OutPower(tAmplifier *env, uint8_t indexValule); + +uint8_t ProtMethods_AmplGetAGC2_AttTime(tAmplifier *env, uint8_t indexValule); + +uint8_t ProtMethods_AmplGetAGC3_RelTime(tAmplifier *env, uint8_t indexValule); + +uint8_t ProtMethods_AmplGetAGC3_AttTime(tAmplifier *env, uint8_t indexValule); + +uint8_t ProtMethods_AmplGetEN_Boost(tAmplifier *env, uint8_t indexValule); + +#define AMPL_IFNOKR(VALUE) if(!VALUE) return false; +#define AMPL_IFNOKREPIT(VALUE) while(VALUE == false); + + +#endif //SMART_COMPONENTS_AMPLIFIER_H \ No newline at end of file diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..0dd1901 --- /dev/null +++ b/modular.json @@ -0,0 +1,10 @@ +{ + "cmake": { + "inc_dirs": [ + "./" + ], + "srcs": [ + "./**.c" + ] + } +} \ No newline at end of file