初步代码

This commit is contained in:
sunbeam 2023-11-18 23:37:59 +08:00
parent 7c1d5cd670
commit 79a1926fa5
12 changed files with 1251 additions and 1114 deletions

View File

@ -1,15 +1,16 @@
:800000000D01000067010000000000000000000000000000E1016901AE0100000000000046026002000000001002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053
:80000000CE00000028010000000000000000000000000000A2012A016F010000000000000702210200000000D10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004D
:390082000002000002F7080801000AF70802010012F700000000000000000000000000000000000000000000000000000000000000000000000000000024
:0400C000FFFFE0045A
:0A00C4000000000000000000000032
:3F00CE005008000002F7990801000AF7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF
:FF010D00CBF820FE308AF7FC620200FCDE02003600F73049F7EF04CC0000A747DFF93620FE3020FEEF04CC0000A747DFF94100323F00EF08B31149CE00484AF7F643DFF44100320000EF08B3114980004820FEF643DFF4FCA60200F6EFFE61FCC1C3C5C78EFD708EFCC1C78D129800AF34F74232F7880061D323EB30F799A230F7A232F7AF34F74232F761F8FC990500C0C09EFC609EFDC6C4C2C061FC318EFC9D0500EFEBC1C3C5C78EFD708EFCC1C7EB30F78D1299AF0201605C0798008800318EBF0A018800FC9F0500C0C09EFC609EFDC6C4C2C061FCC1C3C5C78EFD708EFCC1AF2EF7F743DF06FC9E0500EF0CEB2CF7899D10A22CF7B22EF7C09EFC609EFDC6C405
:56020C00C2C061FCC1C3C5C78EFD708EFCC18E3191DD1291DD1BCE3101C09EFC609EFDC6C4C2C061FC3036F7FCF70500CE3102EFE83038F7FCF70500EFDCC1C3C5C78EFD708EFCC1FCC60700C09EFC609EFDC6C4C2C061FC61FC58
:FF02620016C80300AEF82761D339315E12F643DD27BBBC02BC04BC06BC08BC0ABC0CBC0EBC10BC12BC14BC16BC18BC1ABC1CBC1E3704200037B3EFD6AEF847DD06F6BBA7A7EFF5D7717AFAFCD50600FCF00600FC970700EFFA717AFAD7F57700FCF40200FCE30200FC5D0400FC820400FCA30500FCFE0500FC480400F57800D7717BFAEFD836A1FFCEA00071F2714BA4F5F3007183D78EA8D7FC0A0500E73013F7FC5A0500F512F7D74C04DF0DD513F7DF05CF12F702D7E512F7D720068F12F798030CFEDD3691DD4091DF3AE91DF78F1CF7614B61C8EEE90073D913F7601814F783639F1CF760318E022AF7BF2AF7440001DC120401FFBF2AF7EF0ACF13F755880381EC
:FF0361009F12F7EEAF008F13F79800F19802318E12312D14311C1305044AF71688004DDD0B88028198024C02DCE4EF2A17A114F51CF78998049F1DF78800318EB800BF2AF71704040016A5AB16BF1EF789D18803DF06819F12F7EF540C029F12F7F1980288047088026148DE27318E0714880273891820F7C2C389318E0312440001DC040401FF12BF2AF78802819802C0C3EFD088047388007CFF1820F7318EBF2AF78804318E12A33020F7FC72050088024C0261F8E512F7E73013F71006EC5A050051FF7F2AF772318EBF2AF7624F13F7DFE2E512F7F172614BDED9318E021EF7142914F7998262EFEE36E4FF7182710BE0710AEC710AE87183D7CEABACD734600097
:FF046000CD01E0CD0503CA00FDCA0E7FCA1603CE20FFCE211FCE22FFCE23FFCE25FCCE2EFFD736F00030330071A200000000BC36347000AAB4086C0308BAB4710AE5710BE1711AE5711BE1712AE5712BE1710AED710AE9711AED711AE9712AED712AE9302200BAA0309780BAA8C910009A89718A99300700BA9A302201BAA2309744BAAAC912009AAAB8086C0108BAB8AAC4BAC4AABA086C0108BABA51026F21FF9E216A010451FB5F21FF9E21D7342201AA06086C0108BA06AA08086C0108BA08A9086C0308B9710BE1711BE1712BE1710BE5711BE5712BE5D7342401710AE5711AE5712AE5A9086C0308B9AA06085CFE08BA06710BE1711BE1712BE1D714136168DFC8
:FF055F0004308100D7F6BF32F713BF34F715BF30F7F6D714136168DF04308100D736E5FF15BF2CF713BF2EF77182EB2CF7899D10A22CF7B22EF77183F6D7EC190300D7D7EC07030030100004E0001634100071D2CE3000712AE6712BE2712AEE712AEA51036F22FF9E22CE3008CE32A0CA0000CA01FFCA0200CE3101710A30D7712BE2712BE6717A30D7717B30712AE6712BE2D7710A30D7710B30D714AD1E316EB9D734F00036F000F67182BAC630FF0ABAC4714AE6714BE2715AE6715BE2717AE5717BE1716AE6716BE2717AE6717BE2712AE6712BE2717AE7717BE3710AD4710BD0711AD4711BD0712AD4712BD0714AEE714AEA715AEE715AEAF6BAA0C918BF5DAA95
:FF065E00C8085CFE08BAC8AACA085CFE08BACAF6BAA2C91A5F09AACE085CFD08BACEAACC085CFD08BACCAAC8085CFD08BAC8AACA085CFD08BACAD734B201714BE2714BE6A9086C0108B9D734B401A9086C0108B9714AE6714BE2D734B201715BE2715BE6A9086C0208B9D734B401A9086C0208B9715AE6715BE2D7FC3B0800FC950600FCDB0500FCEF0500FCB50600712204ECF70200C7F19800318E12311CF67856F78800731976F700836398004C10DFE8C0D7D72004F1EF4F819802FC6008007291DF298800318E148800730976F7D1DF1B1501B8000456F714A9A1B9440700DC201976F701C2C3300600EF12D2DF1288007388001976F700318E12311CF67856F768
:FF075D0088024C10DD049800EFAD1004D7F17370723117606101700976F7D1DD0460718A70097EF7D1DD0462718A7283634C08DFE0609F0AF7629F0BF7D74043F701DF09F543F7FE6CFFFEC4FF4044F70161F8F544F74047F701DF07F547F7FC5904004048F70161F8F548F7D7A240F7E542F7AF40F7320500FC4C0900F74361F8E543F7AF40F7520AFC4C0900F74361F8E544F7AF40F75214FC4C0900F74361F8E545F7AF40F75232FC4C0900F74361F8E546F7AF40F75264FC4C0900F74361F8E547F7AF40F732E803FC4C0900F74361F8E548F7AF40F74460EADC04F6BF40F7D73621FF712B2471C2713B2271A2D7D7141304E2FF45DE0C13041E0045E161E3F131E5
:F0085C008ED7F6D791DD3B91DD3E91DD4191DD4491DD4591DD4691DD4C91DD4F91DD5191DD5E91DD6B91DD789161F8EE82009161F8EE8C009161F8EE96009161F8EEA000F1D78D01311AEF188D0D317AEF148D0C312AEF0C8D0CEFEC8D01EFF48D01313A5C017C01D78D01314AEFF5E15B01EFF2AF38F732B300FE75FFF743E161F8F1D7AF38F732FF01FE65FFF743E161F8F1D7AF38F7323101FE55FFF743E161F8F1D7AF38F732B802FE45FFF743E161F8F1D7AF36F732B300FE35FFF743E161F8F1D7AF36F732FF01FE25FFF743E161F8F1D7AF36F7323101FE15FFF743E161F8F1D7AF36F732B802FE05FFF743E161F8F1D719
:29094C0014F64315DD2261DD717BFACFE80080BEF013BEF6F6BEF2BEF4CFE800818FE8003103FAAFE00061CDD788
:FF00CE00CBF820FE3092F7FC230200FC9F02003600F73057F7EF04CC0000A747DFF93620FE3020FEEF04CC0000A747DFF94100323900EF08B3114982004858F7F643DFF44100320000EF08B3114980004820FEF643DFF4FC670200F6EFFE61FCC1C3C5C78EFD708EFCC1C78D129800AF3CF7423AF7880061D323EB38F799A238F7A23AF7AF3CF7423AF761F8FC5F0500C0C09EFC609EFDC6C4C2C061FC318EFC630500EFEBC1C3C5C78EFD708EFCC1C7EB38F78D1299AF0201605C0798008800318EBF0A018800FC650500C0C09EFC609EFDC6C4C2C061FCC1C3C5C78EFD708EFCC1AF36F7F743DF06FC640500EF0CEB34F7899D10A234F7B236F7C09EFC609EFDC6C4B8
:5601CD00C2C061FCC1C3C5C78EFD708EFCC18E3191DD1291DD1BCE3101C09EFC609EFDC6C4C2C061FC303EF7FCBD0500CE3102EFE83040F7FCBD0500EFDCC1C3C5C78EFD708EFCC1FC680800C09EFC609EFDC6C4C2C061FC61FC59
:FF02230016C80300AEF82761D339315E12F643DD27BBBC02BC04BC06BC08BC0ABC0CBC0EBC10BC12BC14BC16BC18BC1ABC1CBC1E3704200037B3EFD6AEF847DD06F6BBA7A7EFF5D7717AFAFC9B0600FCB60600FC360800EFFA717AFAD7F57700FCB50200FCA40200FC230400FC480400FC690500FCC40500FC0E0400F57800D7717BFAEFD836A1FFCEA00071F2714BA4F5F3007183D78EA8D7FCD00400E7301BF7FC200500F51AF7D74C04DF0DD51BF7DF05CF1AF702D7E51AF7D720068F1AF798030CFEDD3691DD4591DF3FE925F78F24F7614B61C8EEEE0073D91BF760181CF783639F24F760318E0232F7BF32F7440001DC170401FFBF32F7EF0F401BF75561E8EEE7
:FF032200B5008803819F1AF7EEAF008F1BF79800F19802318E12312D14311C13050458F71688004DDD0B88028198024C03DCE4EF2A17A114F524F78998049F25F78800318EB800BF32F71704040016A5AB16BF26F789D18803DF06819F1AF7EF540C029F1AF7F1980288047088026148DE27318E0714880273891828F7C2C389318E0312440001DC040401FF12BF32F78802819802C0C3EFD088047388007CFF1828F7318EBF32F78804318E12A33028F7FC38050088024C0361F8E51AF7E7301BF71006EC20050051FF7F32F772318EBF32F7624F1BF7DFE2E51AF7F172614BDED9318E0226F714291CF7998262EFEE36E4FF7182710BE0710AEC710AE87183D7CEABE8
:FF042100ACD7346000CD01E0CD0503CA00FDCA0E7FCA1603CE20FFCE211FCE22FFCE23FFCE25FCCE2EFFD736F00030330071A200000000BC36347000AAB4086C0308BAB4710AE5710BE1711AE5711BE1712AE5712BE1710AED710AE9711AED711AE9712AED712AE9302200BAA0309780BAA8C910009A89718A99300700BA9A302201BAA2309744BAAAC912009AAAB8086C0108BAB8AAC4BAC4AABA086C0108BABA51026F21FF9E216A010451FB5F21FF9E21D7342201AA06086C0108BA06AA08086C0108BA08A9086C0308B9710BE1711BE1712BE1710BE5711BE5712BE5D7342401710AE5711AE5712AE5A9086C0308B9AA06085CFE08BA06710BE1711BE1712BE1D7BF
:FF05200014136168DF04308100D7F6BF3AF713BF3CF715BF38F7F6D714136168DF04308100D736E5FF15BF34F713BF36F77182EB34F7899D10A234F7B236F77183F6D7ECDA0200D7D7ECC8020030100004E0001634100071D2CE3000712AE6712BE2712AEE712AEA51036F22FF9E22CE3008CE32A0CA0000CA01FFCA0200CE3101710A30D7712BE2712BE6717A30D7717B30712AE6712BE2D7710A30D7710B30D714AD1E316EB9D734F00036F000F67182BAC630FF0ABAC4714AE6714BE2715AE6715BE2717AE5717BE1716AE6716BE2717AE6717BE2712AE6712BE2717AE7717BE3710AD4710BD0711AD4711BD0712AD4712BD0714AEE714AEA715AEE715AEAF6BAA0EC
:FF061F00C918BF5DAAC8085CFE08BAC8AACA085CFE08BACAF6BAA2C91A5F09AACE085CFD08BACEAACC085CFD08BACCAAC8085CFD08BAC8AACA085CFD08BACAD734B201714BE2714BE6A9086C0108B9D734B401A9086C0108B9714AE6714BE2D734B201715BE2715BE6A9086C0208B9D734B401A9086C0208B9715AE6715BE2D7FCDD0800FC5B0600FCA10500FCB50500FC7B0600710201ECB80200C7F19800318E12311CF6786AF78800731984F700836398004C0DDFE8C0D78F02F773316A709F4CF763314A5C039F4DF760FCB609008F4DF7ECE709002004F1EF4F819802FCF508007291DF298800318E148800730984F7D1DF1B1501B800046AF714A9A1B9440700BB
:FF071E00DC201984F701C2C3300600EF12D2DF1288007388001984F700318E12311CF6786AF788024C0DDD049800EFAD1004D74C0EDE0D73D3DD090984F7D1E161F8F1D7F1D7C7510DFEE7FF718C3646F7510571C1FEDBFF98005106FED4FF708800733118606163635C037051FC5F45F761089F45F75103FEB8FF98005104FEB1FF708800733118606163635C037051FC5F44F761089F44F75107FE95FF98005108FE8EFF7051F35F44F77388006101616831295C0C610B9F44F75109FE73FF9800510BFE6CFF7051CF5F44F77388006101616831495C30610B9F44F7510AFE51FF9800510CFE4AFF7051CF5F45F77388006101616831495C30610B9F45F7F1730944D5
:FF081D00F7180AF783634C08DFF3E1FE22FF5102FE1DFFCF12F7F0C0D74051F701DF09F551F7FEB0FEFE1BFF4052F701DF06F552F7FE83FE4055F701DF07F555F7FC1F04004056F70161F8F556F7D7A24EF7E550F7AF4EF7320500FC1A0A00F74361F8E551F7AF4EF7520AFC1A0A00F74361F8E552F7AF4EF75214FC1A0A00F74361F8E553F7AF4EF75232FC1A0A00F74361F8E554F7AF4EF75264FC1A0A00F74361F8E555F7AF4EF732E803FC1A0A00F74361F8E556F7AF4EF74460EADC04F6BF4EF7D7D7D7141304E2FF45DE0C13041E0045E161E3F1318ED7F6D791DD2991DD3691DD4391DD4691DD4991DD4F91DD5291DD5591DD5691DD6391DD7091DD7D9161F82B
:FE091C00EE8700F1D7AF3EF732FF01FEB5FFF743E161F8F1D7AF3EF732B802FEA5FFF743E161F8F1D78D01314AEF0A8D01313AEF048D00311A5C017C01D78D02312AEFF58D0E317AEFF18D02EFE3AF40F7321E00FE70FFF743E161F8F1D7AF40F732B300FE60FFF743E161F8F1D7AF40F7323101FE50FFF743E161F8F1D7AF40F732FF01FE40FFF743E161F8F1D7AF40F732B802FE30FFF743E161F8F1D7D1DD0A91DD2191DD1591DD0BD73601FF71D271E271F2D73601FF71D3EFF43601FF71D371E3EFED3601FF71D371E371F3D7D1DD0A91DD2291DD1691DD0CD73605FF71927182710203D73605FF7193EFF33605FF71937183EFEC3605FF71937183710303D7C9
:290A1A0014F64315DD2261DD717BFACFE80080BEF013BEF6F6BEF2BEF4CFE800818FE8003103FAAFE00061CDD7B9
:00000001FF

