This commit is contained in:
sunbeam 2024-05-26 20:36:33 +08:00
parent 237e9cdbd9
commit 85e8ddff84
8 changed files with 399 additions and 39 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,15 +1,15 @@
QualityReport
2024年5月22日 22:50:52
2024年5月26日 8:02:42
------ Start build(ECU_APP, DefaultBuild) ------
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe user\MotorCtrl.c -cpu=S2 -o DefaultBuild\MotorCtrl.obj "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F103AA.DVF" -g -g_line -I . -I user -I DataFlash -c -msg_lang=english
W0511106:The folder "DataFlash" specified by the "-I" option is not found.
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\rlink.exe -subcommand=DefaultBuild\ECU_APP.clnk
W0561016:The evaluation version of CC-RL V1 is valid for the remaining 25 days. After that, link size limit (64 Kbyte) will be applied. Please consider purchasing the product.
RAMDATA SECTION: 00000054 Byte(s)
ROMDATA SECTION: 000000b9 Byte(s)
PROGRAM SECTION: 00000d80 Byte(s)
W0561016:The evaluation version of CC-RL V1 is valid for the remaining 25 days. After that, link size limit (64 Kbyte) will be applied. Please consider purchasing the product.
W0561016:The evaluation version of CC-RL V1 is valid for the remaining 52 days. After that, link size limit (64 Kbyte) will be applied. Please consider purchasing the product.
RAMDATA SECTION: 00000068 Byte(s)
ROMDATA SECTION: 000000cd Byte(s)
PROGRAM SECTION: 00001012 Byte(s)
W0561016:The evaluation version of CC-RL V1 is valid for the remaining 52 days. After that, link size limit (64 Kbyte) will be applied. Please consider purchasing the product.
Renesas Optimizing Linker Completed
------ Build ended(Error:0, Warning:3)(ECU_APP, DefaultBuild) ------
@ -63,13 +63,13 @@ DefaultBuild\ECU_APP.clnk :
--- SHA1 hash value of output files ---
E:\workspace\M20\CODE\APP\DefaultBuild\ECU_APP.abs: 680255e542497759b53ad73916a0952ce977927d
E:\workspace\M20\CODE\APP\DefaultBuild\ECU_APP.mot: 077bd7d78138c89e551c1be71ec397b11c54430c
F:\work\M20\CODE\APP\DefaultBuild\ECU_APP.abs: 159ff2781a9e192c766346299be8e6f0dad25d7d
F:\work\M20\CODE\APP\DefaultBuild\ECU_APP.mot: 322740cc4ba6d32d82081af8d5e4e554936232c5
--- System Information ---
*OS Version
Microsoft Windows 10 企业版 LTSC (-, 10.0.17763, WOW64)
Microsoft Windows 10 企业版 LTSC (-, 10.0.19044, WOW64)
*Language
中文(中国)
*.NET Framework Version
@ -92,13 +92,13 @@ E:\workspace\M20\CODE\APP\DefaultBuild\ECU_APP.mot: 077bd7d78138c89e551c1be71ec3
C:\Program Files (x86)\Renesas Electronics\CS+\CC
*Memory Usage
*Private Working Set
197 MB
255 MB
*Number of GDI Objects
1953
2000
*Number of USER Objects
1046
1066
*Opened Files
4 editors, 4 files, 24 KB
5 editors, 5 files, 34 KB
--- Build Tool Plug-in Information ---
RH850 Build tool CC-RH Plug-in
@ -227,7 +227,7 @@ Device Information Common Interface
DeviceInformation.dll
--- Main Project Information ---
E:\workspace\M20\CODE\APP\ECU_APP.mtpj
F:\work\M20\CODE\APP\ECU_APP.mtpj
Microcontroller Information
*R5F103AA
*File Name: Version

View File

@ -26,6 +26,58 @@ void amCtrl_SetState(uint8_t state)
am_state_machine_counter = 0;
}
void amCtrl_SetYTState(QD_STATE_type qd1,QD_STATE_type qd2)
{
if (amCtrl_state != 0)
{
return;
}
switch (qd1)
{
case QD_NONE_ACT:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
break;
case QD_CQ:
setPumpState(PUMP_ON);
setValveState(VALVE1,VALVE_ON);
setValveState(VALVE6,VALVE_OFF);
break;
case QD_FQ:
setPumpState(PUMP_ON);
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE6,VALVE_ON);
break;
default:
break;
}
switch (qd2)
{
case QD_NONE_ACT:
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
break;
case QD_CQ:
setPumpState(PUMP_ON);
setValveState(VALVE2,VALVE_ON);
setValveState(VALVE7,VALVE_OFF);
break;
case QD_FQ:
setPumpState(PUMP_ON);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE7,VALVE_ON);
break;
default:
break;
}
if (qd1 == QD_NONE_ACT && qd2 == QD_NONE_ACT)
{
setPumpState(PUMP_OFF);
}
}
void amCtrl_Task(void)//50ms
{
if (amCtrl_state == 0)
@ -59,6 +111,269 @@ void amCtrl_Task(void)//50ms
}
}
#if CONFIG == HIGH_CONFIG
static void amCtrl_Act1(void)
{
switch (am_state_machine)
{
case 0:
setValveState(VALVE1,VALVE_ON);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 1:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_ON);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_ON);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 2:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_ON);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_ON);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 3:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_ON);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 4:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_ON);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine = 0;
}
break;
default:
am_state_machine = 0;
break;
}
}
static void amCtrl_Act2(void)
{
switch (am_state_machine)
{
case 0:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_ON);
setValveState(VALVE6,VALVE_ON);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 1:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_ON);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 2:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_ON);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 3:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_ON);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 4:
setValveState(VALVE1,VALVE_ON);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_ON);
am_state_machine_counter++;
if (am_state_machine_counter >= 80)
{
am_state_machine_counter = 0;
am_state_machine = 0;
}
break;
default:
am_state_machine = 0;
break;
}
}
static void amCtrl_Act3(void)
{
switch (am_state_machine)
{
case 0:
setValveState(VALVE1,VALVE_ON);
setValveState(VALVE2,VALVE_ON);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 60)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 1:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_ON);
setValveState(VALVE3,VALVE_ON);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_ON);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 60)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 2:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_ON);
setValveState(VALVE4,VALVE_ON);
setValveState(VALVE5,VALVE_OFF);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_ON);
am_state_machine_counter++;
if (am_state_machine_counter >= 60)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 3:
setValveState(VALVE1,VALVE_OFF);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_ON);
setValveState(VALVE5,VALVE_ON);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 60)
{
am_state_machine_counter = 0;
am_state_machine++;
}
break;
case 4:
setValveState(VALVE1,VALVE_ON);
setValveState(VALVE2,VALVE_OFF);
setValveState(VALVE3,VALVE_OFF);
setValveState(VALVE4,VALVE_OFF);
setValveState(VALVE5,VALVE_ON);
setValveState(VALVE6,VALVE_OFF);
setValveState(VALVE7,VALVE_OFF);
am_state_machine_counter++;
if (am_state_machine_counter >= 60)
{
am_state_machine_counter = 0;
am_state_machine = 0;
}
break;
default:
am_state_machine = 0;
break;
}
}
#else
static void amCtrl_Act1(void)
{
switch (am_state_machine)
@ -186,4 +501,6 @@ static void amCtrl_Act3(void)
default:
break;
}
}
}
#endif

