Browse Source

adc采集ok

master
Yuenold 4 years ago
parent
commit
0e1f3c0e7b
  1. 3
      .vscode/settings.json
  2. 79
      APP/adc.c
  3. 28
      APP/adc.h
  4. 70
      APP/main.c
  5. 1
      APP/main.h
  6. 57
      APP/ozone_work.c
  7. 3
      APP/ozone_work.h
  8. 7
      APP/port.c
  9. 5
      APP/port.h
  10. 8
      APP/systick.c
  11. 1
      APP/systick.h
  12. 36
      PlatForm/irqhandler.c
  13. BIN
      doc/~$项目需求.docx
  14. BIN
      doc/项目需求.docx
  15. 1050
      project_ozone/Listings/project_o.map
  16. 103
      project_ozone/project_o.uvgui.admin
  17. 40
      project_ozone/project_o.uvopt
  18. 5
      project_ozone/project_o.uvproj

3
.vscode/settings.json

@ -11,6 +11,7 @@
"es8p5066.h": "c", "es8p5066.h": "c",
"key.h": "c", "key.h": "c",
"port.h": "c", "port.h": "c",
"lib_wdt.h": "c"
"lib_wdt.h": "c",
"ozone_work.h": "c"
} }
} }

79
APP/adc.c

@ -0,0 +1,79 @@
#include "adc.h"
/***********************************************************************************************************************
* =====================================================adc======================================================
**
***********************************************************************************************************************/
// uint16_t meanvalue;
adc_t adc={0};
void ADCInit(void) {
ADC_InitStruType x;
GPIO_InitSettingType y;
y.Signal = GPIO_Pin_Signal_Analog; //
y.Dir = GPIO_Direction_Input; //
y.Func = GPIO_Reuse_Func0;
// GPIO_Init(GPIO_Pin_B9, &y);
GPIO_Init(GPIO_Pin_A2, &y);
//Tadclk=1/(PCLK/4)0.083us
x.CLKS = ADC_CLKS_PCLK;
x.CLKDIV = ADC_CLKDIV_1_4; /* ADC时钟源预分频 */
//*3.3/4096=
x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v,设置内部参考电压为多少 */
x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD,adc的参考电压为多少 */
x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */
// x.CHS = ADC_CHS_AIN4;
x.CHS = ADC_CHS_AIN8;
x.SMPS = ADC_SMPS_SOFT; /* AD采样模式为软件控制 */
//st*2+1(Tadclk)=1.743us
x.ST = 10; /* AD采样时间选择 */
x.BITSEL = ADC_BITSEL_12; /* AD分辨率12位 */
ADC_Init(&x);
}
uint16_t get_adc_value(void) {
uint16_t adc_value;
ADC_SoftStart();
while (ADC_GetConvStatus() == SET)
; //
adc_value = ADC_GetConvValue();
ADC_SoftStop();
return adc_value;
}
void adc_loop_gather(void) {
static uint32_t adc_ticket = 0;
uint16_t adc_value = 0;
if (port_haspassedms(adc_ticket) > 500) {
adc_ticket = get_sys_ticket();
adc_value = get_adc_value();
adc.adc_value_buff[adc.adc_value_count++] = adc_value;
if (adc.adc_value_count == 5) {
adc.past_count_reached_five = true;
adc.adc_value_count = 0;
}
if (adc.past_count_reached_five == true) {
beg_average_value(adc.adc_value_buff);
}
}
}
void beg_average_value(uint16_t *adc_buff) {
uint16_t adc_average_value = 0;
uint32_t adc_sum_value = 0;
for (int i = 0; i < 5; i++) {
adc_sum_value += *adc_buff;
adc_buff++;
}
adc_average_value = adc_sum_value / 5;
if (adc_average_value <= 16 || adc.abnormal_state == true) {
adc.abnormal_state = true;
process_voltage_abnormal();
printf("short out%d\r\n", adc_average_value); //
} else {
printf("adc_value_t%d\r\n",
adc_average_value); //adc_value=1700=1700/4096=1.369
}
}

28
APP/adc.h

