Add main cylcle counter and increase filter alpha for PT1000 to 0.01
This commit is contained in:
parent
ffb544e21d
commit
a802b5c1b5
@ -36,7 +36,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Moving average filter coefficient for PT1000 measurement
|
* @brief Moving average filter coefficient for PT1000 measurement
|
||||||
*/
|
*/
|
||||||
#define ADC_PT1000_FILTER_WEIGHT 0.005f
|
#define ADC_PT1000_FILTER_WEIGHT 0.01f
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Moving average filter weight used for fast regaulation. This is used when the measured resistance
|
* @brief Moving average filter weight used for fast regaulation. This is used when the measured resistance
|
||||||
|
32
stm-firmware/include/reflow-controller/main-cycle-counter.h
Normal file
32
stm-firmware/include/reflow-controller/main-cycle-counter.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/* Reflow Oven Controller
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*
|
||||||
|
* This file is part of the Reflow Oven Controller Project.
|
||||||
|
*
|
||||||
|
* The reflow oven controller is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* The Reflow Oven Control Firmware is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with the reflow oven controller project.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __MAIN_CYCLE_COUNTER_H__
|
||||||
|
#define __MAIN_CYCLE_COUNTER_H__
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
void main_cycle_counter_init(void);
|
||||||
|
|
||||||
|
void main_cycle_counter_inc(void);
|
||||||
|
|
||||||
|
uint64_t main_cycle_counter_get(void);
|
||||||
|
|
||||||
|
#endif /* __MAIN_CYCLE_COUNTER_H__ */
|
39
stm-firmware/main-cycle-counter.c
Normal file
39
stm-firmware/main-cycle-counter.c
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/* Reflow Oven Controller
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*
|
||||||
|
* This file is part of the Reflow Oven Controller Project.
|
||||||
|
*
|
||||||
|
* The reflow oven controller is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* The Reflow Oven Control Firmware is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with the reflow oven controller project.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <reflow-controller/main-cycle-counter.h>
|
||||||
|
#include <helper-macros/helper-macros.h>
|
||||||
|
|
||||||
|
static uint64_t IN_SECTION(.ccm.bss) main_cycle_counter;
|
||||||
|
|
||||||
|
void main_cycle_counter_init()
|
||||||
|
{
|
||||||
|
main_cycle_counter = 0ULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main_cycle_counter_inc()
|
||||||
|
{
|
||||||
|
main_cycle_counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t main_cycle_counter_get()
|
||||||
|
{
|
||||||
|
return main_cycle_counter;
|
||||||
|
}
|
@ -48,6 +48,7 @@
|
|||||||
#include <reflow-controller/updater/updater.h>
|
#include <reflow-controller/updater/updater.h>
|
||||||
#include <reflow-controller/temp-profile/temp-profile-executer.h>
|
#include <reflow-controller/temp-profile/temp-profile-executer.h>
|
||||||
#include <reflow-controller/settings/spi-eeprom.h>
|
#include <reflow-controller/settings/spi-eeprom.h>
|
||||||
|
#include <reflow-controller/main-cycle-counter.h>
|
||||||
|
|
||||||
static void setup_nvic_priorities(void)
|
static void setup_nvic_priorities(void)
|
||||||
{
|
{
|
||||||
@ -248,6 +249,8 @@ int main(void)
|
|||||||
shell_handle = shell_init(write_shell_callback);
|
shell_handle = shell_init(write_shell_callback);
|
||||||
shell_print_motd(shell_handle);
|
shell_print_motd(shell_handle);
|
||||||
|
|
||||||
|
main_cycle_counter_init();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
if (systick_ticks_have_passed(quarter_sec_timestamp, 250)) {
|
if (systick_ticks_have_passed(quarter_sec_timestamp, 250)) {
|
||||||
@ -285,7 +288,7 @@ int main(void)
|
|||||||
__WFI();
|
__WFI();
|
||||||
else
|
else
|
||||||
__NOP();
|
__NOP();
|
||||||
main_loop_iter_count++;
|
main_cycle_counter_inc();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1563,6 +1563,7 @@ int safety_controller_set_crc_monitor(enum crc_monitor mon, uint32_t password)
|
|||||||
if (password != monitor->pw)
|
if (password != monitor->pw)
|
||||||
return -1002;
|
return -1002;
|
||||||
|
|
||||||
|
crc = 0;
|
||||||
(void)crc_monitor_calculate_crc(monitor->registers, &crc);
|
(void)crc_monitor_calculate_crc(monitor->registers, &crc);
|
||||||
monitor->expected_crc = crc;
|
monitor->expected_crc = crc;
|
||||||
monitor->expected_crc_inv = ~crc;
|
monitor->expected_crc_inv = ~crc;
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include <reflow-controller/digio.h>
|
#include <reflow-controller/digio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
#include <inttypes.h>
|
||||||
#include <helper-macros/helper-macros.h>
|
#include <helper-macros/helper-macros.h>
|
||||||
#include <reflow-controller/systick.h>
|
#include <reflow-controller/systick.h>
|
||||||
#include <stm-periph/unique-id.h>
|
#include <stm-periph/unique-id.h>
|
||||||
@ -43,6 +44,7 @@
|
|||||||
#include <reflow-controller/hw-version-detect.h>
|
#include <reflow-controller/hw-version-detect.h>
|
||||||
#include <reflow-controller/temp-profile/temp-profile-executer.h>
|
#include <reflow-controller/temp-profile/temp-profile-executer.h>
|
||||||
#include <reflow-controller/updater/updater.h>
|
#include <reflow-controller/updater/updater.h>
|
||||||
|
#include <reflow-controller/main-cycle-counter.h>
|
||||||
|
|
||||||
#ifndef GIT_VER
|
#ifndef GIT_VER
|
||||||
#define GIT_VER "VERSION NOT SET"
|
#define GIT_VER "VERSION NOT SET"
|
||||||
@ -790,6 +792,43 @@ shellmatta_retCode_t shell_cmd_execute(const shellmatta_handle_t handle, const c
|
|||||||
return SHELLMATTA_CONTINUE;
|
return SHELLMATTA_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shellmatta_retCode_t shell_cmd_cycle_count (const shellmatta_handle_t handle, const char *args, uint32_t len)
|
||||||
|
{
|
||||||
|
uint64_t counter;
|
||||||
|
(void)args;
|
||||||
|
(void)len;
|
||||||
|
char option;
|
||||||
|
char *argument;
|
||||||
|
uint32_t arg_len;
|
||||||
|
int opt_stat;
|
||||||
|
bool clear = false;
|
||||||
|
const shellmatta_opt_long_t options[] = {
|
||||||
|
{"clear", 'c', SHELLMATTA_OPT_ARG_NONE},
|
||||||
|
{NULL, '\0', SHELLMATTA_OPT_ARG_NONE},
|
||||||
|
};
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
opt_stat = shellmatta_opt_long(handle, options, &option, &argument, &arg_len);
|
||||||
|
if (opt_stat != SHELLMATTA_OK)
|
||||||
|
break;
|
||||||
|
switch (option) {
|
||||||
|
case 'c':
|
||||||
|
clear = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
counter = main_cycle_counter_get();
|
||||||
|
shellmatta_printf(handle, "%"PRIu64"\r\n", counter);
|
||||||
|
if (clear)
|
||||||
|
main_cycle_counter_init();
|
||||||
|
|
||||||
|
return SHELLMATTA_OK;
|
||||||
|
}
|
||||||
|
|
||||||
//typedef struct shellmatta_cmd
|
//typedef struct shellmatta_cmd
|
||||||
//{
|
//{
|
||||||
// char *cmd; /**< command name */
|
// char *cmd; /**< command name */
|
||||||
@ -799,7 +838,7 @@ shellmatta_retCode_t shell_cmd_execute(const shellmatta_handle_t handle, const c
|
|||||||
// shellmatta_cmdFct_t cmdFct; /**< pointer to the cmd callack function */
|
// shellmatta_cmdFct_t cmdFct; /**< pointer to the cmd callack function */
|
||||||
// struct shellmatta_cmd *next; /**< pointer to next command or NULL */
|
// struct shellmatta_cmd *next; /**< pointer to next command or NULL */
|
||||||
//} shellmatta_cmd_t;
|
//} shellmatta_cmd_t;
|
||||||
static shellmatta_cmd_t cmd[21] = {
|
static shellmatta_cmd_t cmd[23] = {
|
||||||
{
|
{
|
||||||
.cmd = "version",
|
.cmd = "version",
|
||||||
.cmdAlias = "ver",
|
.cmdAlias = "ver",
|
||||||
@ -967,8 +1006,16 @@ static shellmatta_cmd_t cmd[21] = {
|
|||||||
.helpText = "Execute Temp Profile",
|
.helpText = "Execute Temp Profile",
|
||||||
.usageText = "execute /path/to/script.tpr",
|
.usageText = "execute /path/to/script.tpr",
|
||||||
.cmdFct = shell_cmd_execute,
|
.cmdFct = shell_cmd_execute,
|
||||||
|
.next = &cmd[21],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.cmd = "cyclecount",
|
||||||
|
.cmdAlias = "cc",
|
||||||
|
.helpText = "Print out the cycle counter of the main loop",
|
||||||
|
.usageText = "cyclecount [--clear]",
|
||||||
|
.cmdFct = shell_cmd_cycle_count,
|
||||||
.next = NULL,
|
.next = NULL,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
shellmatta_handle_t shell_init(shellmatta_write_t write_func)
|
shellmatta_handle_t shell_init(shellmatta_write_t write_func)
|
||||||
|
Loading…
Reference in New Issue
Block a user