Browse Source

update

master
zhaohe 3 years ago
parent
commit
672f98aa0b
  1. 164
      APP/main.c
  2. 4
      APP/service/ozone_control_service.h
  3. 1311
      project_ozone/Listings/project_o.map
  4. 44
      project_ozone/project_o.uvgui.zel

164
APP/main.c

@ -200,13 +200,6 @@ void do_debug_light_state(zsimple_timer_t* handler) {
port_debug_set(debug_led_state); port_debug_set(debug_led_state);
} }
float get_ozone_power() {
float powersum = 0;
for (size_t i = 0; i < 5; i++) {
powersum += port_adc_get_ozone_generator_power();
}
return powersum / 5;
}
#if 0 #if 0
typedef struct { typedef struct {
@ -383,6 +376,163 @@ void printf_ozone_freq_and_power_table() {
// port_ozone_pwm_stop(); // port_ozone_pwm_stop();
// } // }
float s_power_table[200];
void setpower(uint16_t freq, float power) {
/**
* @brief
* [0]->20k
* [1]->20.1k
*/
uint16_t index = (freq - 20000) / 100;
if (index < 0) return;
if (index >= ARRAY_SIZE(s_power_table)) return;
s_power_table[index] = power;
}
float getpower(uint16_t freq) {
/**
* @brief
* [0]->20k
* [1]->20.1k
*/
uint16_t index = (freq - 20000) / 100;
if (index < 0) return 0;
if (index >= ARRAY_SIZE(s_power_table)) return 0;
return s_power_table[index];
}
float get_ozone_power() {
float powersum = 0;
for (size_t i = 0; i < 20; i++) {
powersum += port_adc_get_ozone_generator_power();
}
return powersum / 20;
}
float set_pwm_and_get_power(uint32_t freq, uint32_t dutyns) {
port_ozone_pwm_set_duty(freq, dutyns);
systicket_delay_ms(3);
float power1 = get_ozone_power();
return power1;
}
void create_power_table() {
/**
* @brief
*/
port_ozone_pwm_set_duty(20000, 3000);
port_ozone_pwm_start();
systicket_delay_ms(3);
for (size_t i = 0; i < 200; i++) {
nowfreq = 20000 + i * 100;
float power = set_pwm_and_get_power(nowfreq, 3000);
setpower(nowfreq, power);
}
port_ozone_pwm_stop();
printf("%d,%f\r\n", nowfreq, power);
}
void printf_ozone_freq_and_power_table() {
/**
* @brief
*/
for (size_t i = 0; i < 200; i++) {
nowfreq = 20000 + i * 100;
float power = getpower(nowfreq);
printf("%d,%f\r\n", nowfreq, power);
}
}
void checkdevice() {
/**
* @brief
*
*
* :3us扫频
* 1.35k->40k时候的功率40k的要大
* 2.35k->40k时候的功率
* 3.25k到30k扫频25k到35k的点绝大多数都比25k时候的大
* 4.
*
* :
*
* 1 35k到40k40k功率大的点的占比
* 2 35k到40k
* 3 25k到30k25k大的点的占比
* 4 25k到30k,
*
*
* :
*
*
*/
printf("checkdevice\r\n");
float indicator_1 = 0;
float indicator_2 = 0;
float indicator_3 = 0;
uint16_t resonant_frequency = 0;
{
//1 35k到40k40k功率大的点的占比
int count = 0;
size_t i = 0;
for (;; i++) {
int nowfreq = 35000 + i * 100;
float power = getpower(nowfreq);
if (power > getpower(40000)) {
count++;
}
if (nowfreq >= 40 * 1000) {
break;
}
}
indicator_1 = count * 1.0 / i * 100;
}
{
// 2 35k到40k
int count = 0;
float sumpower = 0;
size_t i = 0;
for (;; i++) {
int nowfreq = 35000 + i * 100;
float power = getpower(nowfreq);
sumpower += power;
}
indicator_2 = sumpower / i;
}
// 3 25k到30k25k大的点的占比
{
int count = 0;
size_t i = 0;
for (;; i++) {
int nowfreq = 25000 + i * 100;
float power = getpower(nowfreq);
if (power > getpower(25000)) {
count++;
}
if (nowfreq >= 30 * 1000) {
break;
}
}
indicator_3 = count * 1.0 / i * 100;
}
// 4 25k到30k,
{
size_t i = 0;
float minpower = getpower(25000);
uint16_t minpowerfreq = 25000;
for (;; i++) {
int nowfreq = 25000 + i * 100;
float power = getpower(nowfreq);
if (power < minpower) {
minpower = power;
minpowerfreq = nowfreq;
}
}
resonant_frequency = minpowerfreq;
}
}
void init_all_subdevice_state() { void init_all_subdevice_state() {
port_debug_set(false); port_debug_set(false);
port_fan_set(false); port_fan_set(false);

4
APP/service/ozone_control_service.h

@ -41,8 +41,8 @@ void ozone_control_schedule();
* : * :
* *
* *
*
*
* :
*
* *
* *
* *

1311
project_ozone/Listings/project_o.map
File diff suppressed because it is too large
View File

44
project_ozone/project_o.uvgui.zel
File diff suppressed because it is too large
View File

Loading…
Cancel
Save