View File

@ -1,14 +1,13 @@
QualityReport
2023年11月18日 20:40:48
2023年11月18日 22:13:13
------ Start build(lin_test, DefaultBuild) ------
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe r_cg_port.c -cpu=S2 -o DefaultBuild\r_cg_port.obj "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F103AA.DVF" -g -g_line -I . -I user -c -msg_lang=english
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe r_cg_timer.c -cpu=S2 -o DefaultBuild\r_cg_timer.obj "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F103AA.DVF" -g -g_line -I . -I user -c -msg_lang=english
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe user\appTask.c -cpu=S2 -o DefaultBuild\appTask.obj "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F103AA.DVF" -g -g_line -I . -I user -c -msg_lang=english
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\rlink.exe -subcommand=DefaultBuild\lin_test.clnk
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
RAMDATA SECTION: 00000088 Byte(s)
ROMDATA SECTION: 000000cd Byte(s)
PROGRAM SECTION: 00000868 Byte(s)
RAMDATA SECTION: 00000090 Byte(s)
ROMDATA SECTION: 000000c7 Byte(s)
PROGRAM SECTION: 00000975 Byte(s)
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
Renesas Optimizing Linker Completed
------ Build ended(Error:0, Warning:2)(lin_test, DefaultBuild) ------
@ -65,8 +64,8 @@ DefaultBuild\lin_test.clnk :
--- SHA1 hash value of output files ---
E:\workspace\K74\K74B\CODE\K74B\DefaultBuild\lin_test.abs: bba7b0d60dee8c2bf9f2ec8381b565d0377cc872
E:\workspace\K74\K74B\CODE\K74B\OUTPUT\lin_test.hex: cb527fff9facbb616ebc9be3ad171bfea2edafc1
E:\workspace\K74\K74B\CODE\K74B\DefaultBuild\lin_test.abs: db69cc55ae92614fa40d676cd7c7a8935a1a461d
E:\workspace\K74\K74B\CODE\K74B\OUTPUT\lin_test.hex: 82fb5639bd869139b2e8b5cff81bfcf21edd6f93
--- System Information ---
@ -94,13 +93,13 @@ E:\workspace\K74\K74B\CODE\K74B\OUTPUT\lin_test.hex: cb527fff9facbb616ebc9be3ad1
C:\Program Files (x86)\Renesas Electronics\CS+\CC
*Memory Usage
*Private Working Set
208 MB
256 MB
*Number of GDI Objects
2144
2255
*Number of USER Objects
1113
1250
*Opened Files
1 editors, 1 files, 5 KB
3 editors, 3 files, 10 KB
--- Build Tool Plug-in Information ---
RH850 Build tool CC-RH Plug-in

