From daa4fd6bd3d2cc4bfc37de0f06c76d7281d947a3 Mon Sep 17 00:00:00 2001 From: liumin Date: Tue, 18 Nov 2025 15:40:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=B8=A9=E5=BA=A6=E9=87=87?= =?UTF-8?q?=E9=9B=86=E5=BB=B6=E6=97=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAN.C | 76 +++++++++++++++++- CL2.0.uvgui.liuminVir | 82 ++++++++----------- IO.C | 12 +-- MAIN.C | 16 +++- SHARED_INT.C | 83 ++++++++++++++++++- SHARED_INT.H | 2 + T21.C | 181 ++++++++++++++++++++++++++++++++++++++++++ T21.H | 104 ++++++++++++++++++++++++ User.c | 48 +++++------ temperature.C | 10 +-- temperature.h | 112 +++++++++++++------------- user.H | 11 +-- 12 files changed, 581 insertions(+), 156 deletions(-) create mode 100644 T21.C create mode 100644 T21.H diff --git a/CAN.C b/CAN.C index 5df587b..d86b756 100644 --- a/CAN.C +++ b/CAN.C @@ -283,6 +283,7 @@ void CAN_vInit(void) CAN_vSetListCommand(0x010B0002); // MO11 for list 1 CAN_vSetListCommand(0x010C0002); // MO12 for list 1 CAN_vSetListCommand(0x010D0002); // MO13 for list 1 + CAN_vSetListCommand(0x010E0002); // MO14 for list 1 /// ----------------------------------------------------------------------- /// Configuration of the CAN Message Objects 0 - 31: @@ -1004,7 +1005,80 @@ void CAN_vInit(void) /// ----------------------------------------------------------------------- /// Configuration of Message Object 14: /// ----------------------------------------------------------------------- - /// - message object 14 is not valid + /// - message object 14 is valid + /// - message object is used as receive object + /// - this message object is assigned to list 1 (node 0) + + //--------------MOCTR14 = 0x00A00000--------------------------------------- + + CAN_vWriteCANAddress(CAN_MOCTR14); // Addressing MO14 control register + + CAN_vWriteAMData(0x00A00000); // load MO14 control register + + // CAN Address pointing to the CAN_MOAR14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + /// - priority class 3; transmit acceptance filtering is based on the list + /// order (like class 1) + /// - extended 29-bit identifier + /// - identifier 29-bit: 0x11000003 + + //--------------MOAR14 = 0xF1000003--------------------------------------- + + CAN_vWriteAMData(0xF1000003); // load MO14 arbitration register + + // CAN Address pointing to the CAN_MODATAH14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + + //--------------MODATAH14 = 0x00000000--------------------------------------- + + CAN_vWriteAMData(0x00000000); // load MO14 data register high + + // CAN Address pointing to the CAN_MODATAL14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + //--------------MODATAL14 = 0x00000000--------------------------------------- + + CAN_vWriteAMData(0x00000000); // load MO14 data register low + + // CAN Address pointing to the CAN_MOAMR14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + /// - only accept receive frames with matching IDE bit + /// - acceptance mask 29-bit: 0x1FFFFFFF + + //--------------CAN_MOAMR14 = 0x3FFFFFFF------------------------------------ + + CAN_vWriteAMData(0x3FFFFFFF); // load MO14 acceptance mask register + + // CAN Address pointing to the CAN_MOIPR14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + /// - use message pending register 0 bit position 14 + + //--------------MOIPR14 = 0x00000E00--------------------------------------- + + CAN_vWriteAMData(0x00000E00); // load MO14 interrupt pointer register + + // CAN Address pointing to the CAN_MOFGPR14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + + //--------------MOFGPR14 = 0x00000000--------------------------------------- + + CAN_vWriteAMData(0x00000000); // load MO14 FIFO/gateway pointer register + + // CAN Address pointing to the CAN_MOFCR14 + CAN_ADCON = ADR_DEC; // Auto Decrement the current address(-1) + + /// - this object is a STANDARD MESSAGE OBJECT + /// - 8 valid data bytes + + //--------------MOFCR14 = 0x08000000--------------------------------------- + + CAN_vWriteAMData(0x08000000); // load MO14 function control register + /// ----------------------------------------------------------------------- /// Configuration of Message Object 15: /// ----------------------------------------------------------------------- diff --git a/CL2.0.uvgui.liuminVir b/CL2.0.uvgui.liuminVir index 47a9f8a..4fbf29f 100644 --- a/CL2.0.uvgui.liuminVir +++ b/CL2.0.uvgui.liuminVir @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- C:\Users\liuminVir\Desktop\20250115_IO采集 + C:\Users\liuminVir\Desktop\20250804采集模块修改状态接收 @@ -101,17 +101,17 @@ -1 - 55 - -444 - 513 - 993 + 9 + 228 + 1185 + 947 0 - 700 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000006000000020000000100000042433A5C55736572735C6C69756D696E5669725C4465736B746F705C32303235303030363137B2C9BCAFC4A3BFE92D373525BAACB4EDCEF3B4A6C0ED5C557365722E630000000006557365722E6300000000C5D4F200FFFFFFFF42433A5C55736572735C6C69756D696E5669725C4465736B746F705C32303235303030363137B2C9BCAFC4A3BFE92D373525BAACB4EDCEF3B4A6C0ED5C757365722E480000000006757365722E4800000000FFDC7800FFFFFFFF40433A5C55736572735C6C69756D696E5669725C4465736B746F705C32303235303030363137B2C9BCAFC4A3BFE92D373525BAACB4EDCEF3B4A6C0ED5C50532E43000000000450532E4300000000BECEA100FFFFFFFF40433A5C55736572735C6C69756D696E5669725C4465736B746F705C32303235303030363137B2C9BCAFC4A3BFE92D373525BAACB4EDCEF3B4A6C0ED5C50532E48000000000450532E4800000000F0A0A100FFFFFFFF42433A5C55736572735C6C69756D696E5669725C4465736B746F705C32303235303030363137B2C9BCAFC4A3BFE92D373525BAACB4EDCEF3B4A6C0ED5C4D41494E2E4300000000064D41494E2E4300000000BCA8E100FFFFFFFF40433A5C55736572735C6C69756D696E5669725C4465736B746F705C32303235303030363137B2C9BCAFC4A3BFE92D373525BAACB4EDCEF3B4A6C0ED5C494F2E430000000004494F2E43000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001F010000650000007A07000049030000 + 544 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000002000000010000003E433A5C55736572735C6C69756D696E5669725C4465736B746F705C3230323530383034B2C9BCAFC4A3BFE9D0DEB8C4D7B4CCACBDD3CAD55C557365722E630000000006557365722E6300000000C5D4F200FFFFFFFF3E433A5C55736572735C6C69756D696E5669725C4465736B746F705C3230323530383034B2C9BCAFC4A3BFE9D0DEB8C4D7B4CCACBDD3CAD55C4D41494E2E4300000000064D41494E2E4300000000FFDC7800FFFFFFFF45433A5C55736572735C6C69756D696E5669725C4465736B746F705C3230323530383034B2C9BCAFC4A3BFE9D0DEB8C4D7B4CCACBDD3CAD55C74656D70657261747572652E43000000000D74656D70657261747572652E4300000000BECEA100FFFFFFFF45433A5C55736572735C6C69756D696E5669725C4465736B746F705C3230323530383034B2C9BCAFC4A3BFE9D0DEB8C4D7B4CCACBDD3CAD55C74656D70657261747572652E48000000000D74656D70657261747572652E4800000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001F010000650000007A07000049030000 @@ -490,7 +490,7 @@ 0 16 - 0000000032030000AD0300000D040000 + 00000000330300007A0700000E040000 16 @@ -1714,7 +1714,7 @@ 16 - 0A0000000A000000D80300003F000000 + 0A0000000A0000006E0000006E000000 @@ -1799,14 +1799,14 @@ 3325 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFDA000000C7000000F7040000CB000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000DA00000065000000F7040000DD000000DA0000004F000000F7040000C70000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF1D0400004F00000021040000CC010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000002104000065000000F7040000E2010000210400004F000000F7040000CC01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF1B0100004F0000001F0100003303000001000000020000100400000001000000D6FEFFFF45060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000650000001B01000049030000000000004F0000001B010000330300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000B8010000F7040000BC01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000D2010000F70400005E02000000000000BC010000F70400004802000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF7C020000BC010000800200004802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000400200007A070000440200000000000001000000040000000100000089FDFFFF76000000FFFFFFFF03000000B4010000D2010000CF01000001800080000000000000000000005A0200007A0700004903000000000000440200007A070000330300000000000040820046030000000A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFB401000001000000FFFFFFFFB40100000000000003000000C7000000008000000100000000000000490300007A0700002404000001000000010000000100000077940000008000000100000000000000490300007A07000024040000010000000100000001000000C500000000800000010000000000000048030000AD0300002304000001000000010000000100000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFDA000000C7000000F7040000CB000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000DA00000065000000F7040000DD000000DA0000004F000000F7040000C70000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF1D0400004F00000021040000CC010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000002104000065000000F7040000E2010000210400004F000000F7040000CC01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF1B0100004F0000001F0100003303000001000000020000100400000001000000D6FEFFFF45060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000650000001B01000049030000000000004F0000001B010000330300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000B8010000F7040000BC01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000D2010000F70400005E02000000000000BC010000F70400004802000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF7C020000BC010000800200004802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000400200007A070000440200000000000001000000040000000100000089FDFFFF76000000FFFFFFFF03000000B4010000D2010000CF01000001800080000000000000000000005A0200007A0700004903000000000000440200007A070000330300000000000040820046030000000A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFB401000001000000FFFFFFFFB40100000000000003000000C7000000008000000100000000000000490300007A07000024040000010000000100000001000000C5000000008000000100000000000000490300007A0700002404000001000000010000000100000077940000008000000100000000000000490300007A0700002404000001000000010000000100000000000000 59392 File - 2901 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D63616E5F6572726F725F636E74960000000000000014000D63616E5F6572726F725F636E740A556E496E6643616E5F311C556E496E6643616E5F312E417272446174612E4172725B305D5B335D0C556E537753616D706C655F3102CEDE06504D434F4E300D626D3835363347657454696D650E626D38353633536574416C61726D0231320B44465F5377547854656D7016756E5F696E665F63616E5F6B67665F6F7574707574311C556E496E6643616E5F312E417272446174612E4172725B305D5B345D1C556E496E6643616E5F312E417272446174612E4172725B305D5B355D0743616E52585458056954656D70064D41584E554D0C4F575F52656164324269747306526F6D4E756D16556E496E6643616E5F312E417272446174612E4172720450335F350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2892 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B44465F537754784B4746319600000000000000140006526F6D4E756D0B44465F537754784B4746310831313030303030310D63616E5F6572726F725F636E740A556E496E6643616E5F311C556E496E6643616E5F312E417272446174612E4172725B305D5B335D0C556E537753616D706C655F3102CEDE06504D434F4E300D626D3835363347657454696D650E626D38353633536574416C61726D0231320B44465F5377547854656D7016756E5F696E665F63616E5F6B67665F6F7574707574311C556E496E6643616E5F312E417272446174612E4172725B305D5B345D1C556E496E6643616E5F312E417272446174612E4172725B305D5B355D0743616E52585458056954656D70064D41584E554D0C4F575F5265616432426974730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1865,54 +1865,36 @@ 2 .\User.c - 7 - 130 - 169 - 1 - - 0 - - - user.H - 32 - 1 - 21 - 1 - - 0 - - - .\PS.C - 54 - 129 - 140 - 1 - - 0 - - - PS.H - 0 - 129 - 203 + 23 + 225 + 392 1 0 .\MAIN.C - 13 - 218 - 229 + 2 + 220 + 235 1 0 - .\IO.C - 34 - 240 - 258 + .\temperature.C + 2 + 454 + 434 + 1 + + 0 + + + temperature.H + 0 + 40 + 16 1 0 diff --git a/IO.C b/IO.C index dc51758..f9dc52a 100644 --- a/IO.C +++ b/IO.C @@ -188,10 +188,8 @@ void IO_vInit(void) /// - is used as general input /// - pull-up device is assigned /// P1.4: - /// - is used as general purpose output - /// - push/pull output is selected - /// - the pin status is low level - /// - pull device is disabled (tristate) + /// - is used as general input + /// - pull-up device is assigned /// P1.5: /// - is used as general input /// - pull-up device is assigned @@ -201,13 +199,11 @@ void IO_vInit(void) /// - the pin status is low level /// - pull device is disabled (tristate) - SFR_PAGE(_pp1, noSST); // switch to page 1 - P1_PUDSEL = 0xFF; // load pullup/pulldown select register - P1_PUDEN = 0xAF; // load pullup/pulldown enable register + P1_PUDEN = 0xBF; // load pullup/pulldown enable register SFR_PAGE(_pp0, noSST); // switch to page 0 - P1_DIR = 0x50; // load direction register + P1_DIR = 0x40; // load direction register /// ----------------------------------------------------------------------- /// Configuration of Port P2: diff --git a/MAIN.C b/MAIN.C index 124804d..09a1cd7 100644 --- a/MAIN.C +++ b/MAIN.C @@ -235,13 +235,27 @@ void main(void) // SetConfig(1,CFG_MPS_Single,CFG_Repeatbility_High); - RomNum = Search_ROM(romid); //ǰϵоƬROM IDromidоƬ +// RomNum = Search_ROM(romid); //ǰϵоƬROM IDromidоƬ // if(1 == power_state)//绽ѲŸʱ // { bm8563SetTime(&inittime);//20250802 ʼʱ Ϊʱ䲻Ե޷ // } + //E3ʼ 20251117 + un_inf_can_kgf_output1.bit_data.KGF01 = 0x01; // E3 + un_inf_can_kgf_output1.bit_data.KGF02 = 0x01; // + un_inf_can_kgf_output1.bit_data.KGF03 = 0x01; // + un_inf_can_kgf_output1.bit_data.KGF05 = 0x01; // · + un_inf_can_kgf_output1.bit_data.KGF06 = 0x01; // · + un_inf_can_kgf_output1.bit_data.KGF07 = 0x01; // + un_inf_can_kgf_output1.bit_data.KGF08 = 0x01; // + un_inf_can_kgf_output1.bit_data.KGF09 = 0 ; // + un_inf_can_kgf_output1.bit_data.KGF11 = 0x01; // װ + un_inf_can_kgf_output1.bit_data.KGF12 = 0x01; // װ + un_inf_can_kgf_output1.bit_data.KGF14 = 0 ; // + un_inf_can_kgf_output1.bit_data.KGF15 = 0x01; // ͷ + un_inf_can_kgf_output1.bit_data.KGF16 = 0x01; // ң while(1) { diff --git a/SHARED_INT.C b/SHARED_INT.C index 7cdf152..2f354e0 100644 --- a/SHARED_INT.C +++ b/SHARED_INT.C @@ -133,9 +133,10 @@ void SHINT_vInit(void) IEN0 |= 0x20; // load interrupt enable register 0 + /// - Timer21 Interrupt is Selected - IEN1 |= 0x00; // load interrupt enable register 1 + IEN1 |= 0x04; // load interrupt enable register 1 // USER CODE BEGIN (SHINT_Init,3) @@ -306,6 +307,86 @@ RTCProcess(); } // End of function SHINT_viXINTR5Isr +//**************************************************************************** +// @Function void SHINT_viXINTR8Isr(void) +// +//---------------------------------------------------------------------------- +// @Description This is the service routine for the shared interrupt node +// XINTR8. XINTR8 ISR Node is shared by External Interrupt +// 2,Timer 21,CORDIC,UART1,UART1 Fractional Divider(BRG +// Interrupt), and MDU[1:0]. Depending on the selected module +// interrupt it is called. +// EXT2 - It is called for the External interrupt 2. +// T21 - Depending on the selected operating mode it is called +// when TF2 is set by an overflow or underflow of the timer 21 +// register or when EXF2 is set by a negative transition on +// T2EX. +// UART1 - It is called after the BRG timer overflows and sets +// the NDOV bit. +// It is called after each transmission (flag TI_1 set) or +// reception (flag RI_1 set) of a data unit. +// Please note that you have to add application specific code +// to this function. +// +//---------------------------------------------------------------------------- +// @Returnvalue none +// +//---------------------------------------------------------------------------- +// @Parameters None +// +//---------------------------------------------------------------------------- +// @Date 2025/11/17 +// +//**************************************************************************** + +// You have two choices for interrupt type select in Project Settings Page +// under Global Settings Section. +// If you select CHOICE 1 then ISR will be generated with push and pop. +// If you select CHOICE 2 then ISR will be generated without push and pop. +// Default choice is CHOICE 2. +// Current selection is CHOICE 2 + +// USER CODE BEGIN (SHINT_XINTR8Isr,1) + +// USER CODE END + +void SHINT_viXINTR8Isr(void) interrupt XINTR8INT +{ + + // USER CODE BEGIN (SHINT_XINTR8Isr,2) + + // USER CODE END + + EA = 0; // disable global interrupt + _push_(SYSCON0); // push the current RMAP + + SET_RMAP(); // sets RMAP + + // Timer 21 interrupt handling section... + + if (TF2) + { + // a timer 21 overflow has occured + + TF2 = 0; + + // USER CODE BEGIN (SHINT_XINTR8Isr,4) + + // USER CODE END + + } + + // USER CODE BEGIN (SHINT_XINTR8Isr,9) + + // USER CODE END + + + _pop_(SYSCON0); // restore the old RMAP + EA = 1; // enable global interrupt + +} // End of function SHINT_viXINTR8Isr + + // USER CODE BEGIN (SHARED_INT_General,10) // USER CODE END diff --git a/SHARED_INT.H b/SHARED_INT.H index 5daa27a..0732acb 100644 --- a/SHARED_INT.H +++ b/SHARED_INT.H @@ -96,6 +96,8 @@ void SHINT_vInit(void); #define XINTR5INT 5 +#define XINTR8INT 8 + // USER CODE BEGIN (SHARED_INT_Header,9) // USER CODE END diff --git a/T21.C b/T21.C new file mode 100644 index 0000000..5881237 --- /dev/null +++ b/T21.C @@ -0,0 +1,181 @@ +//**************************************************************************** +// @Module Timer 21 +// @Filename T21.C +// @Project CL2.0.dav +//---------------------------------------------------------------------------- +// @Controller Infineon XC886CLM-8FF +// +// @Compiler Keil +// +// @Codegenerator 1.3 +// +// @Description: This file contains functions that use the T21 module. +// +//---------------------------------------------------------------------------- +// @Date 2025/11/17 18:48:53 +// +//**************************************************************************** + +// USER CODE BEGIN (T21_General,1) + +// USER CODE END + + + +//**************************************************************************** +// @Project Includes +//**************************************************************************** + +#include "MAIN.H" + +// USER CODE BEGIN (T21_General,2) + +// USER CODE END + + +//**************************************************************************** +// @Macros +//**************************************************************************** + +// USER CODE BEGIN (T21_General,3) + +// USER CODE END + + +//**************************************************************************** +// @Defines +//**************************************************************************** + +// USER CODE BEGIN (T21_General,4) + +// USER CODE END + + +//**************************************************************************** +// @Typedefs +//**************************************************************************** + +// USER CODE BEGIN (T21_General,5) + +// USER CODE END + + +//**************************************************************************** +// @Imported Global Variables +//**************************************************************************** + +// USER CODE BEGIN (T21_General,6) + +// USER CODE END + + +//**************************************************************************** +// @Global Variables +//**************************************************************************** + +// USER CODE BEGIN (T21_General,7) + +// USER CODE END + + +//**************************************************************************** +// @External Prototypes +//**************************************************************************** + +// USER CODE BEGIN (T21_General,8) + +// USER CODE END + + +//**************************************************************************** +// @Prototypes Of Local Functions +//**************************************************************************** + +// USER CODE BEGIN (T21_General,9) + +// USER CODE END + + +//**************************************************************************** +// @Function void T21_vInit(void) +// +//---------------------------------------------------------------------------- +// @Description This is the initialization function of the Timer 21 +// function library. It is assumed that the SFRs used by this +// library are in their reset state. +// +// The following SFRs and SFR fields will be initialized: +// T21_RC2H/RC2L - reload/capture timer 21 register +// T21_T2H/T2L - timer 21 register +// EX2 - timer 21 interrupt enable +// T21_T2MOD - timer 21 mode register +// CP/RL2 - Capture/Reload select +// EXEN2 - External enable control +// TR2 - Timer21 run control +// +//---------------------------------------------------------------------------- +// @Returnvalue None +// +//---------------------------------------------------------------------------- +// @Parameters None +// +//---------------------------------------------------------------------------- +// @Date 2025/11/17 +// +//**************************************************************************** + +// USER CODE BEGIN (T21_Init,1) + +// USER CODE END + +void T21_vInit(void) +{ + // USER CODE BEGIN (T21_Init,2) + + // USER CODE END + + // ----------------------------------------------------------------------- + // Operating Mode + // ----------------------------------------------------------------------- + + /// 16-bit timer function with automatic reload when timer 21 overflows + /// Prescaler enabled - input clock = fPCLK + /// the timer 21 resolution is .042 ?s + /// the timer 21 overflow is 1.000 ?s + /// timer 21 interrupt: enabled + /// timer 21 will be started + + // ----------------------------------------------------------------------- + // Register Initialization + // ----------------------------------------------------------------------- + + + + SET_RMAP(); + + T21_T2L = 0xE8; // load timer 21 register, low byte + + T21_T2H = 0xFF; // load timer 21 register, high byte + + T21_RC2L = 0xE8; // load timer 21 reload/capture register, + // low byte + T21_RC2H = 0xFF; // load timer 21 reload/capture register, + // high byte + T21_T2MOD = 0x10; // load timer 21 mode register + /// Timer 21 Interrupt enable bit is set in SHINT_vInit() function + + // USER CODE BEGIN (T21_Init,3) + + // USER CODE END + + TR2 = 1; // start timer + + RESET_RMAP(); + +} // End of function T21_vInit + + +// USER CODE BEGIN (T21_General,10) + +// USER CODE END + diff --git a/T21.H b/T21.H new file mode 100644 index 0000000..70f5f7a --- /dev/null +++ b/T21.H @@ -0,0 +1,104 @@ +//**************************************************************************** +// @Module Timer 21 +// @Filename T21.H +// @Project CL2.0.dav +//---------------------------------------------------------------------------- +// @Controller Infineon XC886CLM-8FF +// +// @Compiler Keil +// +// @Codegenerator 1.3 +// +// @Description: This file contains all function prototypes and macros for +// the T21 module. +// +//---------------------------------------------------------------------------- +// @Date 2025/11/17 18:48:53 +// +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,1) + +// USER CODE END + + + +#ifndef _T21_H_ +#define _T21_H_ + +//**************************************************************************** +// @Project Includes +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,2) + +// USER CODE END + + +//**************************************************************************** +// @Macros +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,3) + +// USER CODE END + + +//**************************************************************************** +// @Defines +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,4) + +// USER CODE END + +//**************************************************************************** +// @Typedefs +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,5) + +// USER CODE END + + +//**************************************************************************** +// @Imported Global Variables +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,6) + +// USER CODE END + + +//**************************************************************************** +// @Global Variables +//**************************************************************************** + +// USER CODE BEGIN (T21_Header,7) + +// USER CODE END + + +//**************************************************************************** +// @Prototypes Of Global Functions +//**************************************************************************** + +void T21_vInit(void); + +// USER CODE BEGIN (T21_Header,8) + +// USER CODE END + + +//**************************************************************************** +// @Interrupt Vectors +//**************************************************************************** + + +// Shared interrupt vector definitions are defined in SHARED_INT.H + +// USER CODE BEGIN (T21_Header,9) + +// USER CODE END + +#endif // ifndef _T21_H_ diff --git a/User.c b/User.c index e67522e..c7f1848 100644 --- a/User.c +++ b/User.c @@ -1,4 +1,4 @@ -#include "MAIN.H"- +#include "MAIN.H" #include "RTC.H" #include "temperature.H" #include @@ -39,7 +39,7 @@ ubyte can_error_flg = 0; //----------------------------------------------------------------------- -//RTCʱ 890-= +//RTCʱ //----------------------------------------------------------------------- void RTCProcess(void) { @@ -241,6 +241,24 @@ void CanRXTX(void) } + if(CAN_ubNewData(DF_SwZFKGF1))//E3ת + { + CAN_vGetMsgObj(DF_SwZFKGF1, &StrCanRx); + + un_inf_can_kgf_output1.arr[2] = StrCanRx.ulDATAL.ubDB[0]; + un_inf_can_kgf_output1.arr[3] = StrCanRx.ulDATAL.ubDB[1]; + un_inf_can_kgf_output1.arr[0] = StrCanRx.ulDATAL.ubDB[2]; + un_inf_can_kgf_output1.arr[1] = StrCanRx.ulDATAL.ubDB[3]; + un_inf_can_kgf_output1.arr[6] = StrCanRx.ulDATAH.ubDB[0]; + un_inf_can_kgf_output1.arr[7] = StrCanRx.ulDATAH.ubDB[1]; + un_inf_can_kgf_output1.arr[4] = StrCanRx.ulDATAH.ubDB[2]; + un_inf_can_kgf_output1.arr[5] = StrCanRx.ulDATAH.ubDB[3]; + + CAN_vReleaseObj(DF_SwZFKGF1); + } + + + //---------------------------------------------------------- @@ -341,31 +359,7 @@ void CanRXTX(void) if(vcu_can_cnt == vcu_can_last)//һʾ { - flg_wake_ecu = FAULT; - - // un_inf_can_kgf_output2.bit_data.KGF01 = 0x01;// - // un_inf_can_kgf_output2.bit_data.KGF02 = 0x01;// - // un_inf_can_kgf_output2.bit_data.KGF15 = 0x01;// - // un_inf_can_kgf_output2.bit_data.KGF16 = 0x01;// - - // un_inf_can_kgf_output2.bit_data.KGF03 = 0x01;// ң - // un_inf_can_kgf_output2.bit_data.KGF05 = 0x01;// 罻 - // un_inf_can_kgf_output2.bit_data.KGF06 = 0x01;// 罻 - - // un_inf_can_kgf_output2.bit_data.KGF04 = 0x01;//KGF20ӵ - - un_inf_can_kgf_output1.bit_data.KGF01 = 0x01; // E3 - un_inf_can_kgf_output1.bit_data.KGF02 = 0x01; // - un_inf_can_kgf_output1.bit_data.KGF03 = 0 ; // - un_inf_can_kgf_output1.bit_data.KGF05 = 0x01; // · - un_inf_can_kgf_output1.bit_data.KGF06 = 0x01; // · - un_inf_can_kgf_output1.bit_data.KGF07 = 0x01; // - un_inf_can_kgf_output1.bit_data.KGF08 = 0x01; // - un_inf_can_kgf_output1.bit_data.KGF09 = 0x01; // װ - un_inf_can_kgf_output1.bit_data.KGF11 = 0x01; // װ - un_inf_can_kgf_output1.bit_data.KGF12 = 0x01; // - un_inf_can_kgf_output1.bit_data.KGF15 = 0x01; // ͷ - un_inf_can_kgf_output1.bit_data.KGF16 = 0x01; // ң + flg_wake_ecu = FAULT; if(1 == flg_KGF)//ȴKGFѺٷ { diff --git a/temperature.C b/temperature.C index c3b16ee..7b682da 100644 --- a/temperature.C +++ b/temperature.C @@ -281,12 +281,12 @@ BOOL ReadTempWaiting(uword *iTemp) } /*յǰ8ֽڵУͣյĵ9CRCֽڱȽϡ*/ - UnSwSample_1.bit_data.temperature[1] = scrb[8]; -// if(scrb[8] != MY_OW_CRC8(scrb, 8)) -// { +// UnSwSample_1.bit_data.temperature[1] = scrb[8]; + if(scrb[8] != MY_OW_CRC8(scrb, 8)) + { -// return FALSE; /*CRC֤δͨ*/ -// } + return FALSE; /*CRC֤δͨ*/ + } // UnSwSample_1.bit_data.temperature[1] = *iTemp; /*¶ȲֽںϳΪ16λ֡*/ *iTemp = ((uword)(scr->T_msb) << 8) | scr->T_lsb; diff --git a/temperature.h b/temperature.h index fc963f0..1d99b96 100644 --- a/temperature.h +++ b/temperature.h @@ -36,7 +36,7 @@ #define CFG_Repeatbility_High 0x02 -#define MAXNUM 5 /*总线级联最大芯片数量*/ +#define MAXNUM 5 /*߼оƬ*/ typedef enum { FALSE = 0, @@ -48,7 +48,7 @@ typedef struct { char Tha_set_lsb; char Tla_set_lsb; - ubyte Cfg; /*系统配置寄存器, RW*/ + ubyte Cfg; /*ϵͳüĴ, RW*/ } M601_SCRATCHPAD_WRITE; @@ -74,14 +74,14 @@ typedef enum /*SRAM scratchpad*/ typedef struct { - ubyte T_lsb; /*The LSB of 温度结果, RO*/ - ubyte T_msb; /*The MSB of 温度结果, RO*/ - ubyte C1_lsb; /*The LSB of 电容通道C1, RO*/ - ubyte C1_msb; /*The MSB of 电容通道C1, Ro*/ + ubyte T_lsb; /*The LSB of ¶Ƚ, RO*/ + ubyte T_msb; /*The MSB of ¶Ƚ, RO*/ + ubyte C1_lsb; /*The LSB of ͨC1, RO*/ + ubyte C1_msb; /*The MSB of ͨC1, Ro*/ ubyte Tha_set_lsb; ubyte Tla_set_lsb; - ubyte Cfg; /*系统配置寄存器, RW*/ - ubyte Status; /*系统状态寄存器, RO*/ + ubyte Cfg; /*ϵͳüĴ, RW*/ + ubyte Status; /*ϵͳ״̬Ĵ, RO*/ ubyte crc_scr; /*CRC for byte0-7, RO*/ } M601_SCRATCHPAD_READ; @@ -89,64 +89,64 @@ typedef struct -//20250116 增加温度采集字节 +//20250116 ¶Ȳɼֽ typedef struct _StrSwSample { - unsigned int emergency_stop_switch : 1; // 通道1,急停开关 - unsigned int High_voltage_switch : 1; // 通道2,高压开关 - unsigned int CH03 : 1; // 通道3 - unsigned int CH04 : 1; // 通道4 - unsigned int CH05 : 1; // 通道5 - unsigned int CH06 : 1; // 通道6 - unsigned int CH07 : 1; // 通道7 - unsigned int CH08 : 1; // 通道8 - unsigned int CH09 : 1; // 通道9 - unsigned int CH10 : 1; // 通道10 - unsigned int CH11 : 1; // 通道11 - unsigned int CH12 : 1; // 通道12 - unsigned int CH13 : 1; // 通道13 - unsigned int CH14 : 1; // 通道14 - unsigned int CH15 : 1; // 通道15 - unsigned int CH16 : 1; // 通道16 - unsigned int CH17 : 1; // 通道17 - unsigned int CH18 : 1; // 通道18 - unsigned int CH19 : 1; // 通道19 - unsigned int CH20 : 1; // 通道20 - unsigned int CH21 : 1; // 通道21 - unsigned int CH22 : 1; // 通道22 - unsigned int CH23 : 1; // 通道23 - unsigned int CH24 : 1; // 通道24 - unsigned int CH25 : 1; // 通道25 - unsigned int CH26 : 1; // 通道26 - unsigned int CH27 : 1; // 通道27 - unsigned int CH28 : 1; // 通道28 - unsigned int CH29 : 1; // 通道29 - unsigned int CH30 : 1; // 通道30 - unsigned int CH31 : 1; // 通道31 - unsigned int CH32 : 1; // 通道32 + unsigned int emergency_stop_switch : 1; // ͨ1ͣ + unsigned int High_voltage_switch : 1; // ͨ2ѹ + unsigned int CH03 : 1; // ͨ3 + unsigned int CH04 : 1; // ͨ4 + unsigned int CH05 : 1; // ͨ5 + unsigned int CH06 : 1; // ͨ6 + unsigned int CH07 : 1; // ͨ7 + unsigned int CH08 : 1; // ͨ8 + unsigned int CH09 : 1; // ͨ9 + unsigned int CH10 : 1; // ͨ10 + unsigned int CH11 : 1; // ͨ11 + unsigned int CH12 : 1; // ͨ12 + unsigned int CH13 : 1; // ͨ13 + unsigned int CH14 : 1; // ͨ14 + unsigned int CH15 : 1; // ͨ15 + unsigned int CH16 : 1; // ͨ16 + unsigned int CH17 : 1; // ͨ17 + unsigned int CH18 : 1; // ͨ18 + unsigned int CH19 : 1; // ͨ19 + unsigned int CH20 : 1; // ͨ20 + unsigned int CH21 : 1; // ͨ21 + unsigned int CH22 : 1; // ͨ22 + unsigned int CH23 : 1; // ͨ23 + unsigned int CH24 : 1; // ͨ24 + unsigned int CH25 : 1; // ͨ25 + unsigned int CH26 : 1; // ͨ26 + unsigned int CH27 : 1; // ͨ27 + unsigned int CH28 : 1; // ͨ28 + unsigned int CH29 : 1; // ͨ29 + unsigned int CH30 : 1; // ͨ30 + unsigned int CH31 : 1; // ͨ31 + unsigned int CH32 : 1; // ͨ32 -// unsigned int CH33 : 1; // 通道33 -// unsigned int CH34 : 1; // 通道34 -// unsigned int CH35 : 1; // 通道35 -// unsigned int CH36 : 1; // 通道36 -// unsigned int CH37 : 1; // 通道37 -// unsigned int CH38 : 1; // 通道38 -// unsigned int CH39 : 1; // 通道39 -// unsigned int CH40 : 1; // 通道40 -// unsigned int CH41 : 1; // 通道41 -// unsigned int CH42 : 1; // 通道42 -// unsigned int CH43 : 1; // 通道43 -// unsigned int CH44 : 1; // 通道44 +// unsigned int CH33 : 1; // ͨ33 +// unsigned int CH34 : 1; // ͨ34 +// unsigned int CH35 : 1; // ͨ35 +// unsigned int CH36 : 1; // ͨ36 +// unsigned int CH37 : 1; // ͨ37 +// unsigned int CH38 : 1; // ͨ38 +// unsigned int CH39 : 1; // ͨ39 +// unsigned int CH40 : 1; // ͨ40 +// unsigned int CH41 : 1; // ͨ41 +// unsigned int CH42 : 1; // ͨ42 +// unsigned int CH43 : 1; // ͨ43 +// unsigned int CH44 : 1; // ͨ44 // unsigned int reserve : 4; - unsigned int temperature[2]; // 温度 + unsigned int temperature[2]; // ¶ } StrSwSample; typedef union _UnSwSample { - StrSwSample bit_data; // 使用定义的结构体变量名 - unsigned char arr[sizeof(StrSwSample)]; // 通过结构体类型确定大小 + StrSwSample bit_data; // ʹöĽṹ + unsigned char arr[sizeof(StrSwSample)]; // ͨṹȷС } UnSwSample; diff --git a/user.H b/user.H index 9e1db19..f2ff7a4 100644 --- a/user.H +++ b/user.H @@ -8,6 +8,7 @@ #define DF_SwTxKGF2 10 #define DF_SwTxTemp 12 #define DF_SwRxKGF2 13 +#define DF_SwZFKGF1 14 #define MAX_TIME 43200 //ӣҲ30 @@ -15,14 +16,12 @@ #define dfPwmH 10 //PWMĸߵƽʱ䣬1010msңҪ20181227 -#define WAKE_UP_PIN P1_5 //ѹ // ޸Ϊɰ汾Ӳ +#define WAKE_UP_PIN P1_5 //ѹ #define KGF_PIN P0_0 // #define CAN_PIN P1_6 // #define STOP_PIN P3_6 //ͣ -#define BATTERY_PIN P1_4 //ؿƽ - - +#define BATTERY_PIN P0_0 //ؿƽ #define ON 0 // #define OFF 1 //ɿ @@ -30,14 +29,12 @@ #define FAULT 0 #define NORMAL 1 - // Դ״̬ö typedef enum { POWER_STANDBY, POWER_WORKING, POWER_EMERGENCY, POWER_PRE_CHARGE, - POWER_NEUTRAL, POWER_SLEEP } PowerState; @@ -106,10 +103,10 @@ extern UnSwOut UnSwOut_1; extern UnInfCan UnInfCan_1; extern uword CntCan_1; extern bit FlgCan_1; + extern ubyte can_error_cnt; extern ubyte can_error_flg; - extern UnInfCanKGFOutput un_inf_can_kgf_output1;//kgf void CanRXTX(void);