View File

@ -1,11 +1,18 @@
#ifndef __MOTORCTRL_H__
#ifndef __MOTORCTRL_H__
#define __MOTORCTRL_H__
#include "r_cg_macrodriver.h"
typedef enum {
QD_NONE_ACT,
QD_CQ,
QD_FQ,
QD_STATE_NUM,
}QD_STATE_type;
void amCtrl_Task(void);
void amCtrl_SetState(uint8_t state);
void amCtrl_Init(void);
void amCtrl_SetYTState(QD_STATE_type qd1,QD_STATE_type qd2);
#endif

View File

@ -29,7 +29,9 @@
#define HIGH_CONFIG 1
#define LOW_CONFIG 0
#define CONFIG HIGH_CONFIG
#endif

View File

@ -288,12 +288,29 @@ void value_init(void)
void KeyPro(void)
{
if (getKeyPressFlag(0) == KEY_PRESSED)
if (getKeyPressFlag(KEYID_K13) == KEY_PRESSED)
{
am_state = !am_state;
amCtrl_SetState(am_state);
}
#if CONFIG == HIGH_CONFIG
if (getKeyPressFlag(KEYID_K14) == KEY_PRESSED)
{
amCtrl_SetYTState(QD_CQ,QD_CQ);
}
if (getKeyPressFlag(KEYID_K9) == KEY_PRESSED)
{
amCtrl_SetYTState(QD_FQ,QD_CQ);
}
if (getKeyPressFlag(KEYID_K10) == KEY_PRESSED)
{
amCtrl_SetYTState(QD_FQ,QD_FQ);
}
if (getKeyPressFlag(KEYID_K11) == KEY_PRESSED)
{
amCtrl_SetYTState(QD_CQ,QD_FQ);
}
#endif
}

View File

@ -64,12 +64,10 @@ extern unsigned char keybyte1,keybyte2;
void KeyScan(void)
{
uint8_t i,key,key_nopress;
uint16_t keyad = 0;
key_nopress = 0;
for (i = 0; i < KEY_NUM; i++)
{
keyad = getAdval(AD_ST3_KEY);
key = (keyad>850&&keyad<950)?KEY_PRESSED:KEY_NOPRESSED;
key = GetSigState(i);
if (key == KEY_PRESSED && keystate[i] == KEY_NOPRESSED)
{
keydelay[i]++;
@ -100,11 +98,22 @@ void KeyScan(void)
}
uint8_t GetIOState(uint8_t keyno)
uint8_t GetSigState(uint8_t sigid)
{
switch (keyno)
uint16_t adval;
adval = getAdval(AD_ST3_KEY);
switch (sigid)
{
case KEYID_K9:
return (adval>405&&adval<505)?1:0;//455
case KEYID_K10:
return (adval>608&&adval<708)?1:0;//658
case KEYID_K11:
return (adval>204&&adval<304)?1:0;//254
case KEYID_K13:
return (adval>852&&adval<952)?1:0;//902
case KEYID_K14:
return (adval<50)?1:0;//0
default:
return 0;
}

View File

@ -29,10 +29,18 @@ typedef enum {
AD_ST_NUM,
} AD_STEP_type;
typedef enum {
KEYID_K9,
KEYID_K10,
KEYID_K11,
KEYID_K13,
KEYID_K14,
KEY_NUM,
}KEYID_type;
#define KEY_PRESSED 1
#define KEY_NOPRESSED 0
#define KEY_NUM 1
#define PUMP_ON 1
#define PUMP_OFF 0
@ -52,7 +60,7 @@ void ClearKeyState(void);
uint8_t GetKeyState(uint8_t keyno);
uint8_t getKeyReleaseFlag(uint8_t id);
uint8_t getKeyPressFlag(uint8_t id);
uint8_t GetIOState(uint8_t keyno);
uint8_t GetSigState(uint8_t keyno);
void setPumpState(uint8_t state);
void setValveState(uint8_t valve_id,uint8_t state);
void setHeatDuty(uint8_t duty);