Electricity/USER/mian.c

139 lines
3.3 KiB
C
Raw Normal View History

/*
*Copyright ,2023 , NANOCHAP
*File name: MIAN.C
*Author:
*Version: V1.0
*Date: 2023-11-
*Description: <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD>ۺϲ<EFBFBD><EFBFBD>ԣ<EFBFBD>TIMER0 + <EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD>
*Function List:
History:
1.V1.0
Date:
Author:
Modification: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#include "my_header.h"
#include "ENS1_MTP.h"
#include "ENS1_CLOCK.h"
#include "ENS1_UART.h"
#include "ENS1_TIMER.h"
#include "ENS1_GPIO.h"
#include "ENS1_WAVEGEN.h"
int main(){
// <20><>ʼ<EFBFBD><CABC>ϵͳ
MTP_init();
ClockInit();
// <20><>ʼ<EFBFBD><CABC>GPIO19<31><39><EFBFBD>ڶ<EFBFBD>ʱ<EFBFBD><CAB1>ָʾ
GPIO_IO_Init(GPIO_19, OUTPUT, 0x00, 0x02, 0x00, 0x00, ENABLE);
GPIO_Output(GPIO_19, LOW_LEVEL);
// <20><>ʼ<EFBFBD><CABC>UART
UART_Init(CMSDK_UART1, &UART1_Init);
UART_ITConfig(CMSDK_UART1, &UART1_ITSet);
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wavegen_Init֮ǰ<D6AE><C7B0>
TIMER0_Init(1);
// <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Time_Manager_Init();
// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>Ϣ
// printf("APB_Clock_Freq: %d Hz\n", APB_Clock_Freq);
// printf("TIMER0<52><30>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><CCBC><EFBFBD>
wavegen_Init();
// <20><><EFBFBD>õ<EFBFBD><C3B5>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD>
EMS_Config_TypeDef ems_config = {
.frequency = 100, // 100Hz
.duration = 1000, // 1000ms
.intensity = 128, // <20>е<EFBFBD>ǿ<EFBFBD><C7BF>
.rest_time = 100, // 100ms<6D><73>Ϣʱ<CFA2><CAB1>
.silent_time = 50 // 50ms<6D><73>Ĭʱ<C4AC><CAB1>
};
EMS_Configure(&ems_config);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>
EMS_Start();
// printf("========================================\n");
// printf("<22><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><CCBC>ۺϲ<DBBA><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
// printf("========================================\n");
// printf("GPIO19: <20><>ʱ<EFBFBD><CAB1>ָʾ<D6B8><CABE>1<EFBFBD>뷭ת<EBB7AD><D7AA>\n");
// printf("<22><><EFBFBD>̼<EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>128<32><38>\n");
// printf("ϵͳʱ<CDB3><CAB1>: 32MHz HSI\n");
// printf("<22><>ѹ<EFBFBD><D1B9>ѹ: 26V\n");
// printf("UART<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 115200\n");
// printf("========================================\n");
// <20><><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>main<69><6E><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD>
static uint8_t ems_control_count = 0; // <20><><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>
static uint8_t ems_state = 0; // <20><><EFBFBD>̼<EFBFBD>״̬<D7B4><CCAC>0=<3D>رգ<D8B1>1=<3D><><EFBFBD><EFBFBD>
while(1)
{
// <20><>ȡʱ<C8A1><CAB1><EFBFBD><EFBFBD>־λ
Time_Flag_TypeDef* time_flags = Time_Manager_GetFlags();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
// ע<><EFBFBD><E2A3BA><EFBFBD><EFBFBD><EFB2BB>ֱ<EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>EMS_Process()<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>־λִ<CEBB>в<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
if (time_flags->T_2ms) {
// 2ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
time_flags->T_2ms = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
}
if (time_flags->T_10ms) {
// 10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
time_flags->T_10ms = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
}
if (time_flags->T_100ms) {
// 100ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
time_flags->T_100ms = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
}
if (time_flags->T_1s) {
// 1s<31><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
ems_control_count++; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>Էŵ<D4B7><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>
if (ems_control_count <= 10) {
// ǰ10<31><EFBFBD><EBA3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>
if (ems_state == 0) {
ems_state = 1;
EMS_Start(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>
// printf("<22><><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD> - <20><>%d<><64>\n", ems_control_count);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>
EMS_Process();
} else if (ems_control_count <= 20) {
// <20><>10<31><EFBFBD>رյ<D8B1><D5B5>̼<EFBFBD>
if (ems_state == 1) {
ems_state = 0;
EMS_Stop(); // ֹͣ<CDA3><D6B9><EFBFBD>̼<EFBFBD>
// printf("<22><><EFBFBD>̼<EFBFBD><CCBC>ر<EFBFBD> - <20><>%d<><64>\n", ems_control_count);
}
} else {
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
ems_control_count = 0;
// printf("<22><><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
GPIO_Overturn(GPIO_19); // GPIO19<31><39>ת
// printf("1s<31><73>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4> - ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>״̬: %s\n",
// ems_state ? "<22><><EFBFBD><EFBFBD>" : "<22>ر<EFBFBD>");
time_flags->T_1s = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
}
// <20><>ʱ<EFBFBD><CAB1><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD> TIMER0_Handler() <20><>
}
}