@ -0,0 +1,28 @@
#ifndef _ADC_H_
#define _ADC_H_
#include "port.h"
#include "systick.h"
#include "ozone_work.h"
void ADCInit(void);
uint16_t get_adc_value(void);
void adc_loop_gather(void);
void beg_average_value(uint16_t *adc_buff);
typedef struct {
bool abnormal_state;
bool past_count_reached_five;
bool first_detection_abnormal;
uint16_t adc_value_buff[5];
uint8_t adc_value_count;
}adc_t;
// typedef struct {
// uint16_t adc_value_buff[5];
// uint8_t adc_value_count;
// bool abnormal_state;
// bool past_count_reached_five; //ÏûʹÓÃ
// } adc_t;
#endif

70
APP/main.c

@ -39,7 +39,10 @@ void iwdt_init(void) {
void feed_iwdt(void) { void feed_iwdt(void) {
// //
if (0x01 == IWDT_GetFlagStatus()) // if (0x01 == IWDT_GetFlagStatus()) //
{
IWDT_Clear(); IWDT_Clear();
printf("喂狗\r\n");
}
} }
extern uint32_t print_time; extern uint32_t print_time;
//############### ##############// //############### ##############//
@ -48,60 +51,6 @@ void test_iwdt(void) {
feed_iwdt(); feed_iwdt();
} }
} }
/***********************************************************************************************************************
* =====================================================adc======================================================
**
***********************************************************************************************************************/
uint16_t meanvalue;
void ADCInit(void)
{
ADC_InitStruType x;
GPIO_InitSettingType y;
y.Signal = GPIO_Pin_Signal_Analog;//
y.Dir = GPIO_Direction_Input;//
y.Func = GPIO_Reuse_Func0;
// GPIO_Init(GPIO_Pin_B9, &y);
GPIO_Init(GPIO_Pin_A2, &y);
//Tadclk=1/(PCLK/4)0.083us
x.CLKS = ADC_CLKS_PCLK;
x.CLKDIV = ADC_CLKDIV_1_4; /* ADC时钟源预分频 */
//*2.048/4096=
x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v */
x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD */
x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */
// x.CHS = ADC_CHS_AIN4;
x.CHS = ADC_CHS_AIN8;
x.SMPS = ADC_SMPS_HARD; /* AD采样模式为硬件控制 */
//st*2+1=1.743us
x.ST = 10; /* AD采样时间选择 */
x.BITSEL = ADC_BITSEL_12; /* AD分辨率12位 */
ADC_Init(&x);
ADC_ACP_Disable();
ADC_IE_Enable(); /* ADC中断使能 */
NVIC_Init(NVIC_ADC_IRQn, NVIC_Priority_1, Enable);
}
void ADCACPConfig(void)
{
ADC_ACP_TypeDef x;
//Tacp约0.5us
x.ACP_EN = ENABLE;
// 4*0.5=20us
x.ACPC_OVER_TIME = 0x30; /* 自动转换比较的溢出时间 */
//2us内采样8次
x.ACPC_TIMES = ADC_ACPC_TIMES_8; /* 自动转换比较次数选择位 */
x.ACPC_MIN_TARGET = 0x010; /* 自动比较高阈值,当mean值小于该值时,会触发中断 */
x.ACPC_MAX_TARGET = 0x700; /* 自动比较低阈值,当mean值大于该值时,会触发中断 */
ADC_ACPConfig(&x);
}
/*********************************************************************************************************************** /***********************************************************************************************************************
@ -118,12 +67,9 @@ int main(void) {
gpio_init(); gpio_init();
zkey_init(&key_module); zkey_init(&key_module);
t16n0_1_init(); //PA4输出pwm t16n0_1_init(); //PA4输出pwm
iwdt_init();
// iwdt_init();
power_on_ozone_work_state(); // power_on_ozone_work_state(); //
ADCInit(); ADCInit();
/* 配置自动比较功能,启动ADC */
ADCACPConfig();
// ADC_Start();
printf("Initialization completed\r\n"); printf("Initialization completed\r\n");
while (1) { while (1) {
// port_do_debug_light_state(); // port_do_debug_light_state();
@ -133,12 +79,10 @@ int main(void) {
is_ozone_work_time_over(); is_ozone_work_time_over();
if (g_ozone_interva_stat == true) if (g_ozone_interva_stat == true)
is_ozone_interva_time_over(); is_ozone_interva_time_over();
// if(meanvalue!=0){
// printf("meanvalue:%d\r\n",meanvalue);
// meanvalue=0;
// }
adc_loop_gather();
} else if (get_ozone_starting_up_state() == false) { //
} }
// test_iwdt(); // test_iwdt();
feed_iwdt(); //
// feed_iwdt(); //
} }
} }