View File

@ -22,7 +22,6 @@ void UARTLIN_Init(void)
//间隔场中断处理
void UARTLIN_Break_Handle(uint8_t flag)
{
//OUT_BL_CTRL = 1;
if (flag == 0X04)
{
if (lin_rxdata == 0x00)
@ -46,7 +45,7 @@ void UARTLIN_Rx_Handle(void)
switch (lin_state)
{
case LIN_STATE_BREAK:
if (lin_rxdata = 0x55)
if (lin_rxdata == 0x55)
{
lin_state++;
@ -86,9 +85,8 @@ void UARTLIN_Rx_Handle(void)
}
rxchecksum ^= 0xff;
rxchecksum &= 0xff;
txbuf[rxlen] = rxchecksum;
txbuf[rxlen] = (uint8_t)rxchecksum;
R_UART0_Send(txbuf,rxlen+1);
//OUT_BL_CTRL = 1;
}
break;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,11 @@
#include "lin_user.h"
uint8_t g_rxbuf[8],g_txbuf[8];
uint8_t g_rxbuf[8],g_txbuf1[8],g_txbuf2[8];
//加const报错
MSGTYPE LIN_cfg_arr[MSG_NUM] =
{ //PID LEN DIR BUFFER
{0x50,8,MSG_DIR_RX,g_rxbuf},
{0x99,8,MSG_DIR_TX,g_txbuf}
{0x00,2,MSG_DIR_RX,g_rxbuf},
{0x08,8,MSG_DIR_TX,g_txbuf1},
{0x08,2,MSG_DIR_TX,g_txbuf2},
};

View File

@ -4,9 +4,9 @@
#include "r_cg_macrodriver.h"
//config
#define MSG_NUM 2
#define MSG_NUM 3
extern uint8_t g_rxbuf[8],g_txbuf[8];
extern uint8_t g_rxbuf[8],g_txbuf1[8],g_txbuf2[];

View File

@ -18,10 +18,7 @@
#define SIGID_KEY11 11
#define SIGID_KEY12 12
#define SIGID_KEY13 13
#define SIGID_KEY14 14
#define SIGID_KEY15 15
#define SIGID_KEY16 16
#define KEY_NUM 16
#define KEY_NUM 13
#if BOARDCFG == LEFT_BOARD
#define IN_KEY1 P4_bit.no2
@ -39,17 +36,21 @@
#define ADCH_KEYAD2 1
#else
#define IN_KEY1 P1_bit.no1
#define IN_KEY2 P13_bit.no7
#define IN_KEY3 P12_bit.no2
#define IN_KEY4 P12_bit.no1
#define IN_KEY5 P1_bit.no2
#define IN_KEY6 P1_bit.no3
#define IN_KEY7 P1_bit.no4
#define IN_KEY8 P1_bit.no0
#define IN_KEY3 P1_bit.no4
#define IN_KEY4 P1_bit.no3
#define IN_KEY5 P0_bit.no1
#define IN_KEY6 P2_bit.no2
#define IN_KEY7 P14_bit.no7
#define IN_KEY8 P2_bit.no3
#define OUT_BL_CTRL P2_bit.no3
#define OUT_LINEN P4_bit.no2
#define OUT_LINEN P1_bit.no0
#define OUT_LED1 P1_bit.no5
#define OUT_LED2 P1_bit.no6
#define OUT_LED3 P1_bit.no7
#define OUT_LED4 P5_bit.no1
#define OUT_LED5 P5_bit.no0
#define OUT_LED6 P3_bit.no0
#define ADCH_KEYAD1 1
#define ADCH_KEYAD2 0

View File

@ -10,13 +10,39 @@
#include "lin_user.h"
#include "UARTLIN_Drv.h"
#include "PINdef.h"
uint8_t g_rx_buf[3];
#include "r_cg_wdt.h"
extern uint16_t g_AdVal[3];
static uint16_t keydelay[KEY_NUM]={0};
static uint8_t keyflag[KEY_NUM]={0};
typedef struct
{
//BYTE 0
uint8_t HG:2;//滑轨
uint8_t KB:2;//靠背
uint8_t TZ:2;//头枕
uint8_t REVERSE01:2;
//BYTE 1
uint8_t TT:2;
uint8_t REVERSE11:2;
uint8_t ZY:2;
uint8_t REVERSE12:2;
//BYTE 2
uint8_t REVERSE21:4;
uint8_t FW:1;//复位
uint8_t REVERSE22:3;
//3-7
uint8_t REVERSE3;
uint8_t REVERSE4;
uint8_t REVERSE5;
uint8_t REVERSE6;
uint8_t REVERSE7;
}LIN_MSG_TYPE;
LIN_MSG_TYPE LIN_msg_buf;
void HardWare_Init(void)
{
IO_Init();
@ -28,7 +54,6 @@ void HardWare_Init(void)
R_ADC_Set_OperationOn();
R_TAU0_Channel1_Start();
//OUT_BL_CTRL = 1;
OUT_LINEN = 1;
UARTLIN_Init();
}
@ -44,22 +69,14 @@ void Variable_Init(void)
}
uint8_t datacount=0;
uint8_t RxTimeoutCount=0;
static uint8_t Rxdata[10];
uint8_t RxFlag=0;
void keyLogic(uint8_t keyno)
uint8_t fan_state,heat_state;
void LED_Ctrl(void)
{
switch (keyno)
{
fan_state = (g_rxbuf[0]&0xc0)>>6;
heat_state = (g_rxbuf[0]&0x30)>>4;
FanLED_Ctrl(fan_state);
HeatLED_Ctrl(heat_state);
default:
break;
}
}
#define KEY_DELAY_TIME 6
@ -91,31 +108,43 @@ void keyScan(void)//5ms
}
extern uint8_t g_txbuf[8];
uint8_t GetKeyFlag(uint8_t keyid)
{
if (keyid > 0 && keyid <= KEY_NUM)
{
return keyflag[keyid]?1:0;
}
else
{
return 0;
}
}
extern uint8_t g_txbuf1[8];
void TxMsgPro(void)
{
uint8_t temp1=0,temp2=0,i;
uint8_t temp=0,i;
LIN_msg_buf.FW = GetKeyFlag(SIGID_KEY13);
LIN_msg_buf.TT = GetKeyFlag(SIGID_KEY5)<<1|GetKeyFlag(SIGID_KEY6);
LIN_msg_buf.HG = GetKeyFlag(SIGID_KEY3)<<1|GetKeyFlag(SIGID_KEY4);
LIN_msg_buf.KB = GetKeyFlag(SIGID_KEY7)<<1|GetKeyFlag(SIGID_KEY8);
LIN_msg_buf.TZ = GetKeyFlag(SIGID_KEY9)<<1|GetKeyFlag(SIGID_KEY11);
LIN_msg_buf.ZY = GetKeyFlag(SIGID_KEY10)<<1|GetKeyFlag(SIGID_KEY12);
for (i = 0; i < 8; i++)
{
temp1<<=1;
temp2<<=1;
if (keyflag[i])
{
temp1 |= 0x01;
}
if (keyflag[i+8])
{
temp2 |= 0x01;
}
g_txbuf1[i] = ((uint8_t *)(&LIN_msg_buf))[i];
}
g_txbuf[0] = temp1;
g_txbuf[1] = temp2;
temp = 0xf0;
temp |= GetKeyFlag(SIGID_KEY1)<<4;
temp |= GetKeyFlag(SIGID_KEY2)<<5;
g_txbuf2[0] = temp;
}
void AppTask(void)
{
static uint8_t ledno = 1,last = 0;
if (TimeBase5msFlag == 1)
{
TimeBase5msFlag = 0;
@ -127,6 +156,7 @@ void AppTask(void)
if (TimeBase10msFlag == 1)
{
TimeBase10msFlag = 0;
LED_Ctrl();
}
if (TimeBase100msFlag == 1)

View File

@ -11,12 +11,7 @@
void IO_Init(void)
{
#if BOARDCFG == RIGHT_BOARD
PM4_bit.no2 = IO_OUTPUT;
PM1_bit.no4 = IO_INPUT;
PM2_bit.no3 = IO_OUTPUT;
PM1_bit.no2 = IO_INPUT;
#endif
}
void Output_Ctrl(uint8_t state)
@ -34,6 +29,7 @@ isKeyMatchAd(uint16_t val,uint16_t match)
return 0;
}
#define KEY_AD_V0 30
#define KEY_AD_V1 179
#define KEY_AD_V2 305
#define KEY_AD_V3 511
@ -45,71 +41,101 @@ uint8_t GetKeyState(uint8_t keyno)
switch (keyno)
{
case SIGID_KEY1:
return IN_KEY1?0:1;
break;
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V3)?1:0;
case SIGID_KEY2:
return IN_KEY2?0:1;
break;
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V4)?1:0;
case SIGID_KEY3:
return IN_KEY3?0:1;
break;
case SIGID_KEY4:
return IN_KEY4?0:1;
break;
case SIGID_KEY5:
return IN_KEY5?0:1;
break;
case SIGID_KEY6:
return IN_KEY6?0:1;
break;
case SIGID_KEY7:
return IN_KEY7?0:1;
break;
case SIGID_KEY8:
return IN_KEY8?0:1;
break;
case SIGID_KEY9:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V1)?1:0;
break;
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V0)?1:0;
case SIGID_KEY10:
#if BOARDCFG == LEFT_BOARD
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V2)?1:0;
#else
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V3)?1:0;
#endif
break;
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V1)?1:0;
case SIGID_KEY11:
#if BOARDCFG == LEFT_BOARD
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V3)?1:0;
#else
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V2)?1:0;
#endif
break;
case SIGID_KEY12:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V4)?1:0;
break;
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V3)?1:0;
case SIGID_KEY13:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V1)?1:0;
break;
case SIGID_KEY14:
#if BOARDCFG == LEFT_BOARD
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V2)?1:0;
#else
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V3)?1:0;
#endif
break;
case SIGID_KEY15:
#if BOARDCFG == LEFT_BOARD
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V3)?1:0;
#else
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V2)?1:0;
#endif
break;
case SIGID_KEY16:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V4)?1:0;
break;
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V4)?1:0;
default:
return 0;
}
}
#define LED_OFF 1
#define LED_ON 0
#define LEDF1 OUT_LED1
#define LEDF2 OUT_LED2
#define LEDF3 OUT_LED3
#define LEDH1 OUT_LED4
#define LEDH2 OUT_LED5
#define LEDH3 OUT_LED6
void FanLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
LEDF1 = LED_OFF;
LEDF2 = LED_OFF;
LEDF3 = LED_OFF;
break;
case 3:
LEDF1 = LED_ON;
LEDF2 = LED_OFF;
LEDF3 = LED_OFF;
break;
case 2:
LEDF1 = LED_ON;
LEDF2 = LED_ON;
LEDF3 = LED_OFF;
break;
case 1:
LEDF1 = LED_ON;
LEDF2 = LED_ON;
LEDF3 = LED_ON;
break;
default:
break;
}
}
}
void HeatLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
LEDH1 = LED_OFF;
LEDH2 = LED_OFF;
LEDH3 = LED_OFF;
break;
case 3:
LEDH1 = LED_ON;
LEDH2 = LED_OFF;
LEDH3 = LED_OFF;
break;
case 2:
LEDH1 = LED_ON;
LEDH2 = LED_ON;
LEDH3 = LED_OFF;
break;
case 1:
LEDH1 = LED_ON;
LEDH2 = LED_ON;
LEDH3 = LED_ON;
break;
default:
break;
}
}

View File

@ -10,5 +10,7 @@
uint8_t GetKeyState(uint8_t keyno);
void Output_Ctrl(uint8_t state);
void IO_Init(void);
void FanLED_Ctrl(uint8_t state);
void HeatLED_Ctrl(uint8_t state);
#endif