Neustart erst wenn Kalibrierung abgeschlossen ist und werte ins EEPROM geschrieben wurden
This commit is contained in:
parent
5eb047e240
commit
94eee03e7b
@ -27,8 +27,8 @@ using namespace ElektronischeLast;
|
|||||||
#define EEPROM_ADDRESS_VOLTAGE 0U
|
#define EEPROM_ADDRESS_VOLTAGE 0U
|
||||||
#define EEPROM_ADDRESS_CURRENT 4U
|
#define EEPROM_ADDRESS_CURRENT 4U
|
||||||
|
|
||||||
static void do_icall(iADC& adc, iI2C& eeprom);
|
static bool do_icall(iADC& adc, iI2C& eeprom);
|
||||||
static void do_ucall(iADC& dac, iI2C& eeprom);
|
static bool do_ucall(iADC& dac, iI2C& eeprom);
|
||||||
|
|
||||||
uint16_t set_solltrom (CLI_OutFunction pfvOutFunction, char *acCommands[], uint16_t u16ArgCount);
|
uint16_t set_solltrom (CLI_OutFunction pfvOutFunction, char *acCommands[], uint16_t u16ArgCount);
|
||||||
uint16_t set_dutyCyle (CLI_OutFunction pfvOutFunction, char *acCommands[], uint16_t u16ArgCount);
|
uint16_t set_dutyCyle (CLI_OutFunction pfvOutFunction, char *acCommands[], uint16_t u16ArgCount);
|
||||||
@ -68,6 +68,7 @@ int main (void)
|
|||||||
{
|
{
|
||||||
__enable_irq();
|
__enable_irq();
|
||||||
serial_init();
|
serial_init();
|
||||||
|
printf("\r\nElektronische Last\r\n");
|
||||||
CLI_Init(commands, sizeof(commands)/sizeof(commands[0]));
|
CLI_Init(commands, sizeof(commands)/sizeof(commands[0]));
|
||||||
LED led = LED(500U);
|
LED led = LED(500U);
|
||||||
FanControl fan = FanControl();
|
FanControl fan = FanControl();
|
||||||
@ -79,10 +80,12 @@ int main (void)
|
|||||||
eeprom.read(EEPROM_ADDRESS_CURRENT, 4UL, (uint8_t*)¤t_gain);
|
eeprom.read(EEPROM_ADDRESS_CURRENT, 4UL, (uint8_t*)¤t_gain);
|
||||||
if(std::isnan(voltage_gain))
|
if(std::isnan(voltage_gain))
|
||||||
{
|
{
|
||||||
|
printf("* Default für voltage_gain\r\n");
|
||||||
voltage_gain = 22.272125f;
|
voltage_gain = 22.272125f;
|
||||||
}
|
}
|
||||||
if(std::isnan(current_gain))
|
if(std::isnan(current_gain))
|
||||||
{
|
{
|
||||||
|
printf("* Default für current_gain\r\n");
|
||||||
current_gain = 3.685331f;
|
current_gain = 3.685331f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +93,6 @@ int main (void)
|
|||||||
iADC adc = iADC(voltage_gain, current_gain);
|
iADC adc = iADC(voltage_gain, current_gain);
|
||||||
std::uint32_t last_tick = systick;
|
std::uint32_t last_tick = systick;
|
||||||
|
|
||||||
printf("\r\nElektronische Last\r\n");
|
|
||||||
printf("- Initialisierung erfolgreich\r\n");
|
printf("- Initialisierung erfolgreich\r\n");
|
||||||
printf("- Verstärkung U: %f, Verstärkung I: %f\r\n", voltage_gain, current_gain);
|
printf("- Verstärkung U: %f, Verstärkung I: %f\r\n", voltage_gain, current_gain);
|
||||||
printf("Elektronische Last>");
|
printf("Elektronische Last>");
|
||||||
@ -107,14 +109,18 @@ int main (void)
|
|||||||
switch(modus)
|
switch(modus)
|
||||||
{
|
{
|
||||||
case icall:
|
case icall:
|
||||||
do_icall(adc, eeprom);
|
if(do_icall(adc, eeprom))
|
||||||
|
{
|
||||||
while(!LL_LPUART_IsActiveFlag_TC(LPUART1));
|
while(!LL_LPUART_IsActiveFlag_TC(LPUART1));
|
||||||
NVIC_SystemReset();
|
NVIC_SystemReset();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ucall:
|
case ucall:
|
||||||
do_ucall(adc, eeprom);
|
if(do_ucall(adc, eeprom))
|
||||||
|
{
|
||||||
while(!LL_LPUART_IsActiveFlag_TC(LPUART1));
|
while(!LL_LPUART_IsActiveFlag_TC(LPUART1));
|
||||||
NVIC_SystemReset();
|
NVIC_SystemReset();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case normal:
|
case normal:
|
||||||
default:
|
default:
|
||||||
@ -222,8 +228,9 @@ uint16_t set_icall(CLI_OutFunction pfvOutFunction, char *acCommands[], uint16_t
|
|||||||
return 0U;
|
return 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_icall(iADC& adc, iI2C& eeprom)
|
static bool do_icall(iADC& adc, iI2C& eeprom)
|
||||||
{
|
{
|
||||||
|
bool done = false;
|
||||||
strom += adc.get_current_raw();
|
strom += adc.get_current_raw();
|
||||||
spannung++;
|
spannung++;
|
||||||
if(spannung == 1000UL)
|
if(spannung == 1000UL)
|
||||||
@ -234,10 +241,13 @@ static void do_icall(iADC& adc, iI2C& eeprom)
|
|||||||
modus = normal;
|
modus = normal;
|
||||||
spannung = 0UL;
|
spannung = 0UL;
|
||||||
strom = 0UL;
|
strom = 0UL;
|
||||||
|
done = true;
|
||||||
}
|
}
|
||||||
|
return done;
|
||||||
}
|
}
|
||||||
static void do_ucall(iADC& adc, iI2C& eeprom)
|
static bool do_ucall(iADC& adc, iI2C& eeprom)
|
||||||
{
|
{
|
||||||
|
bool done = false;
|
||||||
spannung += adc.get_voltage_raw();
|
spannung += adc.get_voltage_raw();
|
||||||
strom++;
|
strom++;
|
||||||
if(strom == 1000UL)
|
if(strom == 1000UL)
|
||||||
@ -248,5 +258,7 @@ static void do_ucall(iADC& adc, iI2C& eeprom)
|
|||||||
modus = normal;
|
modus = normal;
|
||||||
spannung = 0UL;
|
spannung = 0UL;
|
||||||
strom = 0UL;
|
strom = 0UL;
|
||||||
|
done = true;
|
||||||
}
|
}
|
||||||
|
return done;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user