1
APP/main.h

@ -29,4 +29,5 @@ void LedInit(void);
uint32_t port_haspassedms(uint32_t ticket); uint32_t port_haspassedms(uint32_t ticket);
void port_do_debug_light_state(void); void port_do_debug_light_state(void);
uint32_t get_sys_ticket(void); uint32_t get_sys_ticket(void);
void beg_average_value(uint16_t *adc_buff);
#endif #endif

57
APP/ozone_work.c

@ -1,7 +1,10 @@
#include "ozone_work.h" #include "ozone_work.h"
#define TIMINT_TIME 1800000
uint8_t timing_rank=0;//130min260min,390min,4120min
extern uint32_t g_frequency; extern uint32_t g_frequency;
extern uint32_t g_sys_sick; extern uint32_t g_sys_sick;
extern uint32_t g_duty[4]; extern uint32_t g_duty[4];
extern adc_t adc;
uint32_t g_ozone_work_time = 0; uint32_t g_ozone_work_time = 0;
uint32_t g_ozone_interval_time = 0; uint32_t g_ozone_interval_time = 0;
uint32_t g_count_down_begin_sys_time = 0; uint32_t g_count_down_begin_sys_time = 0;
@ -224,13 +227,20 @@ void is_ozone_work_time_over(void) {
*/ */
void timing_led_on(uint8_t led_number) { void timing_led_on(uint8_t led_number) {
for (int i = 0; i < 4; i++) {
if (i == led_number) {
s_leds[i].set_led_state = true;
s_leds[i].port_led_set(s_leds[i].set_led_state);
} else {
s_leds[i].set_led_state = false;
s_leds[i].port_led_set(s_leds[i].set_led_state);
if (led_number == 4) {
port_led0_set(false);
port_led1_set(false);
port_led2_set(false);
port_led3_set(false);
} else {
for (int i = 0; i < 4; i++) {
if (i <= led_number) {
s_leds[i].set_led_state = true;
s_leds[i].port_led_set(s_leds[i].set_led_state);
} else {
s_leds[i].set_led_state = false;
s_leds[i].port_led_set(s_leds[i].set_led_state);
}
} }
} }
} }
@ -300,6 +310,7 @@ void set_ozone_starting_up(void) {
void set_ozone_shutdown(void) { void set_ozone_shutdown(void) {
interval_key_press_frequency = 0; interval_key_press_frequency = 0;
g_ozone_interva_stat = false; g_ozone_interva_stat = false;
memset(&adc, 0, sizeof(adc));
close_ozone_work(); close_ozone_work();
} }
void process_switch_key(void) { void process_switch_key(void) {
@ -317,8 +328,14 @@ void process_switch_key(void) {
void set_interval_time(void) { void set_interval_time(void) {
update_interval_down_begin_sys_time(); update_interval_down_begin_sys_time();
bool led_state = false;
switch (interval_key_press_frequency) { switch (interval_key_press_frequency) {
case 0: case 0:
led_state = port_led0_get_state();
// Delayms(300);
port_led0_set(!led_state);
Delayms(100);
port_led0_set(led_state);
printf("begin interval\n"); printf("begin interval\n");
g_ozone_interva_stat = true; g_ozone_interva_stat = true;
// g_ozone_interval_time = 300000; // 5 // g_ozone_interval_time = 300000; // 5
@ -326,6 +343,11 @@ void set_interval_time(void) {
interval_key_press_frequency = 1; interval_key_press_frequency = 1;
break; break;
case 1: case 1:
led_state = port_led1_get_state();
// Delayms(300);
port_led1_set(!led_state);
Delayms(100);
port_led1_set(led_state);
printf("stop interval"); printf("stop interval");
g_ozone_interva_stat = false; g_ozone_interva_stat = false;
interval_key_press_frequency = 0; interval_key_press_frequency = 0;
@ -335,7 +357,7 @@ void set_interval_time(void) {
static void ozone_interval_begin(void) { static void ozone_interval_begin(void) {
int interval_ozen_gears = 0; int interval_ozen_gears = 0;
//int interval_time_key_press_frequency = 0;
// int interval_time_key_press_frequency = 0;
if (g_ozen_gears == 0) { if (g_ozen_gears == 0) {
interval_ozen_gears = 2; interval_ozen_gears = 2;
} else { } else {
@ -386,3 +408,22 @@ static void close_ozone_work(void) {
timing_led_on(4); //4led灯 timing_led_on(4); //4led灯
port_fan_set(false); // port_fan_set(false); //
} }
/**
* @brief
* led0闪烁
*
*/
void process_voltage_abnormal(void) {
static uint32_t lastprocess = 0;
static uint8_t led_state = 1;
if (!adc.first_detection_abnormal) {
adc.first_detection_abnormal = true;
close_ozone_work();
}
if (port_haspassedms(lastprocess) > 300) {
lastprocess = get_sys_ticket();
led_state = !led_state;
port_led0_set(led_state);
}
}

3
APP/ozone_work.h

@ -3,9 +3,11 @@
#include <stdbool.h> //¶¨Òå²¼¶û #include <stdbool.h> //¶¨Òå²¼¶û
#include <stdint.h> #include <stdint.h>
#include <string.h>
#include "port.h" #include "port.h"
#include "timer.h" #include "timer.h"
#include "systick.h" #include "systick.h"
#include "adc.h"
#define LED_INIT(_bool, _port_led_set) \ #define LED_INIT(_bool, _port_led_set) \
{ .set_led_state = _bool, .port_led_set = _port_led_set } { .set_led_state = _bool, .port_led_set = _port_led_set }
@ -46,5 +48,6 @@ static void close_ozone_work(void);
bool get_ozone_starting_up_state(void); bool get_ozone_starting_up_state(void);
void process_switch_key(void); void process_switch_key(void);
void power_on_ozone_work_state(void); void power_on_ozone_work_state(void);
void process_voltage_abnormal(void);
#endif #endif

7
APP/port.c

@ -19,6 +19,8 @@ static void led_gpio_init(void) {
GPIO_Init(GPIO_Pin_A9, &x); GPIO_Init(GPIO_Pin_A9, &x);
GPIO_Init(GPIO_Pin_B1, &x); GPIO_Init(GPIO_Pin_B1, &x);
GPIO_Init(GPIO_Pin_A28, &x); GPIO_Init(GPIO_Pin_A28, &x);
// GPIO_Init(GPIO_Pin_A2, &x);
// GPIO_WriteBit(GPIO_Pin_A2,1);
} }
static void key_gpio_init(void) { static void key_gpio_init(void) {
@ -59,4 +61,9 @@ bool port_gpio_get_gears_key_state(void) { return GPIO_GET(A, 16, !!); } //??M
bool port_gpio_get_switch_key_state(void) { return GPIO_GET(A, 12, !!); } bool port_gpio_get_switch_key_state(void) { return GPIO_GET(A, 12, !!); }
bool port_gpio_get_interval_key_state(void) { return GPIO_GET(A, 13, !!); } bool port_gpio_get_interval_key_state(void) { return GPIO_GET(A, 13, !!); }
bool port_led0_get_state(void) { return GPIO_GET(A, 3, !); } //??H
bool port_led1_get_state(void) { return GPIO_GET(B, 13,!); } //??M
bool port_led2_get_state(void) { return GPIO_GET(A, 5, !); }
bool port_led3_get_state(void) { return GPIO_GET(A, 6, !); }

5
APP/port.h

@ -30,6 +30,11 @@ bool port_gpio_get_gears_key_state(void);
bool port_gpio_get_interval_key_state(void); bool port_gpio_get_interval_key_state(void);
bool port_gpio_get_switch_key_state(void); bool port_gpio_get_switch_key_state(void);
bool port_led0_get_state(void);
bool port_led1_get_state(void);
bool port_led2_get_state(void);
bool port_led3_get_state(void);
/* /*

8
APP/systick.c

@ -60,3 +60,11 @@ void port_do_debug_light_state(void) {
} }
} }
void Delayms(__IO uint32_t nTime)
{
uint32_t TimingDelay = 0;
TimingDelay = get_sys_ticket();
printf("nTime%d\r\n",nTime);
while (port_haspassedms(TimingDelay) <= nTime);
}

1
APP/systick.h

@ -18,5 +18,6 @@ void User_SysTickInit(void);
uint32_t get_sys_ticket(void); uint32_t get_sys_ticket(void);
uint32_t port_haspassedms(uint32_t ticket); uint32_t port_haspassedms(uint32_t ticket);
void port_do_debug_light_state(void); void port_do_debug_light_state(void);
void Delayms(__IO uint32_t nTime);
#endif #endif

36
PlatForm/irqhandler.c

@ -19,39 +19,3 @@ void SysTick_IRQHandler(void) {
print_time++; print_time++;
} }
/*********************************************************
: void ADC_IRQHandler(void)
: ADC中断处理
:
:
:
**********************************************************/
extern uint16_t meanvalue;
void ADC_IRQHandler()
{
if ((ADC_GetIFStatus(ADC_IF_ACPOVER) == SET) && (ADC_GetIEStatus(ADC_IE_ACPOVER) == SET))
{//ADC平均值中断
ADC_ClearIFStatus(ADC_IF_ACPOVER);
meanvalue = ADC_GetACPMeanValue();
printf("acp\r\n");
}
if ((ADC_GetIFStatus(ADC_IF_ACPMIN) == SET) && (ADC_GetIEStatus(ADC_IE_ACPMIN) == SET))
{//ADC平均值与最小阈值比较中断
printf("little\r\n");
ADC_ClearIFStatus(ADC_IF_ACPMIN);
}
if ((ADC_GetIFStatus(ADC_IF_ACPMAX) == SET) && (ADC_GetIEStatus(ADC_IE_ACPMAX) == SET))
{//ADC平均值与最大阈值比较中断
printf("big\r\n");
ADC_ClearIFStatus(ADC_IF_ACPMAX);
}
if ((ADC_GetIFStatus(ADC_IF) == SET) && (ADC_GetIEStatus(ADC_IE) == SET))
{//ADC每次采集完成中断
printf("if\r\n");
ADC_ClearIFStatus(ADC_IF);
}
}

BIN
doc/~$项目需求.docx

BIN
doc/项目需求.docx

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

103
project_ozone/project_o.uvgui.admin
File diff suppressed because it is too large
View File

40
project_ozone/project_o.uvopt

@ -284,6 +284,18 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\APP\adc.c</PathWithFileName>
<FilenameWithoutPath>adc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -294,7 +306,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -314,7 +326,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>9</FileNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -326,7 +338,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>10</FileNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -338,7 +350,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -350,7 +362,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -362,7 +374,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -374,7 +386,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -386,7 +398,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -398,7 +410,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -410,7 +422,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -422,7 +434,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>18</FileNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -434,7 +446,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>19</FileNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -454,7 +466,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>20</FileNumber>
<FileNumber>21</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -474,7 +486,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>21</FileNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

5
project_ozone/project_o.uvproj

@ -456,6 +456,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\APP\ozone_work.c</FilePath> <FilePath>..\APP\ozone_work.c</FilePath>
</File> </File>
<File>
<FileName>adc.c</FileName>
<FileType>1</FileType>
<FilePath>..\APP\adc.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

Loading…
Cancel
Save