diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c353f76..0000000 --- a/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -### vim -*.swp -*.swo -*~ - -### Keil5 -/keil/* -/keilp/* -!*.sct -!*.uvprojx - -### Source Insight -*.IAB -*.IAD -*.IMB -*.IMD -*.PFI -*.PO -*.PR -*.PRI -*.PS -*.WK3 -*.SearchResults -*.bookmarks.xml -*.snippets.xml -*.siwork -si/**/cache/ -si/**/Backup/ -si4/**/cache/ -si4/**/Backup/ - -### Source file -source/bak/ -/out/ diff --git a/.vscode/settings.json b/.vscode/settings.json index d937be5..2b5e3a3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,11 @@ { "files.associations": { - "stc_only.H": "cpp", - "asp_lowpower.h": "c", "main.h": "c", - "msp_eeprom.h": "c", - "msp_uartn.h": "c" + "asp_expara.h": "c", + "ttss_task.h": "c", + "asp_lowpower.h": "c", + "msp_uart2.h": "c", + "msp_uart1.h": "c", + "debug_drv.h": "c" } } \ No newline at end of file diff --git a/backup/all/U4备份程序.bat b/backup/all/U4备份程序.bat deleted file mode 100644 index cfd3acf..0000000 --- a/backup/all/U4备份程序.bat +++ /dev/null @@ -1,8 +0,0 @@ -For /f "tokens=1-3 delims=/:/ " %%a in ('time /t') do (set mytime=%%a_%%b%%c) -set str=%DATE% -set mydate=%str:/=_% -set mydate=%mydate: =_% -set /p demo=: -echo %demo% -backup\all\zip -q -r -S backup\u4_%demo%_%mydate%%mytime:~0,6%.zip MDK-ARM\*.* core\*.* out\*.hex si\*.* *.ioc .mxproject *.ini *.bat backup\all\*.* -backup\all\zip -q -r -S backup\u4_%demo%_%mydate%%mytime:~0,6%.zip.doc MDK-ARM\*.* core\*.* out\*.hex si\*.* *.ioc .mxproject *.ini *.bat backup\all\*.* diff --git a/backup/all/U4备份程序全.bat b/backup/all/U4备份程序全.bat deleted file mode 100644 index c31db8d..0000000 --- a/backup/all/U4备份程序全.bat +++ /dev/null @@ -1,8 +0,0 @@ -For /f "tokens=1-3 delims=/:/ " %%a in ('time /t') do (set mytime=%%a_%%b%%c) -set str=%DATE% -set mydate=%str:/=_% -set mydate=%mydate: =_% -set /p demo=: -echo %demo% -backup\all\zip -q -r -S backup\u4_%demo%_%mydate%%mytime:~0,6%.zip MDK-ARM\*.* core\*.* out\*.hex si\*.* *.ioc .mxproject *.ini *.bat backup\all\*.* Drivers\*.* -backup\all\zip -q -r -S backup\u4_%demo%_%mydate%%mytime:~0,6%.zip.doc MDK-ARM\*.* core\*.* out\*.hex si\*.* *.ioc .mxproject *.ini backup\all\*.* \ No newline at end of file diff --git a/backup/all/stc备份程序.bat b/backup/all/stc备份程序.bat deleted file mode 100644 index 609816a..0000000 --- a/backup/all/stc备份程序.bat +++ /dev/null @@ -1,10 +0,0 @@ -For /f "tokens=1-3 delims=/:/ " %%a in ('time /t') do (set mytime=%%a_%%b%%c) -set str=%DATE% -set mydate=%str:/=_% -set mydate=%mydate: =_% -set /p demo=: -echo %demo% -backup\zip -q -r -S backup\stcAS03PLCa_%demo%_%mydate%%mytime:~0,6%.zip si4\*.* source\*.* keilp\*.* out\*.hex docs\*.xlsx docs\*.doc* backup\all -backup\zip -q -r -S backup\stcAS03PLCa_%demo%_%mydate%%mytime:~0,6%.zip.doc si4\*.* source\*.* keilp\*.* out\*.hex docs\*.xlsx docs\*.doc* backup\all -pause - diff --git a/backup/all/unzip.exe b/backup/all/unzip.exe deleted file mode 100644 index e9dc44d..0000000 Binary files a/backup/all/unzip.exe and /dev/null differ diff --git a/backup/all/zip.exe b/backup/all/zip.exe deleted file mode 100644 index 286227a..0000000 Binary files a/backup/all/zip.exe and /dev/null differ diff --git a/backup/all/批处理备份程序 使用方法.zip b/backup/all/批处理备份程序 使用方法.zip deleted file mode 100644 index 4cee3b6..0000000 Binary files a/backup/all/批处理备份程序 使用方法.zip and /dev/null differ diff --git a/keilp/stcTTSS2_W5.uvguix.Administrator b/keilp/stcTTSS2_W5.uvguix.Administrator new file mode 100644 index 0000000..40782e8 --- /dev/null +++ b/keilp/stcTTSS2_W5.uvguix.Administrator @@ -0,0 +1,1585 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 158 + + + 346 + Code Coverage + 946 160 + + + 204 + Performance Analyzer + 1106 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 87 + 312 + 1752 + 874 + + + + 0 + + 2453 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001A00000004000000010000003A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6173705C6173705F6578706172612E68000000000C6173705F6578706172612E68000000009CC1B600FFFFFFFF3C433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6173705C6173705F6C6F77706F7765722E68000000000E6173705F6C6F77706F7765722E6800000000C5D4F200FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6273705C6273705F6373313233322E68000000000C6273705F6373313233322E6800000000BCA8E100FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6170705C6170705F7765696768742E63000000000C6170705F7765696768742E6300000000C5D4F200FFFFFFFF34433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6170705C6D61696E2E6300000000066D61696E2E6300000000F0A0A100FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6173705C6173705F73636861696E2E68000000000C6173705F73636861696E2E6800000000C5D4F200FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6170705C6170705F7765696768742E68000000000C6170705F7765696768742E6800000000BECEA100FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6170705C6170705F636F6E6669672E68000000000C6170705F636F6E6669672E6800000000C5D4F200FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6273705C6273705F6373313233322E63000000000C6273705F6373313233322E6300000000FFDC7800FFFFFFFF37433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6D73705C6D73705F6164632E6300000000096D73705F6164632E6300000000C5D4F200FFFFFFFF39433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6D73705C6D73705F6969634D782E63000000000B6D73705F6969634D782E6300000000C5D4F200FFFFFFFF39433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6D73705C6D73705F74696D65322E63000000000B6D73705F74696D65322E6300000000CACAD500FFFFFFFF3E433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6D73705C756172745C6D73705F756172744E2E63000000000B6D73705F756172744E2E6300000000C1838300FFFFFFFF3B433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6370755C7374635F385F64656C61792E63000000000D7374635F385F64656C61792E63000000005FC3CF00FFFFFFFF39433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6370755C535441525455502E413531000000000B535441525455502E41353100000000B5E99D00FFFFFFFF3C433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6173705C6173705F6C6F77706F7765722E63000000000E6173705F6C6F77706F7765722E6300000000F6FA7D00FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6173705C6173705F73636861696E2E63000000000C6173705F73636861696E2E6300000000EAD6A300FFFFFFFF3A433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6170705C6170705F636F6E6669672E63000000000C6170705F636F6E6669672E6300000000B3A6BE00FFFFFFFF3E433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6D73705C756172745C6D73705F75617274312E63000000000B6D73705F75617274312E6300000000A5C2D700FFFFFFFF42433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6273705C545453536273705C6273705F636F6E6669672E68000000000C6273705F636F6E6669672E6800000000D9ADC200FFFFFFFF42433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6273705C545453536273705C6273705F636F6E6669672E63000000000C6273705F636F6E6669672E6300000000F7B88600FFFFFFFF3B433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C64656275675C64656275675F6472762E63000000000B64656275675F6472762E63000000009CC1B600FFFFFFFF38433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C7470635C7470635F726F61642E63000000000A7470635F726F61642E6300000000BCA8E100FFFFFFFF39433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C7470635C7470635F64656275672E68000000000B7470635F64656275672E6800000000F0A0A100FFFFFFFF3E433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6D73705C756172745C6D73705F756172744E2E68000000000B6D73705F756172744E2E6800000000BECEA100FFFFFFFF34433A5C55736572735C41646D696E6973747261746F725C4465736B746F705C7777775C736F757263655C6170705C6D61696E2E6800000000066D61696E2E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001F01000066000000800700005F030000 + + + + 0 + Build + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000004F0000001B01000048030000 + + + 16 + 00000000660000001B0100005F030000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000180100002F030000 + + + 16 + 69030000E50100005F040000C4050000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000180100002F030000 + + + 16 + 69030000E50100005F040000C4050000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000ED050000D0000000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000180100002F030000 + + + 16 + 69030000E50100005F040000C4050000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000180100002F030000 + + + 16 + 69030000E50100005F040000C4050000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000630300007D070000CD030000 + + + 16 + 22000000390000001A030000D3000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000041020000F0050000EF020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 199 + 199 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000630300007D070000CD030000 + + + 16 + 22000000390000001A030000D3000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 9701000066000000ED050000D0000000 + + + 16 + 22000000390000001A030000D3000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000ED050000D0000000 + + + 16 + 22000000390000001A030000D3000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 22000000390000001A030000D3000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000ED050000D0000000 + + + 16 + 22000000390000001A030000D3000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000ED050000D0000000 + + + 16 + 22000000390000001A030000D3000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000ED050000D0000000 + + + 16 + 22000000390000001A030000D3000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6304000066000000ED05000038020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000180100002F030000 + + + 16 + 69030000E50100005F040000C4050000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000630300007D070000CD030000 + + + 16 + 22000000390000001A030000D3000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000630300007D070000CD030000 + + + 16 + 220000003900000052010000A1020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000058020000ED050000D6020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E603000080070000F9030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2639 + 000000000B000000000000000010000001000000FFFFFFFFFFFFFFFF1B0100004F0000001F010000480300000100000002000010040000000100000014FFFFFF0907000000000000000000000000000001000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000FFFF02000B004354616262656450616E65001000000100000000000000660000001B0100005F030000000000004F0000001B010000480300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000020000000000000FFFFFFFFFFFFFFFF94010000E9000000F0050000ED000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000018000200000000000009401000066000000F005000000010000940100004F000000F0050000E90000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF5C0400004F0000006004000051020000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000000000006004000066000000F005000068020000600400004F000000F0050000510200000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000080000000000000FFFFFFFFFFFFFFFF000000003D020000F00500004102000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000000000000000000058020000F0050000060300000000000041020000F0050000EF02000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF802000041020000FC020000EF02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000048030000800700004C030000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000006303000080070000FD030000000000004C03000080070000E60300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2357 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000077072696E74663196000000000000001400077072696E7466310C4C335F7461736B5F735F676F0C6273705F626C65645F736574024C3004656C73650EE58FAFE58F98E6B3A2E789B9E78E0FE58FAFE58F98E6B3A2E789B9E78E3F094C305F74696D6572300764656275676F6B0D445F7379735F4A69666669657311545950455F4A4946464945535F32354D5309636D64206572726F7218E5AE9AE4B989E68EA5E694B6E5A484E79086E58D8FE8AEAE1AE5AE9AE4B989E68EA5E694B6E5A484E79086E58D8FE8AEAE466604636D642004307833351B74735F557265635B445F55415254315D2E6F76657274696D655F741574735F557265635B445F55415254315D2E69646C651374735F557265635B445F55415254315D2E6F6B0270640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 684 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000B5354433848334B36345332960000000000000001000B5354433848334B36345332000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1920 + 1080 + + + + + + 1 + 0 + + 100 + 4 + + \Users\Administrator\Desktop\www\source\asp\asp_expara.h + 22 + 4 + 19 + 1 + + 0 + + + ..\source\asp\asp_lowpower.h + 20 + 2 + 18 + 1 + + 0 + + + ..\source\app\../bsp/bsp_cs1232.h + 8 + 81 + 106 + 1 + + 0 + + + ..\source\app\app_weight.c + 0 + 12 + 27 + 1 + + 0 + + + ..\source\app\main.c + 14 + 24 + 25 + 1 + + 0 + + + ..\source\asp\asp_schain.h + 0 + 1 + 1 + 1 + + 0 + + + ..\source\app\app_weight.h + 0 + 1 + 1 + 1 + + 0 + + + ..\source\app\app_config.h + 0 + 1 + 1 + 1 + + 0 + + + ..\source\bsp\bsp_cs1232.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\msp\msp_adc.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\msp\msp_iicMx.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\msp\msp_time2.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\msp\uart\msp_uartN.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\cpu\stc_8_delay.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\cpu\STARTUP.A51 + 0 + 1 + 1 + 1 + + 0 + + + ..\source\asp\asp_lowpower.c + 22 + 6 + 24 + 1 + + 0 + + + ..\source\asp\asp_schain.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\app\app_config.c + 0 + 1 + 1 + 1 + + 0 + + + ..\source\msp\uart\msp_uart1.c + 31 + 41 + 50 + 1 + + 0 + + + ..\source\bsp\TTSSbsp\bsp_config.h + 28 + 161 + 171 + 1 + + 0 + + + ..\source\bsp\TTSSbsp\bsp_config.c + 0 + 1 + 14 + 1 + + 0 + + + ..\source\debug\debug_drv.c + 0 + 139 + 151 + 1 + + 0 + + + ..\source\tpc\tpc_road.c + 0 + 261 + 293 + 1 + + 0 + + + ..\source\tpc\tpc_debug.h + 0 + 22 + 45 + 1 + + 0 + + + ..\source\msp\uart\msp_uartN.h + 0 + 46 + 78 + 1 + + 0 + + + ..\source\app\main.h + 13 + 73 + 89 + 1 + + 0 + + + + +
diff --git a/keilp/stcTTSS2_W5.uvoptx b/keilp/stcTTSS2_W5.uvoptx new file mode 100644 index 0000000..aec2116 --- /dev/null +++ b/keilp/stcTTSS2_W5.uvoptx @@ -0,0 +1,536 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + STC8H3K64S2 + 0x0 + MCS-51 + + 35000000 + + 0 + 1 + 1 + 0 + 0 + + + 0 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + ..\out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 0 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + + + + + app + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + ..\source\app\app_weight.c + app_weight.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + ..\source\app\main.c + main.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + ..\source\app\app_config.c + app_config.c + 0 + 0 + + + + + asp + 1 + 0 + 0 + 0 + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\source\asp\asp_schain.c + asp_schain.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\source\asp\asp_lowpower.c + asp_lowpower.c + 0 + 0 + + + + + cpu + 1 + 0 + 0 + 0 + + 3 + 6 + 2 + 0 + 0 + 0 + 0 + ..\source\cpu\STARTUP.A51 + STARTUP.A51 + 0 + 0 + + + 3 + 7 + 1 + 0 + 0 + 0 + 0 + ..\source\cpu\stc_8_delay.c + stc_8_delay.c + 0 + 0 + + + + + msp + 1 + 0 + 0 + 0 + + 4 + 8 + 1 + 0 + 0 + 0 + 0 + ..\source\msp\uart\msp_uartN.c + msp_uartN.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + 0 + ..\source\msp\msp_time2.c + msp_time2.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + 0 + ..\source\msp\uart\msp_uart1.c + msp_uart1.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + 0 + ..\source\msp\msp_iicMx.c + msp_iicMx.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + 0 + ..\source\msp\msp_eeprom.c + msp_eeprom.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + 0 + ..\source\msp\msp_adc.c + msp_adc.c + 0 + 0 + + + + + bsp + 1 + 0 + 0 + 0 + + 5 + 14 + 1 + 0 + 0 + 0 + 0 + ..\source\bsp\TTSSbsp\bsp_config.c + bsp_config.c + 0 + 0 + + + 5 + 15 + 1 + 0 + 0 + 0 + 0 + ..\source\bsp\bsp_led.c + bsp_led.c + 0 + 0 + + + 5 + 16 + 1 + 1 + 0 + 0 + 0 + ..\source\bsp\bsp_cs1232.c + bsp_cs1232.c + 0 + 0 + + + + + ctask + 1 + 0 + 0 + 0 + + 6 + 17 + 1 + 0 + 0 + 0 + 0 + ..\source\ctask\TTSS_task.c + TTSS_task.c + 0 + 0 + + + 6 + 18 + 1 + 0 + 0 + 0 + 0 + ..\source\ctask\TTSS_tick.c + TTSS_tick.c + 0 + 0 + + + 6 + 19 + 1 + 0 + 0 + 0 + 0 + ..\source\ctask\TTSS_time_stc.c + TTSS_time_stc.c + 0 + 0 + + + + + tpc + 1 + 0 + 0 + 0 + + 7 + 20 + 1 + 0 + 0 + 0 + 0 + ..\source\tpc\tpc_road.c + tpc_road.c + 0 + 0 + + + + + clib + 1 + 0 + 0 + 0 + + 8 + 21 + 1 + 0 + 0 + 0 + 0 + ..\source\clib\c_lib.c + c_lib.c + 0 + 0 + + + 8 + 22 + 1 + 0 + 0 + 0 + 0 + ..\source\clib\c_delay.c + c_delay.c + 0 + 0 + + + + + debug + 1 + 0 + 0 + 0 + + 9 + 23 + 5 + 0 + 0 + 0 + 0 + ..\source\debug\cc_as_stc01_main.ini + cc_as_stc01_main.ini + 0 + 0 + + + 9 + 24 + 1 + 0 + 0 + 0 + 0 + ..\source\debug\debug_drv.c + debug_drv.c + 0 + 0 + + + +
diff --git a/keilp/stcTTSS2_W5.uvprojx b/keilp/stcTTSS2_W5.uvprojx index 275f8af..b9ecc38 100644 --- a/keilp/stcTTSS2_W5.uvprojx +++ b/keilp/stcTTSS2_W5.uvprojx @@ -378,11 +378,6 @@ 1 ..\source\app\app_config.c - - msp_UART2.c - 1 - ..\source\msp\uart\msp_UART2.c - diff --git a/out/STARTUP.lst b/out/STARTUP.lst new file mode 100644 index 0000000..8d63c63 --- /dev/null +++ b/out/STARTUP.lst @@ -0,0 +1,255 @@ +A51 MACRO ASSEMBLER STARTUP 09/06/2024 11:24:45 PAGE 1 + + +MACRO ASSEMBLER A51 V8.02c +OBJECT MODULE PLACED IN ..\out\STARTUP.obj +ASSEMBLER INVOKED BY: E:\KeilC51\C51\BIN\A51.EXE ..\source\cpu\STARTUP.A51 SET(LARGE) DEBUG PRINT(..\out\STARTUP.lst) OB + JECT(..\out\STARTUP.obj) EP + +LOC OBJ LINE SOURCE + + 1 $nomod51 + 2 ;------------------------------------------------------------------------------ + 3 ; This file is part of the C51 Compiler package + 4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc. + 5 ; Version 8.01 + 6 ; + 7 ; *** <<< Use Configuration Wizard in Context Menu >>> *** + 8 ;------------------------------------------------------------------------------ + 9 ; STARTUP.A51: This code is executed after processor reset. + 10 ; + 11 ; To translate this file use A51 with the following invocation: + 12 ; + 13 ; A51 STARTUP.A51 + 14 ; + 15 ; To link the modified STARTUP.OBJ file to your application use the following + 16 ; Lx51 invocation: + 17 ; + 18 ; Lx51 your object file list, STARTUP.OBJ controls + 19 ; + 20 ;------------------------------------------------------------------------------ + 21 ; + 22 ; User-defined Power-On Initialization of Memory + 23 ; + 24 ; With the following EQU statements the initialization of memory + 25 ; at processor reset can be defined: + 26 ; + 27 ; IDATALEN: IDATA memory size <0x0-0x100> + 28 ; Note: The absolute start-address of IDATA memory is always 0 + 29 ; The IDATA space overlaps physically the DATA and BIT areas. + 0080 30 IDATALEN EQU 80H + 31 ; + 32 ; XDATASTART: XDATA memory start address <0x0-0xFFFF> + 33 ; The absolute start address of XDATA memory + 0000 34 XDATASTART EQU 0 + 35 ; + 36 ; XDATALEN: XDATA memory size <0x0-0xFFFF> + 37 ; The length of XDATA memory in bytes. + 0320 38 XDATALEN EQU 800 + 39 ; + 40 ; PDATASTART: PDATA memory start address <0x0-0xFFFF> + 41 ; The absolute start address of PDATA memory + 0000 42 PDATASTART EQU 0H + 43 ; + 44 ; PDATALEN: PDATA memory size <0x0-0xFF> + 45 ; The length of PDATA memory in bytes. + 0000 46 PDATALEN EQU 0H + 47 ; + 48 ; + 49 ;------------------------------------------------------------------------------ + 50 ; + 51 ; Reentrant Stack Initialization + 52 ; + 53 ; The following EQU statements define the stack pointer for reentrant + 54 ; functions and initialized it: + 55 ; + 56 ; Stack Space for reentrant functions in the SMALL model. + 57 ; IBPSTACK: Enable SMALL model reentrant stack + A51 MACRO ASSEMBLER STARTUP 09/06/2024 11:24:45 PAGE 2 + + 58 ; Stack space for reentrant functions in the SMALL model. + 0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used. + 60 ; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF> + 61 ; Set the top of the stack to the highest location. + 0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 + 63 ; + 64 ; + 65 ; Stack Space for reentrant functions in the LARGE model. + 66 ; XBPSTACK: Enable LARGE model reentrant stack + 67 ; Stack space for reentrant functions in the LARGE model. + 0001 68 XBPSTACK EQU 1 ; set to 1 if large reentrant is used. + 69 ; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF> + 70 ; Set the top of the stack to the highest location. + 0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 + 72 ; + 73 ; + 74 ; Stack Space for reentrant functions in the COMPACT model. + 75 ; PBPSTACK: Enable COMPACT model reentrant stack + 76 ; Stack space for reentrant functions in the COMPACT model. + 0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. + 78 ; + 79 ; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF> + 80 ; Set the top of the stack to the highest location. + 0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 + 82 ; + 83 ; + 84 ;------------------------------------------------------------------------------ + 85 ; + 86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM + 87 ; Compact Model Page Definition + 88 ; + 89 ; Define the XDATA page used for PDATA variables. + 90 ; PPAGE must conform with the PPAGE set in the linker invocation. + 91 ; + 92 ; Enable pdata memory page initalization + 0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. + 94 ; + 95 ; PPAGE number <0x0-0xFF> + 96 ; uppermost 256-byte address of the page used for PDATA variables. + 0000 97 PPAGE EQU 0 + 98 ; + 99 ; SFR address which supplies uppermost address byte <0x0-0xFF> + 100 ; most 8051 variants use P2 as uppermost address byte + 00A0 101 PPAGE_SFR DATA 0A0H + 102 ; + 103 ; + 104 ;------------------------------------------------------------------------------ + 105 + 106 ; Standard SFR Symbols + 00E0 107 ACC DATA 0E0H + 00F0 108 B DATA 0F0H + 0081 109 SP DATA 81H + 0082 110 DPL DATA 82H + 0083 111 DPH DATA 83H + 112 + 113 NAME ?C_STARTUP + 114 + 115 + 116 ?C_C51STARTUP SEGMENT CODE + 117 ?STACK SEGMENT IDATA + 118 +---- 119 RSEG ?STACK +0000 120 DS 1 + 121 + 122 EXTRN CODE (?C_START) + 123 PUBLIC ?C_STARTUP + A51 MACRO ASSEMBLER STARTUP 09/06/2024 11:24:45 PAGE 3 + + 124 +---- 125 CSEG AT 0 +0000 020000 F 126 ?C_STARTUP: LJMP STARTUP1 + 127 +---- 128 RSEG ?C_C51STARTUP + 129 +0000 130 STARTUP1: + 131 + 132 IF IDATALEN <> 0 +0000 787F 133 MOV R0,#IDATALEN - 1 +0002 E4 134 CLR A +0003 F6 135 IDATALOOP: MOV @R0,A +0004 D8FD 136 DJNZ R0,IDATALOOP + 137 ENDIF + 138 + 139 IF XDATALEN <> 0 +0006 900000 140 MOV DPTR,#XDATASTART +0009 7F20 141 MOV R7,#LOW (XDATALEN) + 142 IF (LOW (XDATALEN)) <> 0 +000B 7E04 143 MOV R6,#(HIGH (XDATALEN)) +1 + 144 ELSE + MOV R6,#HIGH (XDATALEN) + ENDIF +000D E4 147 CLR A +000E F0 148 XDATALOOP: MOVX @DPTR,A +000F A3 149 INC DPTR +0010 DFFC 150 DJNZ R7,XDATALOOP +0012 DEFA 151 DJNZ R6,XDATALOOP + 152 ENDIF + 153 + 154 IF PPAGEENABLE <> 0 + MOV PPAGE_SFR,#PPAGE + ENDIF + 157 + 158 IF PDATALEN <> 0 + MOV R0,#LOW (PDATASTART) + MOV R7,#LOW (PDATALEN) + CLR A + PDATALOOP: MOVX @R0,A + INC R0 + DJNZ R7,PDATALOOP + ENDIF + 166 + 167 IF IBPSTACK <> 0 + EXTRN DATA (?C_IBP) + + MOV ?C_IBP,#LOW IBPSTACKTOP + ENDIF + 172 + 173 IF XBPSTACK <> 0 + 174 EXTRN DATA (?C_XBP) + 175 +0014 750000 F 176 MOV ?C_XBP,#HIGH XBPSTACKTOP +0017 750000 F 177 MOV ?C_XBP+1,#LOW XBPSTACKTOP + 178 ENDIF + 179 + 180 IF PBPSTACK <> 0 + EXTRN DATA (?C_PBP) + MOV ?C_PBP,#LOW PBPSTACKTOP + ENDIF + 184 +001A 758100 F 185 MOV SP,#?STACK-1 + 186 + 187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4 + 188 ; Code Banking + 189 ; Select Bank 0 for L51_BANK.A51 Mode 4 + A51 MACRO ASSEMBLER STARTUP 09/06/2024 11:24:45 PAGE 4 + + 190 + + + + + 195 ; +001D 020000 F 196 LJMP ?C_START + 197 + 198 END + A51 MACRO ASSEMBLER STARTUP 09/06/2024 11:24:45 PAGE 5 + +SYMBOL TABLE LISTING +------ ----- ------- + + +N A M E T Y P E V A L U E ATTRIBUTES + +?C_C51STARTUP. . . C SEG 0020H REL=UNIT +?C_START . . . . . C ADDR ----- EXT +?C_STARTUP . . . . C ADDR 0000H A +?C_XBP . . . . . . D ADDR ----- EXT +?STACK . . . . . . I SEG 0001H REL=UNIT +ACC. . . . . . . . D ADDR 00E0H A +B. . . . . . . . . D ADDR 00F0H A +DPH. . . . . . . . D ADDR 0083H A +DPL. . . . . . . . D ADDR 0082H A +IBPSTACK . . . . . N NUMB 0000H A +IBPSTACKTOP. . . . N NUMB 0100H A +IDATALEN . . . . . N NUMB 0080H A +IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP +PBPSTACK . . . . . N NUMB 0000H A +PBPSTACKTOP. . . . N NUMB 0100H A +PDATALEN . . . . . N NUMB 0000H A +PDATASTART . . . . N NUMB 0000H A +PPAGE. . . . . . . N NUMB 0000H A +PPAGEENABLE. . . . N NUMB 0000H A +PPAGE_SFR. . . . . D ADDR 00A0H A +SP . . . . . . . . D ADDR 0081H A +STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP +XBPSTACK . . . . . N NUMB 0001H A +XBPSTACKTOP. . . . N NUMB 0000H A +XDATALEN . . . . . N NUMB 0320H A +XDATALOOP. . . . . C ADDR 000EH R SEG=?C_C51STARTUP +XDATASTART . . . . N NUMB 0000H A + + +REGISTER BANK(S) USED: 0 + + +ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/out/STARTUP.obj b/out/STARTUP.obj new file mode 100644 index 0000000..6a1b366 Binary files /dev/null and b/out/STARTUP.obj differ diff --git a/out/TTSS_task.lst b/out/TTSS_task.lst new file mode 100644 index 0000000..4c4861c --- /dev/null +++ b/out/TTSS_task.lst @@ -0,0 +1,326 @@ +C51 COMPILER V9.54 TTSS_TASK 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE TTSS_TASK +OBJECT MODULE PLACED IN ..\out\TTSS_task.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\ctask\TTSS_task.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOI + -NTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;.. + -\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRIN + -T(..\out\TTSS_task.lst) TABS(2) OBJECT(..\out\TTSS_task.obj) + +line level source + + 1 /***************************************************** + 2 *============================================================================ + 3 * HISTORY + 4 * Below this line, this part is controlled by TSTS. DO NOT MODIFY!! + 5 伪时间片嵌入式平台(Task Step by Step Turn by Turn Structure,简称TSTS) + 6 20220830_23642 CCmodify 优化了task handdle + 7 ///cc 2023/04/08--12:13:47 TS_task_val_ tst_v;////TTSS常用的全局变量 + 8 + 9 *============================================================================ + 10 ****************************************************************************/ + 11 + 12 #include "TTSS_task.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 13 //任务命名规则: + 14 // 1:第一层 + 15 /// 0驱动芯片级 flash + 16 /// 1芯片应用级 save + 17 /// 2任务应用级 jilu_save + 18 // + 19 // 2:第二层/flash/i2c/7290/等各类芯片 + 20 // 3:任务序号/不同的芯片/ + 21 // + 22 + 23 TS_task ts_task_init = + 24 { + 25 0L, ///vU32 n; + 26 /// volatile UN_TYPE en; //关闭任务,也可以理解为暂停,但是使用idelay的地方时间在 + -台计数任务在延时到了后才暂停,而的delay相当于暂停 + 27 0, ///volatile UN_TYPE sh; //当前任务段 + 28 0 ///volatile UN_TYPE sh_next; //下一个任务段,并不代表一定下一任务段一定是他,有可 + -能中间插入延时等任务段 + 29 /// volatile UN_TYPE sh_pre; //前一个任务段,一般为调出缓存任务段使用 + 30 + 31 + 32 }; + 33 ////L1_task_init + 34 TS_task_val_ tst_v;////TTSS常用的全局变量 + 35 + 36 void L1_task_reg_clear(TS_task *s) + 37 { + 38 1 // s->en = 1; + 39 1 // s->pfun = 0; + 40 1 s->sh = 0; + 41 1 s->sh_next= 0; + 42 1 /// s->sh_pre= 0; + 43 1 s->n= 0; + 44 1 } + 45 + 46 + 47 /////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>供演示task 结构的使用 不可删除>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + 48 #define D_task_test_01 0x20 + 49 #define D_task_test_02 0x22 + C51 COMPILER V9.54 TTSS_TASK 09/06/2024 11:24:47 PAGE 2 + + 50 #define D_task_test_03 0x23 + 51 + 52 #ifdef D_debug_task_test + ////>>>>>>>>>>>>>>>>>>>>>_s_task_test_>>>>>>>>>>>>>>>>>>>>>> + TS_task_test_ ts_task_test; + void L2_task_test_register(void) + { + ddd + L1_task_reg_clear(&ts_task_test.task); + L3_task_s_go(ts_task_test,D_task_init); + } + + ///L2_task_test_handle(&ts_task_test); + void L2_task_test_handle(TS_task_test_ *s) + { + unsigned char d = 0; + TTSS_Task_init(): + L2_task_go(D_task_test_01); + TTSS_Task_step(D_task_test_01): + if(d > 8) + { + d = 0; + L2_task_go(D_task_test_02); + L1_task_Cdelay(D_Cdelay_200us); + }else + { + d ++; + } + TTSS_Task_step(D_task_test_02): + if(d > 4) + { + d = 0; + L2_task_go(D_task_test_01); + L1_task_Tdelay(D_Tdelay_100ms); + }else + { + d ++; + } + + TTSS_Task_end(); + } + #endif//#ifdef D_debug_task_test + 92 ////<<<<<<<<<<<<<<<<<<<<<_s_task_test_<<<<<<<<<<<<<<<<<<<<<< + 93 + 94 + 95 + 96 //example : + 97 #if 0 + + + //L2_task_voice_handle(&s_task_music.task); + //L1_task_go(D_task_close); + //if(L1_task_busy(s)){ L1_task_goout(s_task_music.task,D_task_voice_send_single) } + void L2_task_voice_handle(struct _s_task_music_ *s) + { //s_task_music.task.sh + switch(s->task.sh) + { + + case D_task_voice_init:// + + s->sector = 0; + break; + C51 COMPILER V9.54 TTSS_TASK 09/06/2024 11:24:47 PAGE 3 + + case D_task_voice_cuimian : + s->sector = D_voice_music_wantsleep; + L2_task_go_son(D_task_voice_play,D_task_voice_cuimian1); + break; + case D_task_voice_cuimian1:// + L2_task_go(D_task_voice_cuimian2); + + break; + case D_task_voice_cuimian2:// + + if(0 == s->volume_change) + { + //L3_voice_stop(); + s->sector = D_voice_stop; + s->status = D_voice_status_stop; + //L2_task_go(D_task_voice_play); + L2_task_go_son(D_task_voice_play,0); + }else + { + s->volume_change --; + s->volume_temp = s->volume; + s->volume = s->volume_change*s->volume_shop/20;// + if (s->volume_temp != s->volume) + { + s->sector = D_voice_volume|s->volume; + //s->status = D_voice_status_stop; + //L2_task_go(D_task_voice_volume3); + L2_task_go_son(D_task_voice_play,D_task_voice_cuimian2); + } + //else + { + L2_task_delay(D_task_delay_1m); + } + } + break; + + //>>>>>>>>>>>>>>>>>> son function + case D_task_voice_play:// + if(L3_task_s_busy(s_task_wt558d)) + { + }else + { + s_task_wt558d.reg = s_task_music.sector; + L3_task_s_go(s_task_wt558d,D_task_wt558d_fun); + + L2_task_go(D_task_voice_ask); + } + break; + case D_task_voice_ask:// + if(L3_task_s_busy(s_task_wt558d)) + { + + }else + { + + L2_task_go_father();//回到 + } + break; + //<<<<<<<<<<<<<<<<<<<<<< son function + //-----------------------task standerd code + case D_task_Tdelay://---- + s->task.n--; + C51 COMPILER V9.54 TTSS_TASK 09/06/2024 11:24:47 PAGE 4 + + if (s->task.n == 0) + { + s->task.n = 0; + L2_task_delay_over(); + } + break; + + default : + break; + } + L2_task_wt558d_handle(&s_task_wt558d); + } + + + void L2_task_voice_handle(struct _s_task_music_ *s) + { //s_task_music.task.sh + switch(s->task.sh) + { + + case D_task_voice_init:// + + s->sector = 0; + break; + case D_task_voice_cuimian : + s->sector = D_voice_music_wantsleep; + L2_task_go_son(D_task_voice_play,D_task_voice_cuimian1); + break; + case D_task_voice_cuimian1:// + L2_task_go(D_task_voice_cuimian2); + + break; + + //-----------------------task standerd code + case D_task_Tdelay://---- + s->task.n--; + if (s->task.n == 0) + { + s->task.n = 0; + L2_task_delay_over(); + } + break; + + default : + break; + } + L2_task_wt558d_handle(&s_task_wt558d); + } + + //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + //>>>>>>>>>>>>>>>>>>>>>记录task + struct _s_task_4ChuShengRiQi_ + { + TS_task task; + unsigned char pic_id;//画面ID + + + }; + extern struct _s_task_4ChuShengRiQi_ s_task_4ChuShengRiQi_; + + #define D_task_4ChuShengRiQi_init 0x10 + #define D_task_4ChuShengRiQi_key 0x11 + + C51 COMPILER V9.54 TTSS_TASK 09/06/2024 11:24:47 PAGE 5 + + + extern void L2_task_4ChuShengRiQi_handle(struct _s_task_4ChuShengRiQi_ *s); + + void L2_task_4ChuShengRiQi_handle(struct _s_task_4ChuShengRiQi_ *s) + { + switch(s->task.sh) + { + + case D_task_4ChuShengRiQi_init:// + + s->pic_id= 0; + break; + case D_task_4ChuShengRiQi_key : + if(1 == s_task_keyx1.down ) + { + s_task_keyx1.down = 0; + + if(D_keyx_left == s_task_keyx1.key_value) + {} + + + }else if(1 == s_task_keyx_4.down) + { + s_task_keyx_4.down = 0; + + + } + else {} + + //L2_task_go_son(D_task_4ChuShengRiQi_play,D_task_4ChuShengRiQi_cuimian1); + break; + + L0_task_delay(); + } + } + + + + //<<<<<<<<<<<<<<<<<<<记录task + + + /////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<供演示task 结构的使用 不可删除<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + -< + + + #endif + 281 + 282 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 52 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 16 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- + C51 COMPILER V9.54 TTSS_TASK 09/06/2024 11:24:47 PAGE 6 + +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/TTSS_task.obj b/out/TTSS_task.obj new file mode 100644 index 0000000..8e86a50 Binary files /dev/null and b/out/TTSS_task.obj differ diff --git a/out/TTSS_tick.lst b/out/TTSS_tick.lst new file mode 100644 index 0000000..a3d3ad6 --- /dev/null +++ b/out/TTSS_tick.lst @@ -0,0 +1,204 @@ +C51 COMPILER V9.54 TTSS_TICK 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE TTSS_TICK +OBJECT MODULE PLACED IN ..\out\TTSS_tick.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\ctask\TTSS_tick.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOI + -NTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;.. + -\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRIN + -T(..\out\TTSS_tick.lst) TABS(2) OBJECT(..\out\TTSS_tick.obj) + +line level source + + 1 /***************************************************************************** + 2 * uart.h: Header file for NXP LPC17xx Family Microprocessors + 3 * + 4 * Copyright (c) 2023 CCSENS + 5 * All rights reserved. + 6 * + 7 * History + 8 * 2009.05.27 ver 1.00 Prelimnary version, first Release + 9 *2017.01.10 ver 1.10 rename TTSS_tick.h tick.c + 10 2019.03.11 ver 1.30 定时时间更改为25ms 解决串口接收受干扰的情况 + 11 *2021.12.12 ver 2.10 detail + 12 ****************************************************************************************/ + 13 /***************************************************** + 14 *============================================================================ + 15 * HISTORY + 16 * Below this line, this part is controlled by TSTS. DO NOT MODIFY!! + 17 伪时间片嵌入式平台(Task Step by Step Turn by Turn Structure,简称TSTS) + 18 *============================================================================ + 19 ****************************************************************************/ + 20 + 21 #include "TTSS_tick.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 22 + 23 #include "msp_uart1.h" + 24 ///#include "msp_uart2.h" + 25 ///#include "msp_uart3.h" + 26 ///#include "msp_uart4.h" + 27 + 28 TS_nos_tick_ s_nos_tick; + 29 #ifdef D_use_tick_fum + 30 void L1_task_tick_init(void) + 31 { + 32 1 s_nos_tick.uart1_overtime_callback = L2_uart1_overtime_callback; + 33 1 s_nos_tick.uart2_overtime_callback = L2_uart1_overtime_callback; + 34 1 s_nos_tick.uart2_overtime_callback = L2_uart1_overtime_callback;///保护使用防止误删 容易崩溃 + 35 1 + 36 1 s_nos_tick.t_1s = 0; + 37 1 s_nos_tick.jiffies = 0; + 38 1 s_nos_tick.t1s_heartbeat= 0; + 39 1 + 40 1 s_nos_tick.uart1_overtime_callback = L2_uart1_overtime_callback;///必备步骤1(method step 3) + 41 1 //// s_nos_tick.uart2_overtime_callback = L2_uart2_overtime_callback;///必备步骤1(method step 3) + 42 1 //// s_nos_tick.uart3_overtime_callback = L2_uart3_overtime_callback;///必备步骤1(method step 3) + 43 1 // s_nos_tick.uart4_overtime_callback = L2_uart4_overtime_callback;///必备步骤1(method step 3) + 44 1 ///s_nos_tick.uart3_overtime_fun = NULL;///必备步骤1(method step 3) + 45 1 ///s_nos_tick.uart4_overtime_fun = NULL;///必备步骤1(method step 3) + 46 1 /***** + 47 1 s_nos_tick.t1s_flag[0] = 0; + 48 1 s_nos_tick.t1s_flag[1] = 0; + 49 1 s_nos_tick.t1s_flag[2] = 0; + 50 1 s_nos_tick.t1s_flag[3] = 0; + 51 1 s_nos_tick.t1s_flag[4] = 0; + C51 COMPILER V9.54 TTSS_TICK 09/06/2024 11:24:47 PAGE 2 + + 52 1 s_nos_tick.t1s_flag[5] = 0; + 53 1 if(L2_tick_time_interval(n_stamp,7*D_Tdelay_1s)) + 54 1 {// 时间溢出 + 55 1 L2_tick_time_stamp(s->t_stamp); + 56 1 s_nos_tick.t_10ms = 0; + 57 1 s_nos_tick.tp_count = 0; + 58 1 s_nos_tick.n_stamp = 0; + 59 1 s_nos_tick.t1s_heartbeat= 0; + 60 1 ********/ + 61 1 + 62 1 /// s_nos_tick.flag_1s = 0; + 63 1 /// s_nos_tick.t_n = 0; + 64 1 //s_nos_tick.tmp = 0; + 65 1 //L0_timer0_ONF(1); + 66 1 } + 67 //JIFFIES回绕问题没有解决 参见 linux time_after宏定义 + 68 void L1_task_tick_callback (void) + 69 { + 70 1 ///65535*65535/3600/24/365=139nian/s=1.39nian/10ms + 71 1 ///相当于1.39年后t_10ms 溢出,对于电池供电的系统而言 完全可以满足 + 72 1 // 4,294,836,225 = 65535*65535 ;3600*24*60*60 = 31,536,000秒/年 + 73 1 //s_nos_tick.t_50ms ++;//D_led_D1_REV(); 20160522验证 + 74 1 s_nos_tick.jiffies++; + 75 1 if(s_nos_tick.jiffies % HZ == 0) + 76 1 { + 77 2 // 65535*65535/24/60/60/356/10 =12.7年 + 78 2 s_nos_tick.t_1s ++; + 79 2 s_nos_tick.t1s_heartbeat = 1; + 80 2 } + 81 1 s_nos_tick.uart1_overtime_callback();////必备步骤1(method step 1) + 82 1 // s_nos_tick.uart2_overtime_callback();////必备步骤1(method step 2)// + 83 1 // s_nos_tick.uart3_overtime_callback();////必备步骤1(method step 1) + 84 1 // s_nos_tick.uart4_overtime_callback();////必备步骤1(method step 1) + 85 1 } + 86 + 87 + 88 + 89 #else + + #endif + 92 + 93 #if 0 + /// 定时器调用 10ms 一个中断 + /// 定时器调用 25ms 一个中断 + void L1_tick_tick (void) + { /// 65535*65535 /3600/24/365=139nian/s=1.39nian/10ms + ///相当于1.39年后t_10ms 溢出,对于电池供电的系统而言 完全可以满足 + // 4,294,836,225 = 65535*65535 ;3600*24*60*60 = 31,536,000秒/年 + s_nos_tick.tp_count++; + s_nos_tick.t_10ms ++;//D_led_D1_REV(); 20160522 验证 + if(s_nos_tick.t_10ms%D_TIMER0_1S_COUNT == 0) + {// 65535*65535/24/60/60/356/10 =12.7年 + s_nos_tick.t_1s ++;//// 65535*65535/24/60/60/356/10 =12.7年 + /// s_nos_tick.flag_1s2 = 1; + s_nos_tick.t1s_heartbeat = 1; + /// LED1 = !LED1; + } + + + //<<<<<<<<<<<<<<<<<<<<<< + } + + C51 COMPILER V9.54 TTSS_TICK 09/06/2024 11:24:47 PAGE 3 + + + void L1_tick_tick (void) + { + s_nos_tick.t_n++; + if (s_nos_tick.t_n >= D_TIMER0_10MS_COUNT)// 5500--- 100 10s--556 + /// s 5ms 65535*65535 /3600/24/365=139nian/s + // 4,294,836,225 = 65535*65535 ;3600*24*60*60 = 31,536,000秒/年 + // fixme:此处 保留了一个百年bug:) + { + s_nos_tick.t_10ms ++;//D_led_D1_REV(); 20160522 验证 + if(s_nos_tick.t_10ms%D_TIMER0_1S_COUNT == 0) + {// 65535*65535/24/60/60/356/10 =12.7年 + s_nos_tick.t_1s ++;// + + // led_red =~led_red; + //s_nos_tick.t1s_flag[0] = 1; + //s_nos_tick.t1s_flag[1] = 1; + //s_nos_tick.t1s_flag[2] = 1; + //s_nos_tick.t1s_flag[3] = 1; + //s_nos_tick.t1s_flag[4] = 1; + //s_nos_tick.t1s_flag[5] = 1; + s_nos_tick.flag_1s = 1; + s_nos_tick.t1s_heatbeart = 1; + } + s_nos_tick.t_n = 0; + } + /******************* + // 0.2mm 4/0.2 = 20 20/60s = 333ms/maicong + // 0.2mm 60s 60 100 ms + // 0.2 6000ms + // 平时为1 水满一次为0 + // rain = 1;必须要做的初始化 + if(0 == rain) + { + if(1 == s_rain.temp) + {// ````\___ + s_rain.pool = s_rain.t; + s_rain.all ++; + s_rain.t = 0; + } + s_rain.temp = 0; + }else + { + s_rain.temp = 1; + } + s_rain.t ++; + + ******/ + //<<<<<<<<<<<<<<<<<<<<<< + } + + + #endif + 167 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 175 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 26 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + C51 COMPILER V9.54 TTSS_TICK 09/06/2024 11:24:47 PAGE 4 + + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/TTSS_tick.obj b/out/TTSS_tick.obj new file mode 100644 index 0000000..b9b57b5 Binary files /dev/null and b/out/TTSS_tick.obj differ diff --git a/out/TTSS_time_stc.lst b/out/TTSS_time_stc.lst new file mode 100644 index 0000000..c6b7b64 --- /dev/null +++ b/out/TTSS_time_stc.lst @@ -0,0 +1,126 @@ +C51 COMPILER V9.54 TTSS_TIME_STC 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE TTSS_TIME_STC +OBJECT MODULE PLACED IN ..\out\TTSS_time_stc.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\ctask\TTSS_time_stc.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER + - NOINTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tp + -c;..\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG + -PRINT(..\out\TTSS_time_stc.lst) TABS(2) OBJECT(..\out\TTSS_time_stc.obj) + +line level source + + 1 #include "ttss_time_stc.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 #define D_TIMER_COUNT(t,clk,timeInUs) (U16)(65536 - (clk) / 1000 * timeInUs / 1000 / t) + 3 + 4 /*************初始化定时器0由 stc-isp v6.86L定时器计算器生成******************/ + 5 + 6 + 7 #if(MainFre_5M == D_sys_MainFre) + + + #elif(MainFre_22M == D_sys_MainFre) + 11 void L0_timer0_Init(void)//void Timer0Init(void) //12500微秒@22.1184MHz + 12 { + 13 1 AUXR &= 0x7F; //定时器时钟12T模式 + 14 1 TMOD &= 0xF0; //设置定时器模式 + 15 1 TL0 = 0x00; //设置定时初始值 + 16 1 TH0 = 0xA6; //设置定时初始值 + 17 1 TF0 = 0; //清除TF0标志 + 18 1 TR0 = 1; //定时器0开始计时 + 19 1 } + 20 + 21 + 22 #elif(MainFre_27M == D_sys_MainFre) + + + + #elif(MainFre_44M == D_sys_MainFre) + + void L0_timer0_Init(void)/////void Timer0Init(void) //12.5m秒@44.0800MHz + { + AUXR &= 0x7F; //定时器时钟12T模式 + TMOD &= 0xF0; //设置定时器模式 + TL0 = 0xA3; //设置定时初始值 + TH0 = 0x4C; //设置定时初始值 + TF0 = 0; //清除TF0标志 + TR0 = 1; //定时器0开始计时 + } + void L0_timer4_Init(void)/////void Timer4_Init(void) //100微秒@44.2368MHz + { + T4T3M |= 0x20; //定时器时钟1T模式 + T4L = 0xB8; //设置定时初始值 + T4H = 0xEE; //设置定时初始值 + T4T3M |= 0x80; //定时器4开始计时 + } + + #else ///MainFre_11M + ////#warn + void L0_timer0_Init(void) + { + U16 val = D_TIMER_COUNT(12,D_sys_MainFre,D_sys_Jiffies * 1000); + AUXR &= 0x7F; //定时器时钟12T模式 + TMOD &= 0xF0; //设置定时器模式 + C51 COMPILER V9.54 TTSS_TIME_STC 09/06/2024 11:24:47 PAGE 2 + + //TL0 = 0x00; //设置定时初值 + //TH0 = 0x4C; //设置定时初值 + TL0 = val; //设置定时初值 + TH0 = val >> 8; //设置定时初值 + TF0 = 0; //清除TF0标志 + TR0 = 1; //定时器0开始计时 + } + + #endif//D_sys_MainFre) + 61 #if 0 + /// 65535*65535 /3600/24/365=139nian/s=1.39nian/10ms + ///相当于1.39年后t_10ms 溢出,对于电池供电的系统而言 完全可以满足 + // 4,294,836,225 = 65535*65535 ;3600*24*60*60 = 31,536,000秒/年 + s_nos_tick.t_10ms ++;//D_led_D1_REV(); 20160522 验证 + #endif + 67 + 68 //10---87 10s + 69 /********************** Timer0中断函数************************/ + 70 /// 和 L0_timer0_Init 关联,需要配置 bsp_config.h中的 D_sys_MainFre + 71 /// 默认10ms 作为TTSS系统的定时引擎 + 72 void timer0_isrHandle (void) D_SERVE_TIMER0 + 73 {// + 74 1 NOP(); NOP(); NOP(); + 75 1 TF0 = 0; + 76 1 L1_task_tick_callback(); ///系统中的1sflag 和以10ms为颗粒的延时使用 为tdelay服务 + 77 1 /// BITN_1(DR_who_wakeup, DRB_who_wakeup_timer0); + 78 1 NOP(); NOP(); NOP(); + 79 1 } + 80 + 81 void L1_timer0_Init(void) + 82 { + 83 1 ///step1:时钟 + 84 1 ///step2:模块使能 + 85 1 ///step3:启动 + 86 1 ///step4:模块中断使能 + 87 1 ///step5:全局中断使能 + 88 1 L0_timer0_Init(); + 89 1 ET0 = 1;///经常因为替换L0_timer0_Init(由stcisp例程生成) 改指令漏掉 + 90 1 } + 91 + 92 + 93 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/TTSS_time_stc.obj b/out/TTSS_time_stc.obj new file mode 100644 index 0000000..5a29d6f Binary files /dev/null and b/out/TTSS_time_stc.obj differ diff --git a/out/app_config.lst b/out/app_config.lst new file mode 100644 index 0000000..b51583d --- /dev/null +++ b/out/app_config.lst @@ -0,0 +1,434 @@ +C51 COMPILER V9.54 APP_CONFIG 09/06/2024 11:24:44 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE APP_CONFIG +OBJECT MODULE PLACED IN ..\out\app_config.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\app\app_config.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN + -TPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\ + -source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT + -(..\out\app_config.lst) TABS(2) OBJECT(..\out\app_config.obj) + +line level source + + 1 #include "app_config.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 //#include "../tpc/tpc_uart.h" + 3 ///#include "../bsp/bsp_cs1232.h" + 4 #include "msp_eeprom.h" + 5 ///#include "../msp/msp_id.h" + 6 #include "debug_drv.h" + 7 #include "msp_uartN.h" + 8 + 9 TS_GlobalRegisterSave_ S; + 10 ////TS_GlobalParam_ G; + 11 + 12 void L3_R_2_S(void) + 13 { + 14 1 TTSS_run_times(4)////tst_v.i + 15 1 { ////ts_adc_samples[tst_v.i].pSPara = &TS_adc_SPara[tst_v.i]; + 16 2 Lc_buf_from_const_uc(D_struct2U8(S.adc_SPara[tst_v.i]),D_struct2U8(TS_adc_SPara[tst_v.i]),D_TS_adc_SPara + -_LEN); + 17 2 } + 18 1 ///tst_weight.pSPara = &ts_weight_SPara; + 19 1 Lc_buf_from_const_uc(D_struct2U8(S.weight_SPara),D_struct2U8(ts_weight_SPara),D_TS_weight_SPara_len); + 20 1 } + 21 void L3_S_2_R(void) + 22 { + 23 1 TTSS_run_times(4)////tst_v.i + 24 1 { + 25 2 Lc_buf_from_const_uc(D_struct2U8(TS_adc_SPara[tst_v.i]),D_struct2U8(S.adc_SPara[tst_v.i]),D_TS_adc_SPara + -_LEN); + 26 2 ts_adc_samples[tst_v.i].pSPara = &TS_adc_SPara[tst_v.i]; + 27 2 } + 28 1 /// + 29 1 Lc_buf_from_const_uc(D_struct2U8(ts_weight_SPara),D_struct2U8(S.weight_SPara),D_TS_weight_SPara_len); + 30 1 tst_weight.pSPara = &ts_weight_SPara; + 31 1 } + 32 + 33 #define D_0xaa55 0xaa55 + 34 + 35 ////返回0 并打印 ("\r\nSpara ok "); + 36 /// 返回非零 为错误次数 最后一次ok + 37 /// 返回100 严重错误 一次没有成功 + 38 vtype L3_S_init(void) + 39 { + 40 1 vtype ovt = 0; + 41 1 //// + 42 1 /* + 43 1 + 44 1 存错的多个写法: + 45 1 使用三个区域,增加一致性判定的写法 + 46 1 使用一个区域,容错一次的写法 + 47 1 + 48 1 + 49 1 step 1 上电读取eeprom参数, + C51 COMPILER V9.54 APP_CONFIG 09/06/2024 11:24:44 PAGE 2 + + 50 1 step 2 如果标志位数据不对,把每个任务中的spara初始化放到S 中,然后写入eeprom + -,返回step 1 + 51 1 如果重试次数溢出 打印错误信息;严重警告 系统不可用 + 52 1 step 3 如果标志位数据ok 退出 + 53 1 TTSS_run_times(4)////tst_v.i + 54 1 { ////ts_adc_samples[tst_v.i].pSPara = &TS_adc_SPara[tst_v.i]; + 55 1 Lc_buf_from_const_uc(D_struct2U8(S.adc_SPara[tst_v.i]),D_struct2U8(&TS_adc_SPara[tst_v.i]),D_TS_adc_SPara + -_LEN); + 56 1 } + 57 1 + 58 1 ///tst_weight.pSPara = &ts_weight_SPara; + 59 1 Lc_buf_from_const_uc(D_struct2U8(S.weight_SPara),D_struct2U8(&ts_weight_SPara),D_TS_weight_SPara_len); + 60 1 + 61 1 + 62 1 */ + 63 1 do{ + 64 2 L0_Iap_Read_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); + 65 2 printf1("\r\nread S: %d ",(int)ovt); + 66 2 L1_uartD_Arrayhex(D_struct2U8(S),D_S_LEN); + 67 2 + 68 2 if(0xaa55 == S.d0xaa55) + 69 2 {////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>和应用强相关 + 70 3 L3_S_2_R(); + 71 3 ////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<和应用强相关 + 72 3 printfs("\r\nSpara ok "); + 73 3 return ovt; + 74 3 }else + 75 2 { + 76 3 S.d0xaa55 = D_0xaa55; + 77 3 printf1("\r\nProg %x",S.d0xaa55); + 78 3 L3_R_2_S(); + 79 3 L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); + 80 3 } + 81 2 }while(ovt ++< 2); + 82 1 return 100; + 83 1 } + 84 + 85 /* + 86 void L3_param_init(void) + 87 { + 88 int i; + 89 for(i=0;iadd,); + 119 1 + 120 1 } +*** WARNING C280 IN LINE 116 OF ..\source\app\app_config.c: 't': unreferenced local variable + 121 + 122 + 123 + 124 //读取iap内容,写入reg + 125 void L3_iap_2_reg(void) + 126 { + 127 1 + 128 1 /* + 129 1 + 130 1 + 131 1 U8 len = 0,i = 0; + 132 1 if(L1_eeprom_read((U8*)&iapData,&len) == 1) + 133 1 { + 134 1 L0_uart0_sendstr("e2p read failed\r\n"); + 135 1 return; + 136 1 } + 137 1 L0_uart0_sendstr("e2p read success\r\n"); + 138 1 + 139 1 Lc_buf_copy_uc((u8 *)&iapData,(u8 *)&R.sd,20); + 140 1 + 141 1 */ + 142 1 + 143 1 } + 144 + 145 /********* + 146 + 147 + 148 int L3_mcu_id_ok(void) + 149 { + 150 U8 i = 0,crc[2]; + 151 U32 enc_key; + 152 //1.获取MCU_ID + 153 L0_id_get_rom(G.e.mcu_id); + 154 for(i=0;i= weight) + { + break; + } + } + if(its_WPoint + 114 1 } + 115 + 116 #define D_debug_ch D_Wch2 + 117 ///L3_task_weight_handler(&tst_weight); + 118 void L3_task_weight_handler(TS_TASK_weight_ *s) + 119 { + 120 1 L2_task_adc_sample(&ts_adc_samples[D_Wch1]); + 121 1 + 122 1 L2_task_adc_sample(&ts_adc_samples[D_Wch2]); + 123 1 + 124 1 L2_task_adc_sample(&ts_adc_samples[D_Wch3]); + 125 1 + 126 1 L2_task_adc_sample(&ts_adc_samples[D_Wch4]); + 127 1 + 128 1 TTSS_Task_init(): + 129 2 L0_waitFree_uartN(0); + 130 2 + 131 2 /* + 132 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[0]. + -offset,ts_adc_samples[0].offset); + 133 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[1]. + -offset,ts_adc_samples[1].offset); + 134 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[2]. + -offset,ts_adc_samples[2].offset); + 135 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[3]. + -offset,ts_adc_samples[3].offset); + 136 2 + 137 2 printf('4'); + 138 2 + 139 2 */ + 140 2 s->slow = 0; + 141 2 s->zero = 0;s->kgx10_zero = 0; + 142 2 printfs(" L3_task_weight_handler "); + 143 2 + 144 2 L2_task_go(D_task_WEIGHT_get); + 145 2 TTSS_Task_step(D_task_WEIGHT_get): + 146 2 if(1 == ts_adc_samples[D_Wch4].ok) + 147 2 {// + 148 3 ts_adc_samples[0].ok = 0; + 149 3 ts_adc_samples[1].ok = 0; + 150 3 ts_adc_samples[2].ok = 0; + 151 3 ts_adc_samples[3].ok = 0; + 152 3 s->slow ++; + 153 3 // L0_uart0_uc('%'); + 154 3 L2_task_go(D_task_WEIGHT_Sline); + 155 3 } + 156 2 TTSS_Task_step(D_task_WEIGHT_Sline): + 157 2 if (s->slow >= 1)////采样减速 + 158 2 {s->slow = 0; + 159 3 ///调用asp——adc中的输出 out3 + 160 3 /************/ + 161 3 ///cc 2023/04/06--8:9:18 选择使用哪一条滤波线 + 162 3 + 163 3 ts_adc_samples[0].out5 = ts_adc_samples[0].ts_SAa.out4_shift; + 164 3 ts_adc_samples[1].out5 = ts_adc_samples[1].ts_SAa.out4_shift; + 165 3 ts_adc_samples[2].out5 = ts_adc_samples[2].ts_SAa.out4_shift; + 166 3 ts_adc_samples[3].out5 = ts_adc_samples[3].ts_SAa.out4_shift; + 167 3 + 168 3 L2_task_go(D_task_WEIGHT_getADC); + 169 3 }else + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 4 + + 170 2 { + 171 3 L2_task_go(D_task_WEIGHT_get); + 172 3 } + 173 2 //L2_task_go(D_task_WEIGHT_getADC); + 174 2 TTSS_Task_step(D_task_WEIGHT_getADC): + 175 2 + 176 2 + 177 2 ////四个传感器相加后平均 + 178 2 tst_weight.sum32 = ts_adc_samples[0].out5; + 179 2 tst_weight.sum32 += ts_adc_samples[1].out5; + 180 2 tst_weight.sum32 += ts_adc_samples[2].out5; + 181 2 tst_weight.sum32 += ts_adc_samples[3].out5; + 182 2 + 183 2 tst_weight.out6 = tst_weight.sum32 >>2; + 184 2 + 185 2 L2_task_go(D_task_WEIGHT_CAL); + 186 2 TTSS_Task_step(D_task_WEIGHT_CAL): + 187 2 + 188 2 tst_weight.adc32 = tst_weight.out6; + 189 2 + 190 2 L3_task_weight_cal(); + 191 2 + 192 2 L2_task_go(D_task_WEIGHT_out); + 193 2 TTSS_Task_step(D_task_WEIGHT_out): + 194 2 if(tst_weight.kgx10 > tst_weight.kgx10_zero) + 195 2 { + 196 3 s->kgx10_out = s->kgx10 - s->kgx10_zero; + 197 3 }else + 198 2 { + 199 3 s->kgx10_out = 0 ; + 200 3 } + 201 2 //// D_LED1_REV(); L4_weight_out(); D_LED1_REV(); + 202 2 + 203 2 + 204 2 + 205 2 /// L4_weight_print();///需要调试的时候打开!!!!!!!!!!!!!!! + 206 2 L2_task_Tdelay_go(D_Tdelay_200ms, D_task_WEIGHT_get); + 207 2 /// L2_task_go(D_task_WEIGHT_get); + 208 2 TTSS_Task_step(D_task_WEIGHT_zero): + 209 2 + 210 2 + 211 2 L2_task_go(D_task_WEIGHT_get); + 212 2 TTSS_Task_end(); + 213 1 } + 214 + 215 + 216 void L3_task_weight_cal(void) + 217 { + 218 1 if(tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[1].adc) + 219 1 { + 220 2 if(tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[0].adc ) + 221 2 { + 222 3 tst_weight.adc32 = (vU32)S.weight_SPara.ts_WPoint[0].adc; + 223 3 } + 224 2 ///0-0-40KG + 225 2 tst_weight.t32a = (tst_weight.adc32-(vU32)S.weight_SPara.ts_WPoint[0].adc);////有可能<0 + 226 2 tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[1].adc-S.weight_SPara.ts_WPoint[0].adc); + 227 2 tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[1].kg - S.weight_SPara.ts_WPoint[0].kg); + 228 2 tst_weight.t32a /= tst_weight.t32b; + 229 2 + 230 2 }else + 231 1 { ///40KG 80KG + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 5 + + 232 2 tst_weight.t32a = (vU32)(tst_weight.adc32-S.weight_SPara.ts_WPoint[1].adc);////有可能大于b + 233 2 tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[2].adc-S.weight_SPara.ts_WPoint[1].adc); + 234 2 tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[2].kg-S.weight_SPara.ts_WPoint[1].kg) ; + 235 2 tst_weight.t32a /= tst_weight.t32b; + 236 2 tst_weight.t32a += (vU32)S.weight_SPara.ts_WPoint[1].kg; + 237 2 + 238 2 } + 239 1 tst_weight.kgx10 = (vU16)tst_weight.t32a; + 240 1 } + 241 + 242 /* + 243 + 244 #define D_0kg 0 + 245 #define D_20kg 200///0x00c8 + 246 #define D_85kg 850////0x0352 + 247 + 248 #define D_Rsensor_out_D_0kg 0x18D9 + 249 #define D_Rsensor_out_D_20kg 0x1B8B + 250 #define D_Rsensor_out_D_85kg 0x244D + 251 + 252 */ + 253 + 254 #if 0 + void L3_weight_ONdebug(u8 filter)//// ON listen function + { + if(filter == pd->filter) + { + ///filter num d1 d2 d3 ....dn + ////FE 08 11 22 33 44 55 66 77 88 + ///printf("\r\nDdebug:FD R1 R2 R3 R4 R5 R6 ocr FD->"); + ///printf4("22 ch:(%2X)-%2X S %2X=%2X\r\n",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->ocr); + L1_uartD_Arrayhex((u8*)pd,9); + switch (pd->ocr) + { + case 0x20: + ////选择一个砝码,发送0x12指令,然后读取的数据 和砝码的重量使用 20 21 22参 + -数来 + ///fx R1 R2 R3R4 R5R6 ocr + ///Fe ch 00 2233 4455 20 0x2233 kg= 0x4455 adc + ///Fe 00 00 0000 18D9 20 + ///Fe 01 00 00c8 1c2c 20 + ///Fe 02 00 0352 26f9 20 + /// 0352 26f9 + ///00c8 1c2c + ///Fe 22 33 44 55 21 + ///Fe 22 33 44 55 22 + if(pd->R1 < 3) + ts_weight_SPara.ts_WPoint[pd->R1].kg = D_2uc_u16(pd->R3,pd->R4); + ts_weight_SPara.ts_WPoint[pd->R1].adc = D_2uc_u16(pd->R5,pd->R6); + + printf5("\r\nset %d: %4x(%6d) %4x(%6d)\r\n",(int)pd->R1, + ts_weight_SPara.ts_WPoint[pd->R1].kg,ts_weight_SPara.ts_WPoint[pd->R1].kg, + ts_weight_SPara.ts_WPoint[pd->R1].adc,ts_weight_SPara.ts_WPoint[pd->R1].adc); { + + } + + L3_R_2_S(); + L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); + break; + case 0x35: ///// '5'/// + ////选择一个砝码,发送0x12指令,然后读取的数据 和砝码的重量使用 20 21 22参 + -数来 + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 6 + + ///fx R1 R2 R3R4 R5R6 ocr + ///Fe ch 00 2233 4455 35 kg= 0x2233 + + ////校准20kg 输入 Fe 01 00 00 c8 02 00 35 + ///Fe 01 00 00 c8 02 00 35 kg= 0x00c8=200d///需要校准的重量的 20kg 200d=0xc8 + ///校准20kg 输入 Fe 01 00 00 c8 02 00 35 + + /// Fe 00 00 00 00 01 00 35 校准零点 不需要上电即可 + /// Fe 01 00 00 c8 02 00 35 20kg 放置20kg 然后输入 + /// Fe 02 00 01 d6 03 00 35 47kg 10个3kg砝码实际是27kg+20kg + ////如果需要上位机设置 需要在上位机的串口 加上D4 D代表chuandi + if(pd->R1 < 3) + { + ts_weight_SPara.ts_WPoint[pd->R1].kg = D_2uc_u16(pd->R3,pd->R4); + ts_weight_SPara.ts_WPoint[pd->R1].adc = tst_weight.adc32;////使用当前采样值 + + printf5("\r\nset %d: %4x(%6d) %4x(%6d)\r\n",(int)pd->R1, + ts_weight_SPara.ts_WPoint[pd->R1].kg,ts_weight_SPara.ts_WPoint[pd->R1].kg, + ts_weight_SPara.ts_WPoint[pd->R1].adc,ts_weight_SPara.ts_WPoint[pd->R1].adc); + } + + L3_R_2_S(); + L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); + break; + + case 0x21: /// 清零指令 把当前的重量值作为0点; 可以在pad上配置参数 + ////Fe 223344556677 21 + + L4_weight_print(); + tst_weight.kgx10_zero = tst_weight.kgx10; + printf2("\r\n kgx10_zero= %4x(%4d)",tst_weight.kgx10_zero,tst_weight.kgx10_zero); + break; + + case 0x23: + ///Fe 11 22 33 44 55 66 23 + TTSS_run_times(3) + { + printf5("\r\n%d: %4x(%4d ) %4x(%6d)\r\n",(int)tst_v.i, + ts_weight_SPara.ts_WPoint[tst_v.i].kg,ts_weight_SPara.ts_WPoint[tst_v.i].kg, + ts_weight_SPara.ts_WPoint[tst_v.i].adc,ts_weight_SPara.ts_WPoint[tst_v.i].adc); + } + break; + + case 0x32: ///读取当前的重量和传感器数值 + ///Fe 223344556677 12 + printfs("\r\n "); + L4_weight_print(); + break; + + case 0x33: ///读取当前的重量和传感器数值 hex + ///Fe 223344556677 12 + D_LED1_REV(); + L4_weight_out(); + D_LED1_REV(); + break; + + default: + printfs(" pp error\r\n "); + break; + }; + printfs("333"); + } + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 7 + + } + + #else + 357 void L3_weight_ONdebug(u8 filter)//// ON listen function + 358 { + 359 1 // printf(" \r\n0->filter=%X ", (int)filter); + 360 1 // printf(" \r\n1->filter=%X slaveId=%X cmd=%X len = %d ", (int)pd485->filter,(int)pd485->slaveId, (int)p + -d485->cmd, (int)ts_Urec[D_UART1].num); + 361 1 // D_LED2_REV(); + 362 1 if(filter == pd485->filter) + 363 1 { + 364 2 // L1_uartD_Arrayhex((u8*)pd,9); + 365 2 switch (pd485->cmd) + 366 2 { + 367 3 case 0x10: + 368 3 ////读取称重 + 369 3 D_LED1_REV(); + 370 3 L4_weight_out(); + 371 3 D_LED1_REV(); + 372 3 break; + 373 3 + 374 3 case 0x20: + 375 3 ///// 校准 + 376 3 ////选择一个砝码,发送0x12指令,然后读取的数据 和砝码的重量使用 20 21 22参 + -数来 + 377 3 ///fx R1 R2 R3R4 R5R6 ocr + 378 3 ///Fe ch 00 2233 4455 35 kg= 0x2233 + 379 3 + 380 3 ////校准20kg 输入 Fe 01 00 00 c8 02 00 35 + 381 3 ///Fe 01 00 00 c8 02 00 35 kg= 0x00c8=200d///需要校准的重量的 20kg 200d=0xc8 + 382 3 ///校准20kg 输入 Fe 01 00 00 c8 02 00 35 + 383 3 + 384 3 /// Fe 00 00 00 00 01 00 35 校准零点 不需要上电即可 + 385 3 /// Fe 01 00 00 c8 02 00 35 20kg 放置20kg 然后输入 + 386 3 /// Fe 02 00 01 d6 03 00 35 47kg 10个3kg砝码实际是27kg+20kg + 387 3 ////如果需要上位机设置 需要在上位机的串口 加上D4 D代表chuandi + 388 3 + 389 3 //AA 02 20 00 03 pIndex kgx10_0 kgx10_1 ocr 对pIndex(0/1/2)点进行校准,校准值为kgx10 + 390 3 if(pd485->buf[0] < 3) + 391 3 { + 392 4 ts_weight_SPara.ts_WPoint[pd485->buf[0]].kg = D_2uc_u16(pd485->buf[1],pd485->buf[2]); + 393 4 ts_weight_SPara.ts_WPoint[pd485->buf[0]].adc = tst_weight.adc32;////使用当前采样值 + 394 4 + 395 4 // printf5("\r\nset %d: %4x(%6d) %4x(%6d)\r\n",(int)pd->R1, + 396 4 // ts_weight_SPara.ts_WPoint[pd->R1].kg,ts_weight_SPara.ts_WPoint[pd->R1].kg, + 397 4 // ts_weight_SPara.ts_WPoint[pd->R1].adc,ts_weight_SPara.ts_WPoint[pd->R1].adc); + 398 4 D_LED1_REV(); + 399 4 L4_WPoint_out(); + 400 4 D_LED1_REV(); + 401 4 + 402 4 //写入IAP + 403 4 L3_R_2_S(); + 404 4 L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); + 405 4 } + 406 3 + 407 3 break; + 408 3 + 409 3 case 0x30: + 410 3 /// 清零指令 把当前的重量值作为0点; 可以在pad上配置参数 + 411 3 ////Fe 223344556677 21 + 412 3 //L4_weight_print(); + 413 3 tst_weight.kgx10_zero = tst_weight.kgx10; + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 8 + + 414 3 //printf2("\r\n kgx10_zero= %4x(%4d)",tst_weight.kgx10_zero,tst_weight.kgx10_zero); + 415 3 + 416 3 D_LED1_REV(); + 417 3 L4_kgx10zero_out(); + 418 3 D_LED1_REV(); + 419 3 + 420 3 break; + 421 3 + 422 3 case 0x40: + 423 3 ///Fe 11 22 33 44 55 66 23 + 424 3 TTSS_run_times(3) + 425 3 { + 426 4 printf5("\r\n%d: %4x(%4d ) %4x(%6d)\r\n",(int)tst_v.i, + 428 4 ts_weight_SPara.ts_WPoint[tst_v.i].kg,ts_weight_SPara.ts_WPoint[tst_v.i].kg, + 428 4 ts_weight_SPara.ts_WPoint[tst_v.i].adc,ts_weight_SPara.ts_WPoint[tst_v.i].adc); + 429 4 } + 430 3 break; + 431 3 + 432 3 case 0x50: ///读取当前的重量和传感器数值 + 433 3 ///Fe 223344556677 12 + 434 3 printfs("\r\n "); + 435 3 L4_weight_print(); + 436 3 break; + 437 3 + 438 3 default: + 439 3 printfs(" pp error\r\n "); + 440 3 break; + 441 3 }; + 442 2 } + 443 1 } + 444 #endif + 445 + 446 + 447 void L4_weight_print(void) + 448 { + 449 1 L1_uartD_ushex(ts_adc_samples[0].out1_adc);L1_uartD_uc(' '); + 450 1 L1_uartD_ushex(ts_adc_samples[1].out1_adc);L1_uartD_uc(' '); + 451 1 L1_uartD_ushex(ts_adc_samples[2].out1_adc);L1_uartD_uc(' '); + 452 1 L1_uartD_ushex(ts_adc_samples[3].out1_adc);L1_uartD_uc(' '); + 453 1 + 454 1 /* L1_uartD_uc('|');L1_uartD_uc(' '); + 455 1 L1_uartD_ushex(ts_adc_samples[0].out2_offset);L1_uartD_uc(' ');////调整偏移量后的值 + 456 1 L1_uartD_ushex(ts_adc_samples[1].out2_offset);L1_uartD_uc(' '); + 457 1 L1_uartD_ushex(ts_adc_samples[2].out2_offset);L1_uartD_uc(' '); + 458 1 L1_uartD_ushex(ts_adc_samples[3].out2_offset);L1_uartD_uc(' '); + 459 1 + 460 1 L1_uartD_ushex(ts_adc_samples[0].out5);L1_uartD_uc(' ');////调整偏移量后的值 + 461 1 L1_uartD_ushex(ts_adc_samples[1].out5);L1_uartD_uc(' '); + 462 1 L1_uartD_ushex(ts_adc_samples[2].out5);L1_uartD_uc(' '); + 463 1 L1_uartD_ushex(ts_adc_samples[3].out5);L1_uartD_uc(' '); + 464 1 + 465 1 */ + 466 1 + 467 1 L1_uartD_uc('|');L1_uartD_uc(' '); + 468 1 L1_uartD_ushex((vU16)tst_weight.adc32); L1_uartD_uc(' ');///参与运算的值 + 469 1 printf2(" (%d)%4x ", tst_weight.kgx10,tst_weight.kgx10); + 470 1 printf2("out (%d)%4x\r\n", tst_weight.kgx10_out,tst_weight.kgx10_out); + 471 1 } + 472 + 473 + 474 + 475 + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 9 + + 476 #if 0 + TS_weight_out_ ts_weight_out; + void L4_weight_out(void) + { + ts_weight_out.fx = 0x55; + ts_weight_out.sensor_adc[0]=ts_adc_samples[0].out1_adc; + ts_weight_out.sensor_adc[1]=ts_adc_samples[1].out1_adc; + ts_weight_out.sensor_adc[2]=ts_adc_samples[2].out1_adc; + ts_weight_out.sensor_adc[3]=ts_adc_samples[3].out1_adc; + ts_weight_out.kgx10_out = tst_weight.kgx10_out; + ts_weight_out.adc32= tst_weight.adc32;////采样值用作校准时使用 + ts_weight_out.ocr =0x33; + #if 0 + ts_weight_out.num = 17; + #else + + ts_weight_out.num = 15; + #endif + ts_weight_out.out6= tst_weight.out6; + L1_uartD_Array((u8 *)&ts_weight_out,ts_weight_out.num); + + + } + + #else + 501 + 502 TS_weight_out_ ts_weight_out; + 503 void L4_weight_out(void) + 504 { + 505 1 U8 dnum = 12, total = 18; + 506 1 ts_weight_out.filter = 0xAA; + 507 1 ts_weight_out.slaveId = 0x02; + 508 1 ts_weight_out.cmd = 0x10; + 509 1 ts_weight_out.num[0] = (dnum >> 8) & 0xFF; + 510 1 ts_weight_out.num[1] = dnum & 0xFF; + 511 1 ts_weight_out.sensor_adc[0]=ts_adc_samples[0].out1_adc; + 512 1 ts_weight_out.sensor_adc[1]=ts_adc_samples[1].out1_adc; + 513 1 ts_weight_out.sensor_adc[2]=ts_adc_samples[2].out1_adc; + 514 1 ts_weight_out.sensor_adc[3]=ts_adc_samples[3].out1_adc; + 515 1 ts_weight_out.kgx10_out = tst_weight.kgx10_out; + 516 1 ts_weight_out.adc32= tst_weight.adc32;////采样值用作校准时使用 + 517 1 ts_weight_out.ocr =0x33; + 518 1 L1_uartD_Array((u8 *)&ts_weight_out,total); + 519 1 } + 520 + 521 TS_WPoint_out_ ts_wpoint_out; + 522 void L4_WPoint_out(void) + 523 { + 524 1 U8 dnum = 12, total = 18; + 525 1 ts_wpoint_out.filter = 0xAA; + 526 1 ts_wpoint_out.slaveId = 0x02; + 527 1 ts_wpoint_out.cmd = 0x20; + 528 1 ts_wpoint_out.num[0] = (dnum >> 8) & 0xFF; + 529 1 ts_wpoint_out.num[1] = dnum & 0xFF; + 530 1 Lc_buf_from_const_uc(ts_wpoint_out.wpoint, S.weight_SPara.ts_WPoint , sizeof(S.weight_SPara.ts_WPoint)); +*** WARNING C182 IN LINE 530 OF ..\source\app\app_weight.c: pointer to different objects +*** WARNING C182 IN LINE 530 OF ..\source\app\app_weight.c: pointer to different objects + 531 1 ts_wpoint_out.ocr =0x33; + 532 1 L1_uartD_Array((u8 *)&ts_wpoint_out,total); + 533 1 } + 534 + 535 + C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 10 + + 536 TS_Kgx10zero_out_ ts_kgx10zero_out; + 537 void L4_kgx10zero_out(void) + 538 { + 539 1 U8 dnum = 2, total = 8; + 540 1 ts_kgx10zero_out.filter = 0xAA; + 541 1 ts_kgx10zero_out.slaveId = 0x02; + 542 1 ts_kgx10zero_out.cmd = 0x30; + 543 1 ts_kgx10zero_out.num[0] = (dnum >> 8) & 0xFF; + 544 1 ts_kgx10zero_out.num[1] = dnum & 0xFF; + 545 1 ts_kgx10zero_out.kgx10zero[0] = tst_weight.kgx10_zero >> 8 & 0xFF; + 546 1 ts_kgx10zero_out.kgx10zero[1] = tst_weight.kgx10_zero >> 0 & 0xFF; + 547 1 ts_kgx10zero_out.ocr =0x33; + 548 1 L1_uartD_Array((u8 *)&ts_kgx10zero_out,total); + 549 1 } + 550 + 551 #endif + 552 + 553 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 2553 ---- + CONSTANT SIZE = 96 ---- + XDATA SIZE = 123 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/out/app_weight.obj b/out/app_weight.obj new file mode 100644 index 0000000..df0edc4 Binary files /dev/null and b/out/app_weight.obj differ diff --git a/out/asp_lowpower.lst b/out/asp_lowpower.lst new file mode 100644 index 0000000..e062959 --- /dev/null +++ b/out/asp_lowpower.lst @@ -0,0 +1,359 @@ +C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 11:24:45 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE ASP_LOWPOWER +OBJECT MODULE PLACED IN ..\out\asp_lowpower.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\asp\asp_lowpower.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NO + -INTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;. + -.\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRI + -NT(..\out\asp_lowpower.lst) TABS(2) OBJECT(..\out\asp_lowpower.obj) + +line level source + + 1 ////////////////////////////////////////////////////////////////////////// + 2 /// COPYRIGHT NOTICE + 3 /// Copyright (c) 2023, 传控科技 + 4 /// All rights reserved. + 5 /// + 6 /// @file asp_gsensor.c + 7 /// @brief asp_gsensor + 8 /// + 9 ///(本文件实现的功能的详述) + 10 /// + 11 + 12 ////20221217_213321 CCmodify new uart struct for road protocol + 13 + 14 #include "msp_uart1.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 15 + 16 #include "msp_UART2.h" + 17 + 18 #include "debug_drv.h" + 19 #include "bsp_config.h" + 20 #include "asp_gsensor.h" + 21 #include "bsp_moto.h" + 22 + 23 #include "asp_move.h" + 24 + 25 #include "asp_lowpower.h" + 26 + 27 #define D_version_main "7.0" + 28 + 29 + 30 + 31 void L0_uart_close(void) + 32 { + 33 1 L0_uart1_str("\r\nuart1 close");/// + 34 1 Lc_delay_ms(20); + 35 1 + 36 1 EA = 0; + 37 1 D_uart1_ES_INT(0); + 38 1 //// D_UART2_ES_INT(0); + 39 1 AUXR = 0; //定时器2开始计时 + 40 1 + 41 1 ET1 = 0; //禁止定时器%d中断 + 42 1 TR1 = 0; //定时器1开始计时 + 43 1 } + 44 void L0_uart1_open(void) + 45 {// + 46 1 L0_uart1_buf_init();//串口初始化// + 47 1 + 48 1 EA = 1; + 49 1 L0_uart1_str("\r\nuart1 open"); + 50 1 } + 51 void L0_uart2_open(void) + C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 11:24:45 PAGE 2 + + 52 {// + 53 1 // L0_uart2_buf_init(); + 54 1 + 55 1 EA = 1; + 56 1 L0_uart1_str("\r\nuart2 open"); + 57 1 } + 58 + 59 + 60 + 61 void L0_SetWakeUpTime(u16 SetTime) + 62 { + 63 1 SetTime = (U16)((32768UL * (U32)SetTime) / 16000); //重装值 = Fwkt/16 * SetTime/1000 = Fwkt * SetT + -ime / 16000 + 64 1 if(SetTime > 0) SetTime--; + 65 1 WKTCL = (u8)SetTime; + 66 1 WKTCH = (u8)(SetTime >> 8) | 0x80; + 67 1 } + 68 + 69 + 70 void L0_main_lowp_set(void) + 71 {// + 72 1 L0_uart_close(); + 73 1 L0_SetWakeUpTime(10000);/// + 74 1 BITN_1(P_SW2 ,BITN7);///P_SW2|=0x80; + 75 1 ////PCON = 0; + 76 1 + 77 1 + 78 1 ///0:禁止端口内部的 4.1K 上拉电阻 + 79 1 ///1:使能端口内部的 4.1K 上拉电阻 + 80 1 P0PU = 0; + 81 1 P1PU = 0; + 82 1 P2PU = 0; + 83 1 P3PU = 0; + 84 1 P4PU = 0; + 85 1 P5PU = 0; + 86 1 + 87 1 + 88 1 ///0:使能端口的施密特触发功能。(上电复位后默认使能施密特触发) + 89 1 P0NCS = 0xff; + 90 1 P1NCS = 0xff; + 91 1 P2NCS = 0xff; + 92 1 P3NCS = 0xff; + 93 1 P4NCS = 0xff; + 94 1 P5NCS = 0xff; + 95 1 + 96 1 + 97 1 + 98 1 + 99 1 + 100 1 ////1:电平转换速度慢,相应的上下冲比较小 + 101 1 P0SR =0xff; + 102 1 P1SR =0xff; + 103 1 P2SR =0xff; + 104 1 P3SR =0xff; + 105 1 P4SR =0xff; + 106 1 P5SR =0xff; + 107 1 + 108 1 ///1:一般驱动能力 + 109 1 P0DR =0xff; + 110 1 P1DR =0xff; + 111 1 P2DR =0xff; + 112 1 P3DR =0xff; + C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 11:24:45 PAGE 3 + + 113 1 P4DR =0xff; + 114 1 P5DR =0xff; + 115 1 + 116 1 ///0:禁止数字信号输入。若 I/O 被当作比较器输入口、ADC 输入口、触摸按键输入 + -口或者为外部晶 振接入脚等模拟口时, + 117 1 ///进入时钟停振模式前,必须设置为 0,否则会有额外的耗电。 + 118 1 ///1:使能数字信号输入。若 I/O 被当作数字口时,必须设置为 1,否 MCU 无法读取 + -外部端口的电平。 + 119 1 P0IE =0; + 120 1 P1IE =0; + 121 1 P2IE =0; + 122 1 P3IE =0; + 123 1 P4IE =0; + 124 1 P5IE =0; + 125 1 + 126 1 BITN_1(P_SW2 ,BITN7);USBCON = 0; + 127 1 ////USBCON = 0; + 128 1 ///USBCON = 0x80; + 129 1 + 130 1 ADC_CONTR = 0; ////建议进入空闲模式和掉电模式前将 ADC 电源关闭,以降低功耗 + 131 1 RSTCFG = 0;//没有变化43ua 41ua 低压复位控制位 + 132 1 + 133 1 D_HighR_P0_ALL(); + 134 1 D_HighR_P1_ALL(); + 135 1 D_HighR_P2_ALL(); + 136 1 D_HighR_P3_ALL(); + 137 1 D_HighR_P4_ALL(); + 138 1 D_HighR_P5_ALL();/*********** + 139 1 + 140 1 P3 = 0; + 141 1 + 142 1 + 143 1 P0 = 0; + 144 1 P1 = 0; + 145 1 P2 = 0; + 146 1 P4 = 0; + 147 1 P5 = 0; + 148 1 + 149 1 + 150 1 *********/ + 151 1 + 152 1 P0 = 0xff; + 153 1 P1 = 0xff; + 154 1 P2 = 0xff; + 155 1 P4 = 0xff; + 156 1 P5 = 0xff; + 157 1 + 158 1 D_stdIO_P4(BITN1); + 159 1 ///D_OpenD_P4(BITN1); + 160 1 D_P41_ON(); + 161 1 + 162 1 + 163 1 /***** + 164 1 + 165 1 // XOSCCR =0; + 166 1 ///HIRCCR = 0; + 167 1 IRC32KCR = 0x80; //启动内部32K IRC + 168 1 while (!(IRC32KCR & 1)); //等待时钟稳定 + 169 1 CLKDIV = 0x00; //时钟不分频 + 170 1 CLKSEL = 0x03; //选择内部32K + 171 1 P_SW2 = 0x00; + 172 1 + C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 11:24:45 PAGE 4 + + 173 1 P45 + 174 1 P27 + 175 1 P26 + 176 1 P44 + 177 1 P43 + 178 1 p13 + 179 1 P23 switch2 限位开关 + 180 1 P40 SWITCH1 限位开关 + 181 1 + 182 1 P41 SW_CAL 电源分压电阻 =1 关闭 + 183 1 *******/ + 184 1 + 185 1 } + 186 + 187 /* + 188 + 189 void L2_main_version(u8 d) + 190 { + 191 + 192 printfs(D_version_main); + 193 L1_uartD_uc(d); + 194 printfs(D_BOARD_NAME); + 195 printfs(__DATE__); + 196 printfs(__TIME__); + 197 + 198 + 199 } + 200 */ + 201 + 202 + 203 void L1_main_lowp_test(void) + 204 {// + 205 1 + 206 1 while(9) + 207 1 { + 208 2 /// L2_gsensor_init(0); + 209 2 L0_main_lowp_set(); + 210 2 _nop_(); + 211 2 _nop_(); + 212 2 + 213 2 //// L0_uart_close(); + 214 2 + 215 2 PCON = 0x02; ////2222 //MCU进入掉电模式 + 216 2 ///D_LPCD_INT_CLOSE(); 对掉电唤醒后有一个中断进来没有效果 + 217 2 _nop_(); + 218 2 _nop_(); _nop_(); + 219 2 _nop_(); _nop_(); + 220 2 _nop_(); + 221 2 + 222 2 L0_uart1_open(); + 223 2 L0_uart2_open(); + 224 2 /// L2_main_version(0); + 225 2 + 226 2 /// L2_gsensor_init(1); + 227 2 } + 228 1 + 229 1 } + 230 + 231 + 232 void L3_test_lp(u8 filter)//// ON listen function + 233 { + 234 1 if(filter == pd->filter) + C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 11:24:45 PAGE 5 + + 235 1 {///filter num d1 d2 d3 ....dn + 236 2 //// FD 08 11 22 33 44 55 66 77 88 + 237 2 ///printf("\r\nDdebug:F1 R1 R2 R3 R4 ocr FD->"); + 238 2 switch (pd->ocr) + 239 2 { + 240 3 case 0x22: ///'s' + 241 3 ///FX R1 R2 R3 R4 ocr + 242 3 ///F1 m R2 R3 R4 22 + 243 3 + 244 3 // L0_moto_run(pd->R1); + 245 3 printf1("22: moto=(%X)",(int)pd->R1); + 246 3 break; + 247 3 + 248 3 default: + 249 3 printfs(" pp error\r\n "); + 250 3 + 251 3 break; + 252 3 }; + 253 2 + 254 2 printfs("333"); + 255 2 } + 256 1 } + 257 /*** + 258 + 259 case 0x23: ///'s' + 260 ///FX R1 R2 R3 R4 ocr + 261 ///F1 m R2 R3 R4 22 + 262 if(pd->R1) + 263 { + 264 D_BUZ_OPEN(); + 265 + 266 }else + 267 { + 268 D_BUZ_OFF(); + 269 + 270 } + 271 printf("22: moto=(%X)",(int)pd->R1); + 272 break; + 273 + 274 + 275 case 0x24: ///'s' + 276 ///F1 m 23 56 64 22 + 277 ts_task_move.loc_angle[0] = pd->R1; + 278 ts_task_move.loc_angle[1] = pd->R2; + 279 ts_task_move.loc_angle[2] = pd->R3; + 280 ts_task_move.loc_angle[3] = pd->R4; + 281 L3_task_s_go(ts_task_move,D_task_move_init); + 282 printf("move: %d %d %d %d )",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->R4); + 283 break; + 284 case 0x25: ///'s' + 285 ///F1 m 23 56 64 22 + 286 ts_task_move.loc_angle[0] = pd->R1; + 287 ts_task_move.loc_angle[1] = pd->R2; + 288 ts_task_move.loc_angle[2] = pd->R3; + 289 ts_task_move.loc_angle[3] = pd->R4; + 290 L3_task_s_go(ts_task_move,D_task_move_init); + 291 ts_task_move.loc_now =D_2uc_u16(pd->R1, pd->R2); + 292 printf("move: loc_now %XH %d )",(int)ts_task_move.loc_now,(int)ts_task_move.loc_now); + 293 break; + 294 + 295 case 0x26: ///'s' + 296 ///F1 m 23 56 64 22 + C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 11:24:45 PAGE 6 + + 297 ts_task_move.loc_angle[0] = pd->R1; + 298 if(pd->R1) + 299 { + 300 ts_task_move.loc_now ++; + 301 } + 302 else + 303 { + 304 ts_task_move.loc_now --; + 305 } + 306 printf("move: loc_now %XH %d ->%d )",(int)ts_task_move.loc_now,(int)ts_task_move.loc_now,(int)ts_task_ + -move.loc_want); + 307 break; + 308 + 309 + 310 + 311 + 312 ****/ + 313 + 314 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 590 ---- + CONSTANT SIZE = 71 ---- + XDATA SIZE = 3 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/asp_lowpower.obj b/out/asp_lowpower.obj new file mode 100644 index 0000000..db08975 Binary files /dev/null and b/out/asp_lowpower.obj differ diff --git a/out/asp_schain.lst b/out/asp_schain.lst new file mode 100644 index 0000000..3b9c134 --- /dev/null +++ b/out/asp_schain.lst @@ -0,0 +1,789 @@ +C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE ASP_SCHAIN +OBJECT MODULE PLACED IN ..\out\asp_schain.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\asp\asp_schain.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN + -TPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\ + -source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT + -(..\out\asp_schain.lst) TABS(2) OBJECT(..\out\asp_schain.obj) + +line level source + + 1 //////////////////////////////////////////////////////////////////////////// + 2 ///@copyright Copyright (c) 2018, 传控科技 All rights reserved. + 3 ///------------------------------------------------------------------------- + 4 /// @file bsp_drv.c + 5 /// @brief bsp @ driver config + 6 ///------------------------------------------------------------------------- + 7 /// @version 1.0 + 8 /// @author CC + 9 /// @date 20180331 + 10 /// @note cc_AS_stc02 + 11 ////////////////////////////////////////////////////////////////////////////// + 12 + 13 #include "asp_schain.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 14 ///#include "common.h" + 15 #include "msp_uart1.h" + 16 #include "bsp_cs1232.h" + 17 #include "debug_drv.h" + 18 + 19 #define D_sensor_up_down 1/// 称重传感器上下镜像选择 + 20 + 21 //============================================= + 22 ///打开adc输出监控,0kg的试试每一路的输出就是 0kg_out1_adc FF77 FFB3 00A4 FFEA + 23 #define D_ch1_0kg_out1_adc (vS16)0xFF77 + 24 #define D_ch2_0kg_out1_adc (vS16)0xFFB3 + 25 #define D_ch3_0kg_out1_adc (vS16)0x00A4 + 26 #define D_ch4_0kg_out1_adc (vS16)0xFFEA + 27 /////需要通过测试配置 如果不在意符号位 可以优化 diao + 28 #define D_ch1_out1_offset (vS16)(D_ch1_wantline-D_ch1_0kg_out1_adc) + 29 #define D_ch2_out1_offset (vS16)(D_ch2_wantline-D_ch2_0kg_out1_adc) + 30 #define D_ch3_out1_offset (vS16)(D_ch3_wantline-D_ch3_0kg_out1_adc) + 31 #define D_ch4_out1_offset (vS16)(D_ch4_wantline-D_ch4_0kg_out1_adc) + 32 + 33 #define D_ch1_wantline (vS16)0x18da + 34 #define D_ch2_wantline (vS16)0x18da + 35 #define D_ch3_wantline (vS16)0x18da + 36 #define D_ch4_wantline (vS16)0x18da + 37 + 38 ///cc 2023/04/06--7:39:40 每个传感器放置10kg + 39 ///应变片传感器10kg的adc值,选择这个是因为10kg容易获得 并且有一定的重量差 + 40 ///这个值需要实验获得 + 41 #define D_ch1_10kg_out1_adc (vS16)0x0584 + 42 #define D_ch2_10kg_out1_adc (vS16)0x05DE + 43 #define D_ch3_10kg_out1_adc (vS16)0x0731 + 44 #define D_ch4_10kg_out1_adc (vS16)0x066C + 45 + 46 #define D_Rsensor_per_10kg ((vS16)10) + 47 #define D_adc_per_kg ((D_ch1_10kg_out1_adc-D_ch1_0kg_out1_adc)/D_Rsensor_per_10kg) + 48 #define D_adc_zeroout (10*D_adc_per_kg) ///零点都拉到10kg + 49 + 50 TS_adc_SPara_ TS_adc_SPara[D_ADC_CHANNEL_NUM]= + 51 { + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 2 + + 52 + 53 'A',//0 1 u8 rev1; + 54 0,//2 3 u8 ch; + 55 D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力 + -时想要输出的adc的值 + 56 D_ch1_out1_offset,//3 4 vU16 offset; + 57 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 58 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + 59 + 60 'A',//0 1 u8 rev1; + 61 1,//2 3 u8 ch; + 62 D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力 + -时想要输出的adc的值 + 63 D_ch2_out1_offset,//3 4 vU16 offset; + 64 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 65 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + 66 + 67 'A',//0 1 u8 rev1; + 68 2,//2 3 u8 ch; + 69 D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力 + -时想要输出的adc的值 + 70 D_ch3_out1_offset,//3 4 vU16 offset; + 71 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 72 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + 73 + 74 + 75 'A',//0 1 u8 rev1; + 76 3,//2 3 u8 ch; + 77 D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力 + -时想要输出的adc的值 + 78 D_ch4_out1_offset,//3 4 vU16 offset; + 79 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 80 5//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + 81 + 82 + 83 }; + 84 + 85 + 86 TS_task_adc_sample ts_adc_samples[D_ADC_CHANNEL_NUM]; + 87 + 88 //ch是0123,代表4通道 + 89 void L2_task_adc_init(U8 ch) + 90 { + 91 1 //通道采集任务初始化 + 92 1 L1_task_reg_clear(&ts_adc_samples[ch].task); + 93 1 L3_task_s_go(ts_adc_samples[ch],D_task_init); + 94 1 + 95 1 + 96 1 ts_adc_samples[ch].pSPara = &TS_adc_SPara[ch]; + 97 1 ts_adc_samples[ch].firstRun = 1; + 98 1 + 99 1 + 100 1 } + 101 + 102 //ADC Channel 采样任务 + 103 #define D_task_ADC_CHx_SAMPLE_JITTER_START_SAMPLE 0x53 + 104 #define D_task_ADC_CHx_JITTER 0x63 + 105 #define D_task_ADC_CHx_PIANYI 0x93 + 106 #define D_task_ADC_CHx_JITTER2 0x83 + 107 #define D_task_ADC_CHx_despiking_shift 0x94 + 108 #define D_task_ADC_CHx_SAMPLE_WAIT_LOW 0x73 + 109 #define D_task_ADC_CHx_SAMPLE_READ 0x54 + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 3 + + 110 #define D_task_ADC_CHx_SAMPLE_OUT 0x55 + 111 #define D_task_ADC_CHx_SHIFTFILTER 0x56 + 112 #define D_task_ADC_CHx_SHIFTFILTER2 0x57 + 113 #define D_ADC_JITTER_zero 22///还包含建立时间 至少9个 + 114 #define D_ADC_JITTER_FINISH 12///还包含建立时间 至少9个 + 115 + 116 /******** + 117 80hZ + 118 1000ms/80= 12.5ms/point + 119 ushex send = 4Bytes+blank = 5Byte; + 120 115200 0.1ms/Byte + 121 所以发送5Bytes 消耗0.5ms 发送四列 消耗2ms 系统足够响应 + 122 + 123 *******/ + 124 + 125 + 126 + 127 S16 L3_out_tran(vU32 rdata) + 128 { + 129 1 S16 t16; + 130 1 /// 24bits 3Bytes + 131 1 rdata >>= 8; + 132 1 t16 = rdata; + 133 1 + 134 1 #if (D_sensor_up_down) + 135 1 t16 *= -1; + 136 1 #else + ///t16 *= -1; + #endif + 139 1 return t16; + 140 1 } + 141 + 142 vU16 L3_adc_out_offset(vU16 offset,vU16 t16) + 143 { + 144 1 vU16 out; + 145 1 + 146 1 /// L0_uart0_ushex(t16); L0_uart0_uc(' '); + 147 1 if(t16 & 0x8000) //最高位为1,<0则 + 148 1 { + 149 2 t16 = 0xffFF - t16;///转变为正数 + 150 2 ///*d = D_ADC_OFFSET - t16; + 151 2 out = offset - t16; + 152 2 // L0_uart0_uc('$'); L0_uart0_ushex(ts_adc_samples[ch].offset);L0_uart0_uc(' '); + 153 2 }else + 154 1 { + 155 2 out = t16 + offset; + 156 2 } + 157 1 // L0_uart0_ushex(out);L0_uart0_uc(' '); L0_uart0_uc('R');L0_uart0_0d0a(); + 158 1 return out; + 159 1 } + 160 + 161 + 162 /* + 163 + 164 adcval adc采样值 + 165 ^ + 166 | + 167 | --.-------------.-------------.------------.---------wantline + 168 | . . . . + 169 | . . offset3 . + 170 | . . . . + 171 | . . .ch3.adc . + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 4 + + 172 | offset1 offset2 . + 173 | . . offset4 + 174 ---0---.-------------.--------------------------.------------ + 175 | . .ch2.adc . + 176 | . . + 177 | ch1.adc . + 178 | . + 179 | ch3.adc. + 180 + 181 .的数量或高度就是offset + 182 adc有正数和负数 + 183 + 184 + 185 */ + 186 vU16 L3_adc_get_offset(vU16 wantline,vU16 adcv) + 187 { + 188 1 vU16 out; + 189 1 + 190 1 /// L0_uart0_ushex(t16); L0_uart0_uc(' '); + 191 1 if(adcv & 0x8000) //最高位为1,<0则 + 192 1 { + 193 2 out = 0xffFF - adcv;///转变为正数 + 194 2 out += wantline; + 195 2 }else + 196 1 { + 197 2 out = wantline - adcv; + 198 2 } + 199 1 return out; + 200 1 } + 201 + 202 /* + 203 ///cc 2023/04/06--6:34:10 + 204 针对西安方片传感器 + 205 adc + 206 hex dec kg adc/kg + 207 68F 1679 10 168 + 208 + 209 4196 16790 100 + 210 -------------void L2_task_adc_sample(TS_TASK_ADC_SAMPLE *s)---------- + 211 + 212 s->out1_adc = L3_out_tran(s->out0); + 213 ############ + 214 + 215 s->out2_offset = L3_out_offset(s->ch,s->out1_adc); + 216 ############ + 217 + 218 Lc_despiking_shift3_U16(s->outm);////采样后进行削峰 + 219 s->out3_peak = s->outm[1]; + 220 ############ + 221 + 222 s->ts_SAa.out4_shift = (vU16)s->ts_SAa.average; from s->out3_peak + 223 + 224 s->ts_SAb.out4_shift = (vU16)s->ts_SAb.average;from s->out3_peak + 225 + 226 ----------void L3_task_weight_handler(TS_TASK_weight_ *s)----------------- + 227 + 228 + 229 ts_adc_samples[3].out5 = ts_adc_samples[3].ts_SAb.out4_shift; + 230 + 231 ############ + 232 + 233 ////四个传感器相加后平均 + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 5 + + 234 tst_weight.sum32 = ts_adc_samples[0].out5; + 235 tst_weight.sum32 += ts_adc_samples[1].out5; + 236 tst_weight.sum32 += ts_adc_samples[2].out5; + 237 tst_weight.sum32 += ts_adc_samples[3].out5; + 238 + 239 tst_weight.out6 = tst_weight.sum32 >>2; + 240 ############ + 241 tst_weight.adc32 = tst_weight.out6; + 242 L3_task_weight_cal(); + 243 + 244 上电的时候有几种状态 + 245 1 有人 + 246 2 有物体 + 247 3 无人 + 248 出厂必备的操作, + 249 1,没有重物清零,数据写入程序, + 250 出厂把adc的值都偏移到 10kg/200kg 如果时基本时1/20偏移 + 251 也就是出厂时传感器的值基本一条线 + 252 2,以后上电时 或者重新启动时 低于一定重量就清零 + 253 3,手工可以清零 + 254 + 255 + 256 --------------------------- + 257 + 258 四个传感器 在没有重量 出厂的时候需要拉成偏移 + 259 简单的方式 四个传感器累加的模式 + 260 + 261 */ + 262 + 263 + 264 void L2_task_adc_sample(TS_task_adc_sample *s) + 265 { + 266 1 TTSS_Task_init(): + 267 2 ////cc 初始化尽量放到这里,不要放到main ——init中,减少系统启动的时间 + 268 2 s->jitter_start = 0; s->ok = 0; + 269 2 ////printf("\r\nADC_SAMPLE\r\n"); + 270 2 /* + 271 2 printf5("\r\nADC_SAMPLE init ch(%d) wantline:%d(%4X) offset %d(%4X)", (int)s->pSPara->ch, + 272 2 ts_adc_samples[s->pSPara->ch].pSPara->wantline,ts_adc_samples[s->pSPara->ch].pSPara->wantline, + 273 2 ts_adc_samples[s->pSPara->ch].pSPara->offset,ts_adc_samples[s->pSPara->ch].pSPara->offset); + 274 2 */ + 275 2 + 276 2 printf1("\r\nADC_SAMPLE init ch(%d) ", (int)s->pSPara->ch); + 277 2 L1_uartD_waitFree() ; + 278 2 + 279 2 s->firstRun = 1; + 280 2 + 281 2 /// L2_task_go(D_task_ADC_CHx_SAMPLE_READ); + 282 2 L2_task_go_Tdelay(D_task_ADC_CHx_SAMPLE_READ,D_Tdelay_Msec(1500)); //延时15ms + 283 2 + 284 2 TTSS_Task_step(D_task_ADC_CHx_SAMPLE_READ): + 285 2 if(0 == L0_adc_DOUT_AT(s->pSPara->ch)) + 286 2 {////L0_uart0_uc('X');L0_uart0_uc(0x30+s->ch); + 287 3 //// L0_ADS1231_readCH2(s->ch,&(s->out1)); //// + 288 3 L0_ADS1231_readCH2(s->pSPara->ch,&(s->out0)); + 289 3 L2_task_go(D_task_ADC_CHx_PIANYI); + 290 3 } + 291 2 TTSS_Task_step(D_task_ADC_CHx_PIANYI): + 292 2 s->out1_adc = L3_out_tran(s->out0);///////cc 2023/04/06--6:33:46 最原始的输出 + 293 2 s->out2_offset = L3_adc_out_offset(s->pSPara->offset,s->out1_adc); + 294 2 L2_task_go(D_task_ADC_CHx_despiking_shift); + 295 2 TTSS_Task_step(D_task_ADC_CHx_despiking_shift): + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 6 + + 296 2 s->outm[0] = s->outm[1]; + 297 2 s->outm[1] = s->outm[2]; + 298 2 s->outm[2] = s->out2_offset; + 299 2 + 300 2 Lc_despiking_shift3_U16(s->outm);////采样后进行削峰 + 301 2 s->out3_Peak = s->outm[1]; + 302 2 + 303 2 /// s->pSPara->offset = s->pSPara->wantline - s->out3_Peak; + 304 2 + 305 2 if(s->firstRun)/// + 306 2 {////第一次上电 + 307 3 L2_task_go(D_task_ADC_CHx_JITTER2); + 308 3 }else + 309 2 { + 310 3 L2_task_go(D_task_ADC_CHx_SHIFTFILTER); + 311 3 } + 312 2 TTSS_Task_step(D_task_ADC_CHx_JITTER2): + 313 2 + 314 2 + 315 2 if(s->jitter_start < D_ADC_JITTER_FINISH) + 316 2 { + 317 3 ///printfs("\r\n D_ADC_JITTER_zero---"); + 318 3 L1_uartD_uc('9'); + 319 3 s->jitter_start ++; + 320 3 L2_task_go(D_task_ADC_CHx_SAMPLE_READ); + 321 3 }else + 322 2 { + 323 3 /// 上电的时候如果没有重量可以这样 ,如果有呢?? + 324 3 ///L3_out_zero(s->ch);///算出当前的偏移量 更新offset + 325 3 + 326 3 s->pSPara->offset = L3_adc_get_offset(s->pSPara->wantline,s->out1_adc);///必须out1_adc 因为偏移 + -针对 out1_adc的 + 327 3 /// s->pSPara->offset = s->pSPara->wantline - s->out3_Peak; + 328 3 + 329 3 printfs("\r\n D_ADC_JITTER_zero---"); + 330 3 ///printf3("\r\n ch(%d) out3_Peak %5d %5X ",(int)s->pSPara->ch,s->out3_Peak,s->out3_Peak ); + 331 3 + 332 3 printf4("\r\n ch(%d) adc=%5d ->offset %5d wantline %5d ",(int)s->pSPara->ch,s->out1_adc,s->pSPara->offs + -et,s->pSPara->wantline); + 333 3 printf4("\r\n ch(%d) adc=%5X ->offset %5X wantline %5X ",(int)s->pSPara->ch,s->out1_adc,s->pSPara->offs + -et,s->pSPara->wantline); + 334 3 + 335 3 s->ts_SAa.average = (vU32)s->out3_Peak;/// shiftaverage_a路初始化 + 336 3 s->ts_SAa.sum = s->ts_SAa.average << s->pSPara->ashift; + 337 3 /** + 338 3 s->ts_SAb.average = (vU32)s->out3_Peak;/// shiftaverage_b路初始化 + 339 3 s->ts_SAb.sum = s->ts_SAb.average << s->pSPara->bshift; + 340 3 */ + 341 3 + 342 3 s->firstRun = 0; + 343 3 ///刚开始的抖动,先去掉几个最开始的数据 + 344 3 L2_task_go(D_task_ADC_CHx_SHIFTFILTER); + 345 3 } + 346 2 TTSS_Task_step(D_task_ADC_CHx_SHIFTFILTER): + 347 2 //L0_uart0_uc('B'); + 348 2 s->ts_SAa.sum -= s->ts_SAa.average; + 349 2 s->ts_SAa.sum += (vU32)s->out3_Peak; + 350 2 s->ts_SAa.average = s->ts_SAa.sum >> s->pSPara->ashift; + 351 2 // s->ts_SAa.new = s->ts_SAa.average; + 352 2 s->ts_SAa.out4_shift = (vU16)s->ts_SAa.average; + 353 2 /// L0_uart0_uc('s'); + 354 2 + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 7 + + 355 2 L2_task_go(D_task_ADC_CHx_SHIFTFILTER2); + 356 2 TTSS_Task_step(D_task_ADC_CHx_SHIFTFILTER2): + 357 2 + 358 2 + 359 2 s->ok = 1; + 360 2 L2_task_go(D_task_ADC_CHx_SAMPLE_READ); + 361 2 + 362 2 /// L2_task_go(D_task_ADC_CHx_SAMPLE_OUT); + 363 2 TTSS_Task_step(D_task_ADC_CHx_SAMPLE_OUT): + 364 2 + 365 2 /*** + 366 2 L0_uart0_ulhex(s->out0); L0_uart0_uc(0x09); + 367 2 L0_uart0_ushex(s->out1); L0_uart0_uc(0x09); + 368 2 L0_uart0_ushex(s->out2); L0_uart0_uc(0x09); + 369 2 L0_uart0_ushex(s->ts_SAa.out4); L0_uart0_uc(0x09); + 370 2 L0_uart0_ushex(s->ts_SAb.out4); + 371 2 L0_uart0_0d0a(); + 372 2 + 373 2 + 374 2 **/ + 375 2 + 376 2 //// + 377 2 //// L0_uart0_uc('0' + s->ch);L0_uart0_uc('A');// + 378 2 TTSS_Task_end(); + 379 1 } + 380 + 381 #if 0 + void L3_out_zero(u8 ch) + { + vS16 t,m; + + + t = ts_adc_samples[ch].out1_adc; + m = ts_adc_samples[ch].SPara.wantline; + m -= t; + ts_adc_samples[ch].SPara.offset = (vU16)m; + /// L0_waitFree_uartN(0);///混搭使用printf的时候必须加上 + /// printf("\r\nzeroout = %4x offset= 0x%4x\r\n", ts_adc_samples[ch].zeroout,ts_adc_samples[ch].offset); + + /// D_ADC_OFFSET(ch) = ts_adc_samples[ch].zeroout - ts_adc_samples[ch].out1; + } + + + vU16 L3_out_offset222(u8 ch,vU16 t16) + { + vU16 out; + + /// L0_uart0_ushex(t16); L0_uart0_uc(' '); + if(t16 & 0x8000) //最高位为1,<0则 + { + t16 = 0xffFF - t16;///转变为正数 + ///*d = D_ADC_OFFSET - t16; + out = ts_adc_samples[ch].SPara.offset - t16; + // L0_uart0_uc('$'); L0_uart0_ushex(ts_adc_samples[ch].offset);L0_uart0_uc(' '); + }else + { + out = t16 + ts_adc_samples[ch].SPara.offset; + } + // L0_uart0_ushex(out);L0_uart0_uc(' '); L0_uart0_uc('R');L0_uart0_0d0a(); + return out; + } + + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 8 + + vU16 L3_out_tran2(vU32 rdata) + { + vU16 t16; + //// L0_ADS1231_readCH2(0,&rdata); + // L0_uart0_uc('0'+ch); L0_uart0_uc(0x09); + // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); + if (rdata > 0x007fFFff) + { + rdata >>= D_sensor_zoom; ///fixme:此处正负差和移位不一致需要谨慎 + rdata |= D_sensor_zoom_FF; /// 1111 1100 + }else + { + rdata >>= D_sensor_zoom; + } + + // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); + t16 = rdata; + // L0_uart0_ushex(t16); L0_uart0_uc(0x09); + ///L0_uart0_0d0a(); + return t16; + } + + void L3_task_show_init(void) + { + //显示任务初始化 + L1_task_init(&ts_adc_blur_show.task); + L3_task_s_go(ts_adc_blur_show,D_task_init); + ts_adc_blur_show.rough_weight = 0; + + } + + //中值滤波任务 + #define D_task_ADC_CHx_FILTER_MID_GET 0x50 + #define D_task_ADC_CHx_FILTER_MID_COUNT 0x51 + #define D_task_ADC_CHx_FILTER_MID_OUT 0x52 + void L3_task_adc_filter_mid(S_TASK_ADC_BLUR_MID *s) + { + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_FILTER_MID_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_GET) + if(ts_adc_channel_samples[s->ch].n >= s->max) + { + U8 i = 0; + for(i=0;imax;i++) + { + s->in[i] = ts_adc_channel_samples[s->ch].out1[i]; + } + ts_adc_channel_samples[s->ch].n = 0; + L2_task_go(D_task_ADC_CHx_FILTER_MID_COUNT); + } + + TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_COUNT) + s->midval = Lc_S32_media(s->in, s->max); + L2_task_go(D_task_ADC_CHx_FILTER_MID_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_OUT) + s->out[s->n] = s->midval; + //R.adval[s->ch] = s->out[s->n]; + s->n++; + if(s->n >= MAX_OUT_NUM) + { + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 9 + + s->n = 0; + } + L2_task_go(D_task_ADC_CHx_FILTER_MID_GET); + + TTSS_Task_end(); + + + } + + //均值滤波任务 + #define D_task_ADC_CHx_FILTER_AVG_GET 0x50 + #define D_task_ADC_CHx_FILTER_AVG_COUNT 0x51 + #define D_task_ADC_CHx_FILTER_AVG_OUT 0x52 + void L3_task_adc_filter_avg(S_TASK_ADC_BLUR_AVG *s) + { + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_FILTER_AVG_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_GET) + if(ts_adc_channel_samples[s->ch].n >= s->max) + { + U8 i = 0; + ts_adc_channel_samples[s->ch].n = 0; + for(i=0;imax;i++) + { + s->in[i] = ts_adc_channel_samples[s->ch].out1[i]; + } + L2_task_go(D_task_ADC_CHx_FILTER_AVG_COUNT); + } + + TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_COUNT) + s->avgval = Lc_vS32_avg(s->in,s->max); + L2_task_go(D_task_ADC_CHx_FILTER_AVG_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_OUT) + s->out[s->n] = s->avgval; + //R.adval[s->ch] = s->out[s->n]; + s->n++; + if(s->n >= MAX_OUT_NUM) + { + s->n = 0; + } + L2_task_go(D_task_ADC_CHx_FILTER_AVG_GET); + + TTSS_Task_end(); + + + } + + + //移位滤波任务 + #define D_task_ADC_CHx_FILTER_SHIFT_GET 0x50 + #define D_task_ADC_CHx_FILTER_SHIFT_COUNT 0x51 + #define D_task_ADC_CHx_FILTER_SHIFT_OUT 0x52 + void L3_task_adc_ShiftFilter(TS_TASK_ADC_SHIFTFILTER *s) + { + TTSS_Task_init() + s->average = ts_adc_samples[s->ch].out2;/// + s->sum = s->average << s->shift; + L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_GET) + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 10 + + s->sum += + + + TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_COUNT) + s->sum[0] -= s->shiftval[0]; + s->sum[0] += s->in; + s->shiftval[0] = s->sum[0] >> s->shiftreg[0]; + s->sum[1] -= s->shiftval[1]; + s->sum[1] += s->in; + s->shiftval[1] = s->sum[1] >> s->shiftreg[1]; + s->sum[2] -= s->shiftval[2]; + s->sum[2] += s->in; + s->shiftval[2] = s->sum[2] >> s->shiftreg[2]; + L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_OUT) + s->out[0][s->n] = s->shiftval[0]; + s->out[1][s->n] = s->shiftval[1]; + s->out[2][s->n] = s->shiftval[2]; + + + //R.adval[s->ch] = s->out[0][s->n] = s->shiftval[0]; + s->n++; + if(s->n >= MAX_OUT_NUM) + { + s->n = 0; + } + L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); + + TTSS_Task_end(); + + } + + + //输出判定任务 + #define D_task_ADC_CHx_FILTER_OUT_GET 0x50 + #define D_task_ADC_CHx_FILTER_OUT_COUNT 0x51 + #define D_task_ADC_CHx_FILTER_OUT_CHANGE 0x52 + #define D_task_ADC_CHx_FILTER_OUT_OUT 0x53 + void L3_task_adc_filter_out(S_TASK_ADC_BLUR_OUT *s) + { + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_FILTER_OUT_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_GET) + if(s->h != ts_adc_blur_shift[s->ch].n) + { + s->h = ts_adc_blur_shift[s->ch].n; + s->in[0] = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n, 1)]; + s->in[1] = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n, 2)]; + //获取输出曲线val + s->newout = ts_adc_blur_shift[s->ch].out[s->oldnum][count_n(ts_adc_blur_shift[s->ch].n, 1)]; + L2_task_go(D_task_ADC_CHx_FILTER_OUT_COUNT); + } + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_COUNT) //根据阀值选择输出的曲线 + //判断选择新曲线 + if(Lc_abs(s->in[0] , s->in[1]) >= s->threshold[0])//2KG + { + s->newnum = 0; + } + else if(Lc_abs(s->in[0] , s->in[1]) >= s->threshold[1]) //0.5KG + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 11 + + { + s->newnum = 1; + } + else + { + s->newnum = 2; + } + //L2_task_go(D_task_ADC_CHx_FILTER_OUT_OUT); + L2_task_go(D_task_ADC_CHx_FILTER_OUT_CHANGE); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_CHANGE) + if(s->newnum != s->oldnum)//切换移位滤波时调整其他滤波的SUM + { + s->oldnum = s->newnum; //不能只调整新值,所有曲线都要一起调整 + //ts_adc_blur_shift[s->ch].sum[1] = (ts_adc_blur_avg[s->ch].out[ts_adc_blur_avg[s->ch].n] * R.adc_blur_ + -avg); + ts_adc_blur_shift[s->ch].sum[0] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[0]; + ts_adc_blur_shift[s->ch].shiftval[0] = s->newout; + ts_adc_blur_shift[s->ch].sum[1] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[1]; + ts_adc_blur_shift[s->ch].shiftval[1] = s->newout; + ts_adc_blur_shift[s->ch].sum[2] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[2]; + ts_adc_blur_shift[s->ch].shiftval[2] = s->newout; + } + L2_task_go(D_task_ADC_CHx_FILTER_OUT_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_OUT) + R.adval[s->ch] = s->newout; + //R.adval[s->ch] = ts_adc_channel_samples[s->ch].adcval; + L2_task_go(D_task_ADC_CHx_FILTER_OUT_GET); + + TTSS_Task_end(); + + } + + + //显示任务 + #define D_task_ADC_CHx_SHOW 0x50 + void L3_task_adc_filter_show(S_TASK_ADC_BLUR_SHOW *s) + { + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_SHOW); + + TTSS_Task_step(D_task_ADC_CHx_SHOW) + R.ch_weight[0] = D_COUNT_WEIGHT(R.adval[0]); + R.ch_weight[1] = D_COUNT_WEIGHT(R.adval[1]); + R.ch_weight[2] = D_COUNT_WEIGHT(R.adval[2]); + R.ch_weight[3] = D_COUNT_WEIGHT(R.adval[3]); + s->rough_weight = R.ch_weight[0] + R.ch_weight[1] + R.ch_weight[2] + R.ch_weight[3]; //毛重 + #if 0 + L0_uart0_ulhex(s->rough_weight); + L0_uart0_uc(' '); + #endif + if( ABS(R.rough_weight,s->rough_weight) >= 50) //变化超过0.05KG + { + R.rough_weight = s->rough_weight; + R.total_weight = (R.rough_weight > R.total_zweight) ? (R.rough_weight - R.total_zweight) : (0);//净重 + } + L2_task_go_Tdelay(D_task_ADC_CHx_SHOW,D_Tdelay_Msec(15)); //延时15ms + + TTSS_Task_end(); + } + + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 12 + + + + /******* + ts_adc_channel_samples[ch].status = (R.p.adc_ch_status >> ch) & 0x1; + ts_adc_channel_samples[ch].pool = 0; + ts_adc_channel_samples[ch].adcval = 0; + ts_adc_channel_samples[ch].n = 0; + ts_adc_channel_samples[ch].ch = D_ADCCH_1 + ch; + + //通道中值滤波任务初始化 + L1_task_init(&ts_adc_blur_mid[ch].task); + L3_task_s_go(ts_adc_blur_mid[ch],D_task_init); + ts_adc_blur_mid[ch].n = 0; + ts_adc_blur_mid[ch].max = R.p.adc_blur_mid; + ts_adc_blur_mid[ch].ch = D_ADCCH_1 + ch; + + //通道均值滤波任务初始化 + L1_task_init(&ts_adc_blur_avg[ch].task); + L3_task_s_go(ts_adc_blur_avg[ch],D_task_init); + ts_adc_blur_avg[ch].max = R.p.adc_blur_avg; + ts_adc_blur_avg[ch].avgval = 0; + ts_adc_blur_avg[ch].n = 0; + ts_adc_blur_avg[ch].ch = D_ADCCH_1 + ch; + + //通道移位滤波任务初始化 + L1_task_init(&ts_adc_blur_shift[ch].task); + L3_task_s_go(ts_adc_blur_shift[ch],D_task_init); + ts_adc_blur_shift[ch].n = 0; + ts_adc_blur_shift[ch].h = 0; + ts_adc_blur_shift[ch].shiftreg[0] = R.p.adc_blur_shift[0]; + ts_adc_blur_shift[ch].shiftreg[1] = R.p.adc_blur_shift[1]; + ts_adc_blur_shift[ch].shiftreg[2] = R.p.adc_blur_shift[2]; + ts_adc_blur_shift[ch].sum[0] = 0; + ts_adc_blur_shift[ch].sum[1] = 0; + ts_adc_blur_shift[ch].sum[2] = 0; + ts_adc_blur_shift[ch].shiftval[0] = 0; + ts_adc_blur_shift[ch].shiftval[1] = 0; + ts_adc_blur_shift[ch].shiftval[2] = 0; + ts_adc_blur_shift[ch].ch = D_ADCCH_1 + ch; + + //输出判定任务初始化 + L1_task_init(&ts_adc_blur_out[ch].task); + L3_task_s_go(ts_adc_blur_out[ch],D_task_init); + ts_adc_blur_out[ch].h= 0; + ts_adc_blur_out[ch].threshold[0] = D_blur_threshold_2_1(R.p.adc_blur_threshold[0]); //2KG + ts_adc_blur_out[ch].threshold[1] = D_blur_threshold_2_1(R.p.adc_blur_threshold[1]); //0.5KG + ts_adc_blur_out[ch].newnum = 0; + ts_adc_blur_out[ch].oldnum = 0; + ts_adc_blur_out[ch].oldout = 0; + ts_adc_blur_out[ch].newout = 0; + ts_adc_blur_out[ch].n = 0; + ts_adc_blur_out[ch].ch = D_ADCCH_1 + ch; + *****/ + + #if 0 + //通道切换任务初始化 + //L1_task_init(&ts_adc_channel_switch.task); + L3_task_s_go(ts_adc_channel_switch,D_task_init); + #endif + + #endif + 725 + C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 11:24:45 PAGE 13 + + 726 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 2151 ---- + CONSTANT SIZE = 142 ---- + XDATA SIZE = 238 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/asp_schain.obj b/out/asp_schain.obj new file mode 100644 index 0000000..2599d58 Binary files /dev/null and b/out/asp_schain.obj differ diff --git a/out/bsp_config.lst b/out/bsp_config.lst new file mode 100644 index 0000000..518c6c3 --- /dev/null +++ b/out/bsp_config.lst @@ -0,0 +1,52 @@ +C51 COMPILER V9.54 BSP_CONFIG 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE BSP_CONFIG +OBJECT MODULE PLACED IN ..\out\bsp_config.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\bsp\TTSSbsp\bsp_config.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE OR + -DER NOINTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source + -\tpc;..\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEB + -UG PRINT(..\out\bsp_config.lst) TABS(2) OBJECT(..\out\bsp_config.obj) + +line level source + + 1 #include "bsp_config.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 ///#include "../tpc/tpc_modbus.h" + 3 ///#include "app_config.h" + 4 #include "msp_uart1.h" + 5 + 6 ///#include "bsp_AiP650E.h" + 7 //////////////////////////////////////////////////////////////////////////// + 8 ///@copyright Copyright (c) 2023 CCSENS All rights reserved. + 9 ///------------------------------------------------------------------------- + 10 /// @file bsp_func.c + 11 /// @brief bsp @ fuctiong ; io复用选择等,和cpu型号息息相关 + 12 ///------------------------------------------------------------------------- + 13 /// @version 1.0 + 14 /// @author CC + 15 /// @date 20180308 + 16 /// @note cc_AS_stc02 + 17 + 18 ////////////////////////////////////////////////////////////////////////////// + 19 + 20 + 21 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = ---- ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/bsp_config.obj b/out/bsp_config.obj new file mode 100644 index 0000000..4c43023 Binary files /dev/null and b/out/bsp_config.obj differ diff --git a/out/bsp_cs1232.lst b/out/bsp_cs1232.lst new file mode 100644 index 0000000..7532c5c --- /dev/null +++ b/out/bsp_cs1232.lst @@ -0,0 +1,369 @@ +C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE BSP_CS1232 +OBJECT MODULE PLACED IN ..\out\bsp_cs1232.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\bsp\bsp_cs1232.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN + -TPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\ + -source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT + -(..\out\bsp_cs1232.lst) TABS(2) OBJECT(..\out\bsp_cs1232.obj) + +line level source + + 1 //////////////////////////////////////////////////////////////////////////// + 2 ///@copyright Copyright (c) 2020, 传控科技 All rights reserved. + 3 ///------------------------------------------------------------------------- + 4 /// @file cs1232.h + 5 /// @brief hard cs1232 include + 6 /// @info FILE FOR HARDWARE cs1232 + 7 ///------------------------------------------------------------------------- + 8 + 9 + 10 ////////////////////////////////////////////////////////////////////////////// + 11 /// @version 1.0 + 12 /// @author CC + 13 /// @date 20200530 + 14 /// @note + 15 ////////////////////////////////////////////////////////////////////////////// + 16 + 17 #include "bsp_cs1232.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 18 ///TS_cs1232_ ts_adc;///TSS_FLOW_ tss_ads; + 19 + 20 void L0_ADS1213_mode(vtype mode) + 21 { + 22 1 switch(mode) + 23 1 { + 24 2 case D_ADS1213_POWERDOWN: + 25 2 D_ADC_SCLK1_CLOSE(); + 26 2 D_ADC_DOUT1_CLOSE(); + 27 2 D_ADC_SCLK2_CLOSE(); + 28 2 D_ADC_DOUT2_CLOSE(); + 29 2 D_ADC_SCLK3_CLOSE(); + 30 2 D_ADC_DOUT3_CLOSE(); + 31 2 D_ADC_SCLK4_CLOSE(); + 32 2 D_ADC_DOUT4_CLOSE(); + 33 2 D_ADC_POWERDOWN(); + 34 2 // L0_uart0_uc('d'); + 35 2 break; + 36 2 case D_ADS1213_GAIN_128: + 37 2 D_ADC_GAIN0_128(); + 38 2 /// L0_uart0_uc('8'); + 39 2 break; + 40 2 case D_ADS1213_GAIN_64: + 41 2 D_ADC_GAIN0_64(); + 42 2 // L0_uart0_uc('6'); + 43 2 break; + 44 2 default: + 45 2 D_ADC_GAIN0_64(); + 46 2 // L0_uart0_uc('q'); + 47 2 break; + 48 2 }; + 49 1 } + 50 + 51 void L0_ADS1213_INIT(vtype mode) + C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 PAGE 2 + + 52 { + 53 1 D_ADC_GAIN0_INIT(); + 54 1 D_ADC_SCLK1_INIT(); + 55 1 D_ADC_DOUT1_INIT(); + 56 1 D_ADC_SCLK2_INIT(); + 57 1 D_ADC_DOUT2_INIT(); + 58 1 D_ADC_SCLK3_INIT(); + 59 1 D_ADC_DOUT3_INIT(); + 60 1 D_ADC_SCLK4_INIT(); + 61 1 D_ADC_DOUT4_INIT(); + 62 1 D_ADC_PDWN_INIT(); + 63 1 D_ADC_PD_WACKUP(); + 64 1 L0_ADS1213_mode(mode); + 65 1 } + 66 + 67 + 68 + 69 void L0_adc_SCLK(vtype ch,vtype onf) + 70 { + 71 1 switch (ch) + 72 1 { + 73 2 case D_ADCCH_1: + 74 2 if(onf){D_ADC_SCLK1_ON();}else{D_ADC_SCLK1_OFF();} + 75 2 break; + 76 2 case D_ADCCH_2: + 77 2 if(onf){D_ADC_SCLK2_ON();}else{D_ADC_SCLK2_OFF();} + 78 2 break; + 79 2 case D_ADCCH_3: + 80 2 if(onf){D_ADC_SCLK3_ON();}else{D_ADC_SCLK3_OFF();} + 81 2 break; + 82 2 case D_ADCCH_4: + 83 2 if(onf){D_ADC_SCLK4_ON();}else{D_ADC_SCLK4_OFF();} + 84 2 break; + 85 2 default: + 86 2 break; + 87 2 } + 88 1 } + 89 + 90 vtype L0_adc_DOUT_AT(vtype ch) + 91 { + 92 1 vtype r = 9; + 93 1 + 94 1 switch (ch) + 95 1 { + 96 2 case D_ADCCH_1: + 97 2 r = D_ADC_DOUT1_AT(); + 98 2 break; + 99 2 case D_ADCCH_2: + 100 2 r = D_ADC_DOUT2_AT(); + 101 2 break; + 102 2 case D_ADCCH_3: + 103 2 r = D_ADC_DOUT3_AT(); + 104 2 break; + 105 2 case D_ADCCH_4: + 106 2 r = D_ADC_DOUT4_AT(); + 107 2 break; + 108 2 default: + 109 2 break; + 110 2 } + 111 1 return r; + 112 1 } + 113 + C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 PAGE 3 + + 114 + 115 + 116 void L0_ADS1231_readCH2(vtype ch,vU32 *d) + 117 { + 118 1 u8 i = 0; + 119 1 vU32 rdata; + 120 1 /// vU16 t16; + 121 1 rdata = 0; + 122 1 + 123 1 for(i = 0; i < 24; i++) + 124 1 { + 125 2 L0_adc_SCLK(ch,1);/// D_ADC_SCLK1_ON(); + 126 2 rdata <<= 1; + 127 2 L0_adc_SCLK(ch,0);///D_ADC_SCLK1_OFF(); + 128 2 if(L0_adc_DOUT_AT(ch)) + 129 2 { + 130 3 rdata += 1; + 131 3 } + 132 2 } + 133 1 ///25 puls make DOUT high + 134 1 L0_adc_SCLK(ch,1); + 135 1 ///FF84 CC09 FF84 CC09 + 136 1 L0_adc_SCLK(ch,0); + 137 1 *d = rdata; + 138 1 } + 139 + 140 + 141 + 142 #if 0 + + + void L0_ADS1231_readCH2555(vtype ch,vU16 *d) + { + u8 i = 0; + vU32 rdata; + vU16 t16; + rdata = 0; + + for(i = 0; i < 24; i++) + { + L0_adc_SCLK(ch,1);/// D_ADC_SCLK1_ON(); + rdata <<= 1; + L0_adc_SCLK(ch,0);///D_ADC_SCLK1_OFF(); + if(L0_adc_DOUT_AT(ch)) + { + rdata += 1; + } + } + ///25 puls make DOUT high + L0_adc_SCLK(ch,1); + ///FF84 CC09 FF84 CC09 + + L0_uart0_uc('0'+ch); L0_uart0_uc(0x09); + L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); + if (rdata > 0x007fFFff) + { + rdata >>= D_sensor_zoom; ///fixme:此处正负差和移位不一致需要谨慎 + rdata |= D_sensor_zoom_FF; /// 1111 1100 + }else + { + rdata >>= D_sensor_zoom; + } + C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 PAGE 4 + + + // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); + t16 = rdata; + // L0_uart0_ushex(t16); L0_uart0_uc(0x09); + ///L0_uart0_0d0a(); + + + if(t16 & 0x8000) //最高位为1,<0则 + { + t16 = 0xffFF - t16;///转变为正数 + ///*d = D_ADC_OFFSET - t16; + *d = D_ADC_OFFSET - t16; + }else + { + *d = t16 + D_ADC_OFFSET; + } + // L0_uart0_ushex(*d); L0_uart0_0d0a(); + + + L0_adc_SCLK(ch,0); + } + #endif + 198 + 199 /*********************************end file*********************************************/ + 200 + 201 + 202 //#define D_ADC_GATHER_Way1 1 + 203 #if 0 + + + //调试阻塞读 + vS32 L0_ADS1231_read(U8 ch) + { + vU32 e = 0;u8 i;vS32 rdata = 0; + while(1 == L0_2dc_DOUT_AT(ch)) + { + if(e ++ > 100000) + { + //return 0; + } + } + for(i = 0; i < 24; i++) + { + L0_2dc_SCLK(ch,1); + rdata <<= 1; + L0_2dc_SCLK(ch,0); + if(L0_2dc_DOUT_AT(ch)) + { + rdata += 1; + } + } + L0_2dc_SCLK(ch,1); + if(rdata & 0x800000) //???λ?1??<0?? + { + rdata |= 0xFF000000; + } + return rdata; + } + + + void L1_ADS1213_main(void) + { + C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 PAGE 5 + + U8 ch = D_ADCCH_2; + while(1) + { + while(1 == L0_2dc_DOUT_AT(ch)) + ; + tss_ads.u32_i = L0_ADS1231_readCH(ch); + tss_ads.u16_v = (vU16)( tss_ads.u32_i >> 16); + L0_uart0_ushex(tss_ads.u16_v); + tss_ads.u16_v = (vU16)(tss_ads.u32_i & 0x0000ffff); + L0_uart0_ushex(tss_ads.u16_v);//Lc_delay_us(500); + L0_uart0_uc(0x0d); L0_uart0_uc(0x0a); + } + } + + u8 Read_byte_adcIC(void) + { + u8 i; + u8 rdata = 0; //初始化返回值为 0 + for(i = 0; i < 8; i++) + { + D_ADC_SCLK1_ON(); + rdata <<= 1; //返回值左移 1 位 + /// CS1231_Clk(); //上升沿接收数据,下降沿更新数据 + + D_ADC_SCLK1_OFF(); + + + if(D_ADC_DOUT1_AT()) + { + rdata += 1; //若数据线上数据为 1,则返回值加 1 + } + } + return(rdata); + } + + void L0_ADS1213_CH(u8 ch) + { + /// /// SPEED = 1 57--57 ms 硬件配置成高电平 + D_ADC_PDWN_OFF(); + switch(ch) + { + case D_ADCCH_T: + L0_ADS1213_T(1); + break; + case D_ADCCH_1: + D_ADC_CS_A0_OFF(); + break; + case D_ADCCH_2: + D_ADC_CS_A0_ON(); + break; + case D_ADCCH_3: + //D_ADC_CS2_A0_OFF(); + break; + case D_ADCCH_4: + //D_ADC_CS2_A0_ON(); + break; + default:/// + L0_ADS1213_T(0); + break; + }; + Lc_delay_us(50); + D_ADC_PDWN_ON(); + C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 PAGE 6 + + } + + //channel-温度 + void L0_ADS1213_T(u8 onff) + { + if(onff) + { + D_ADC_PDWN_OFF(); + D_ADC_TEMP_ON(); + Lc_delay_us(50); + D_ADC_PDWN_ON(); + } + else + { + D_ADC_PDWN_OFF(); + D_ADC_TEMP_OFF(); + Lc_delay_us(50); + D_ADC_PDWN_ON(); + } + } + + #endif + 322 + 323 + 324 + 325 /*********************************************/ + 326 + 327 + 328 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 626 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 15 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/bsp_cs1232.obj b/out/bsp_cs1232.obj new file mode 100644 index 0000000..9e8199c Binary files /dev/null and b/out/bsp_cs1232.obj differ diff --git a/out/bsp_led.lst b/out/bsp_led.lst new file mode 100644 index 0000000..46c9639 --- /dev/null +++ b/out/bsp_led.lst @@ -0,0 +1,176 @@ +C51 COMPILER V9.54 BSP_LED 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE BSP_LED +OBJECT MODULE PLACED IN ..\out\bsp_led.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\bsp\bsp_led.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINTPR + -OMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\sou + -rce\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT(.. + -\out\bsp_led.lst) TABS(2) OBJECT(..\out\bsp_led.obj) + +line level source + + 1 #include "bsp_led.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 #include "c_delay.h" + 3 #include "debug_drv.h" + 4 + 5 TS_key_ ts_key; + 6 + 7 + 8 + 9 + 10 void L0_board_init(unsigned char onf) + 11 { + 12 1 if(onf) + 13 1 { + 14 2 /// SWITCH_INIT(); + 15 2 /// LED1_INIT(); + 16 2 // D_LED2_INIT(); + 17 2 }else + 18 1 { + 19 2 + 20 2 /// SWITCH_OFF(); + 21 2 /// LED1_OFF(); + 22 2 // D_LED2_OFF(); + 23 2 + 24 2 } + 25 1 } + 26 + 27 + 28 + 29 + 30 /* + 31 + 32 + 33 void L0_board_key(void) + 34 { + 35 ts_key.now = D_P32_AT(); + 36 if(ts_key.pool != ts_key.now) + 37 { + 38 if(ts_key.now) + 39 { + 40 + 41 }else + 42 {///``\____ + 43 ts_key.val = 1; + 44 } + 45 ts_key.pool = ts_key.now; + 46 } + 47 } + 48 + 49 void L0_sw_key(void)///限位开关判定 + 50 { + 51 ts_key.now = L0_Mmin_AT(); + C51 COMPILER V9.54 BSP_LED 09/06/2024 11:24:46 PAGE 2 + + 52 if(ts_key.pool != ts_key.now) + 53 { + 54 if(ts_key.now) + 55 { + 56 + 57 }else + 58 {///``\____ + 59 ts_key.val = 1; + 60 } + 61 ts_key.pool = ts_key.now; + 62 } + 63 } + 64 + 65 */ + 66 + 67 + 68 TS_task_keyled_ ts_task_keyled; + 69 + 70 + 71 + 72 void L2_task_keyled_register(void) + 73 { + 74 1 L1_task_reg_clear(&ts_task_keyled.task); + 75 1 L3_task_s_go(ts_task_keyled,D_task_init); + 76 1 + 77 1 } + 78 + 79 + 80 + 81 #define D_task_keyled_set 0x41 + 82 + 83 #define D_task_keyled_cmd_init 0x41 + 84 #define D_task_keyled_cmd_mac 0x42 + 85 + 86 #define D_task_keyled_1 0x52 + 87 #define D_task_keyled_2 0x43 + 88 #define D_task_keyled_3 0x53 + 89 #define D_task_keyled_4 0x44 + 90 #define D_task_keyled_cmd_innet 0x45 + 91 #define D_task_keyled_cmd_innet_ok 0x55 + 92 + 93 #define D_task_keyled_cmd_32 0x46 + 94 #define D_task_keyled_cmd_32_ok 0x56 + 95 + 96 + 97 #define D_delay_pt D_Tdelay_3s + 98 + 99 + 100 /* + 101 + 102 + 103 ////L2_task_keyled_handle(&ts_task_keyled); + 104 void L2_task_keyled_handle(TS_task_keyled_ *s) + 105 { + 106 unsigned char d = 0; + 107 TTSS_Task_init(): + 108 printf("\r\nL2_task_keyled_handle TTSS_Task_init"); + 109 + 110 L2_task_go(D_task_keyled_2); + 111 TTSS_Task_step(D_task_keyled_2): + 112 + 113 + C51 COMPILER V9.54 BSP_LED 09/06/2024 11:24:46 PAGE 3 + + 114 /// L2_task_Tdelay_go(D_Tdelay_2s,D_task_keyled_cmd_netid); + 115 TTSS_Task_step(D_task_keyled_3): + 116 + 117 + 118 /// L0_moto_run(D_MOTO_FORWARD); + 119 if(s->loc_now) + 120 + 121 + 122 /// L2_task_go(D_task_keyled_2); + 123 + 124 ///L2_task_Tdelay_go(D_Tdelay_500ms,D_task_keyled_1); + 125 + 126 + 127 TTSS_Task_end(); + 128 //////////////////////////////////////////////////////////// + 129 + 130 + 131 L0_board_key(); + 132 + 133 } + 134 + 135 + 136 + 137 + 138 */ + 139 + 140 + 141 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 22 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 17 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/bsp_led.obj b/out/bsp_led.obj new file mode 100644 index 0000000..8f33864 Binary files /dev/null and b/out/bsp_led.obj differ diff --git a/out/c_delay.lst b/out/c_delay.lst new file mode 100644 index 0000000..5f02193 --- /dev/null +++ b/out/c_delay.lst @@ -0,0 +1,78 @@ +C51 COMPILER V9.54 C_DELAY 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE C_DELAY +OBJECT MODULE PLACED IN ..\out\c_delay.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\clib\c_delay.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINTP + -ROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\so + -urce\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT(. + -.\out\c_delay.lst) TABS(2) OBJECT(..\out\c_delay.obj) + +line level source + + 1 /***************************************************************************** + 2 * uart.c: UART API file for NXP LPC17xx Family Microprocessors + 3 * + 4 * Copyright (c) 2023 CCSENS + 5 * All rights reserved. + 6 * + 7 * History + 8 * 2009.05.27 ver 1.00 Prelimnary version, first Release + 9 * + 10 ******************************************************************************/ + 11 + 12 + 13 #include "c_type51.h" + 14 #include "c_delay.h" + 15 extern void Delay100us(); + 16 + 17 extern void Delay1ms(); + 18 + 19 extern void Delay1us(); + 20 + 21 + 22 + 23 + 24 void Lc_delay_us(vU16 i) + 25 { + 26 1 vU16 m; + 27 1 for(m=i;m>0;m--) + 28 1 { + 29 2 Delay1us(); + 30 2 } + 31 1 } + 32 + 33 + 34 void Lc_delay_ms(vU16 i) + 35 { + 36 1 vU16 m;///,n; + 37 1 for(m=i;m>0;m--) + 38 1 { + 39 2 Delay1ms(); + 40 2 } + 41 1 } + 42 /****************************************************************************** + 43 + 44 ** End Of File + 45 ******************************************************************************/ + 46 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 116 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 8 ---- + C51 COMPILER V9.54 C_DELAY 09/06/2024 11:24:47 PAGE 2 + + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/out/c_delay.obj b/out/c_delay.obj new file mode 100644 index 0000000..b655c6f Binary files /dev/null and b/out/c_delay.obj differ diff --git a/out/c_lib.lst b/out/c_lib.lst new file mode 100644 index 0000000..111e481 --- /dev/null +++ b/out/c_lib.lst @@ -0,0 +1,1926 @@ +C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE C_LIB +OBJECT MODULE PLACED IN ..\out\c_lib.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\clib\c_lib.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINTPRO + -MOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\sour + -ce\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT(..\ + -out\c_lib.lst) TABS(2) OBJECT(..\out\c_lib.obj) + +line level source + + 1 /***************************************************************************** + 2 * uart.c: UART API file for NXP LPC17xx Family Microprocessors + 3 * + 4 * Copyright (c) 2023 CCSENS + 5 * All rights reserved. + 6 * + 7 * History + 8 * 2009.05.27 ver 1.00 Prelimnary version, first Release + 9 ///cc 2023/04/08--11:25:5 Lc_buf_from_const_uc + 10 * + 11 ******************************************************************************/ + 12 + 13 + 14 #include "c_type51.h" + 15 #include "c_lib.h" + 16 ///#include "../msp/msp_uart0.h" + 17 ////#include "../msp/time.h" + 18 #include + 19 + 20 + 21 code vU16 us2fun2[5] + 22 ={ + 23 1, //0 + 24 10,// 1 + 25 100,// 2 + 26 1000,// 3 + 27 10000// 4 + 28 + 29 }; + 30 + 31 + 32 + 33 code vU32 ul2fun2[10] + 34 ={ + 35 1, //0 + 36 10,// 1 + 37 100,// 2 + 38 1000,// 3 + 39 10000,// 4 + 40 100000, + 41 1000000, + 42 10000000, + 43 100000000, + 44 1000000000,//9 + 45 }; + 46 + 47 #if 0 + + 同样是转义字符,\n 的作用相当于“Enter”键,而想退回去就可以用“Backspace” + -,也就是\b + 这里还有一个可能用到的转义字符是\r :使光标回退到本行开头 + \b 退格 + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 2 + + \n 换行 0x0A + \f 走纸 + \t 水平制表 + \v 垂直制表 + + \r 0x0d + + //如果追求内存紧张加上const INT32U ul2fun2[10] + + + void Lc_float2str(float f,U8 *str,U8 point_num); + { + S32 i = 0; U32 u32i = 0; + U8 n = 0;U8 m = 0;U8 d = 0; + switch(point_num) + { + case 0: + + break; + case 1: + f *= 10.; + + break; + case 2: + f *= 100.; + + break; + case 3: + f *= 1000.; + + break; + default: + + break; + }; + i = (S32)f; + // Lc_float2str(1.23,&d,2) + // Lc_float2str(0.23,&d,2) + // Lc_float2str(23.4,&d,1) + // Lc_float2str(-12345.236,&d,2) + // 1,1.2 12.3 240 0.12 + if(i < 0) + { + str[n] = '-'; + n ++; + i *= -1; + } + u32i = (U32)i; + m = 4; + if(u32i >= ul2fun2[m]) u32i = ul2fun2[m] - 1; + for(m = 0;m > 4;m ++) + {// 43210 + d = (u32i /ul2fun2[m])%10; + if (d > 0) + str[n] = d; + n ++; + } + + if (n == point_num) + { + str[n] ='.'; + n ++; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 3 + + } + + + str[n] = i%10 + + } + + + #endif + 123 + 124 + 125 U32 Abs2(S32 a) + 126 { + 127 1 if(a < 0) + 128 1 { + 129 2 a = -a; + 130 2 } + 131 1 return a; + 132 1 } + 133 + 134 ///despiking 削峰 + 135 void Lc_despiking_shift3_U16(vU16 *m) + 136 {///只要中间的数据同时大于或小于两边的数据,则去掉 + 137 1 if(m[1] >= m[0]) + 138 1 { + 139 2 if(m[1] > m[2]) + 140 2 { + 141 3 m[1] = m[0]; + 142 3 } + 143 2 }else if(m[1] < m[0]) + 144 1 { + 145 2 if(m[1] < m[2]) + 146 2 { + 147 3 m[1] = m[0]; + 148 3 } + 149 2 }else + 150 1 { + 151 2 + 152 2 } + 153 1 } + 154 + 155 int libc_strlen(char *str) + 156 { + 157 1 char *tmp = str; + 158 1 while(*tmp++) + 159 1 ; + 160 1 return tmp - str - 1; + 161 1 } + 162 + 163 U8* Lc_strcpy(U8* dst,const char* str) + 164 { + 165 1 U8 *p = dst; + 166 1 while(*dst++ = *str++); + 167 1 return p; + 168 1 } + 169 + 170 + 171 U8 Lc_strStartsWith(U8 *s1,U8 *s2) + 172 { + 173 1 while(*s1 && *s2) + 174 1 { + 175 2 if(*s1++ != *s2++) + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 4 + + 176 2 { + 177 3 return 0; + 178 3 } + 179 2 } + 180 1 return (*s2 == 0); + 181 1 } + 182 + 183 + 184 int hexToDec(const char *source) + 185 { + 186 1 int sum = 0; + 187 1 long t = 1; + 188 1 int i,len; + 189 1 + 190 1 len = Lc_strlen(source); + 191 1 for(i=len-1; i>=0; i--) + 192 1 { + 193 2 sum += t * getIndexOfSigns(*(source + i)); + 194 2 t *= 16; + 195 2 } + 196 1 + 197 1 return sum; + 198 1 + 199 1 } + 200 unsigned char hex_to_char(unsigned char hex) + 201 { + 202 1 if((hex>=0x30)&&(hex<=0x39)) + 203 1 hex = hex-0x30; + 204 1 else if((hex>=0x41)&&(hex<=0x5A)) // capital + 205 1 hex = 'A' + (hex - 0x41); + 206 1 else if((hex>=0x61)&&(hex<=0x7A)) // little case + 207 1 hex = 'a' + (hex - 0x61); + 208 1 else + 209 1 hex = 0xff; + 210 1 return hex; + 211 1 } + 212 + 213 int getIndexOfSigns(char ch) + 214 { + 215 1 if(ch >= '0' && ch <= '9') + 216 1 { + 217 2 return ch - '0'; + 218 2 } + 219 1 if(ch >= 'A' && ch <='F') + 220 1 { + 221 2 return ch - 'A' + 10; + 222 2 } + 223 1 if(ch >= 'a' && ch <= 'f') + 224 1 { + 225 2 return ch - 'a' + 10; + 226 2 } + 227 1 return -1; + 228 1 } + 229 + 230 void Lc_buf_copy_us(U16 *d,const U16 *s,U16 num) + 231 { + 232 1 U16 i; + 233 1 for(i = 0; i < num; i ++) + 234 1 { + 235 2 *(d+i) = *(s+i); + 236 2 } + 237 1 + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 5 + + 238 1 } + 239 void Lc_buf_from_const_uc(U8 *d,const U8 *s,U16 num) + 240 { + 241 1 U16 i; + 242 1 for(i = 0; i < num; i ++) + 243 1 { + 244 2 *(d+i) = *(s+i); + 245 2 } + 246 1 + 247 1 } + 248 + 249 + 250 void Lc_buf_copy_uc(U8 *d,const U8 *s,U16 num) + 251 { + 252 1 U16 i; + 253 1 for(i = 0; i < num; i ++) + 254 1 { + 255 2 *(d+i) = *(s+i); + 256 2 } + 257 1 + 258 1 } + 259 + 260 vU8 Lc_U8_media3(vU8 a,vU8 b,vU8 c) + 261 { + 262 1 if(a > b) + 263 1 { + 264 2 if(b > c) + 265 2 { + 266 3 return b; + 267 3 }else + 268 2 {// b a) + 270 3 {/// a a) + 285 3 {// a b) + 298 1 { + 299 2 if(b > c) + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 6 + + 300 2 { + 301 3 return b; + 302 3 } + 303 2 else + 304 2 {// b a) + 306 3 {/// a a) + 321 3 {// a arr[j+1]) + 341 3 { + 342 4 ok = 0; + 343 4 tmp = arr[j]; + 344 4 arr[j] = arr[j+1]; + 345 4 arr[j+1] = tmp; + 346 4 } + 347 3 } + 348 2 if(ok) + 349 2 { + 350 3 break; + 351 3 } + 352 2 } + 353 1 } + 354 + 355 vS32 Lc_S32_media(vS32 val[],S16 num) + 356 { + 357 1 if(num <= 1) + 358 1 { + 359 2 return val[0]; + 360 2 } + 361 1 else + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 7 + + 362 1 { + 363 2 Lc_array_sort(val,num); + 364 2 return val[num/2]; + 365 2 } + 366 1 } + 367 U32 Lc_vS32_media(U32 *d, U8 n) + 368 { + 369 1 U8 i = 0,j = 0; + 370 1 U32 h = 0; + 371 1 if(n == 1) + 372 1 { + 373 2 return d[0]; + 374 2 } + 375 1 for(i=0;i d[j]) + 380 3 { + 381 4 h = d[i]; + 382 4 d[i] = d[j]; + 383 4 d[j] = h; + 384 4 } + 385 3 } + 386 2 } + 387 1 if(n%2 != 0) //奇数 + 388 1 { + 389 2 return d[n/2]; + 390 2 } + 391 1 else//偶数 + 392 1 { + 393 2 return ((d[n/2] + d[n/2-1])/2); + 394 2 } + 395 1 } + 396 + 397 + 398 U32 Lc_vU32_avg(U32 *d, U8 n) + 399 { + 400 1 U8 i = 0; + 401 1 U32 sum = 0; + 402 1 if(n == 1) + 403 1 { + 404 2 return d[0]; + 405 2 } + 406 1 for(i=0;i 0x31 0x31 0x32 0x32 '1' '1' '2' '2' + 417 void Lc_hex2ascii(U8 *buf,U16 len,U8 *ascii) + 418 { + 419 1 vU16 t = 0,m = 0; + 420 1 for(t = 0;t < len;t ++) + 421 1 { + 422 2 + 423 2 #if 1 + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 8 + + 424 2 ascii[m] = cguHex2Char[D_uc_high(buf[t])][1]; + 425 2 m ++; + 426 2 ascii[m] = cguHex2Char[D_uc_low (buf[t])][1]; + 427 2 m ++; + 428 2 ascii[m] =0x20; + 429 2 m ++; + 430 2 #else + + ascii[m] = 0x30+m; + m++; + ascii[m] = 0x30+m; + m++; + ascii[m] = 0x30+m; + m++; + + + #endif + 441 2 } + 442 1 } + 443 + 444 /// cguHex2Char[0][0] = 0x00 cguHex2Char[0][1] = 0x30 + 445 unsigned char code cguHex2Char[16][2] + 446 ={ + 447 0x00,'0', + 448 0x01,'1', + 449 0x02,'2', + 450 0x03,'3', + 451 0x04,'4', + 452 0x05,'5', + 453 0x06,'6', + 454 0x07,'7', + 455 0x08,'8', + 456 0x09,'9', + 457 0x0A,'A', + 458 0x0B,'B', + 459 0x0C,'C', + 460 0x0D,'D', + 461 0x0E,'E', + 462 0x0F,'F' + 463 }; + 464 + 465 + 466 void Lc_for_int16(U16 i) + 467 { + 468 1 U16 m; + 469 1 for(m=i;m>0;m--) + 470 1 { + 471 2 ///L0_Delay_1ms(); + 472 2 } + 473 1 } + 474 + 475 U32 Lc_abs(vS32 a,vS32 b) + 476 { + 477 1 if(a >= b) + 478 1 { + 479 2 return a - b; + 480 2 } + 481 1 return b - a; + 482 1 } + 483 + 484 void Lc_encrypt_id(U8 *enc_dst, U8 *enc_src, U32 enc_key, U8 src_len) + 485 { + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 9 + + 486 1 U8 i = 0,key0,key1,key2,key3; + 487 1 key0 = enc_key >> 24 & 0xFF; + 488 1 key1 = enc_key >> 16 & 0xFF; + 489 1 key2 = enc_key >> 8 & 0xFF; + 490 1 key3 = enc_key >> 0 & 0xFF; + 491 1 + 492 1 for(i=0;i> 0) & 0xFF) << 24) | (((dat >> 8) & 0xFF) << 16) | (((dat >> 16) & 0xFF) << 8) | (( + -(dat >> 24) & 0xFF) << 0); + } + return res; + } + + U32 htonl(U32 dat) + { + U32 res = 0; + if(dat == 0 || isBigEndianOrder()){ + res = dat; + }else{ + res = (((dat >> 0) & 0xFF) << 24) | (((dat >> 8) & 0xFF) << 16) | (((dat >> 16) & 0xFF) << 8) | (( + -(dat >> 24) & 0xFF) << 0); + } + return res; + } + + U16 ntohs(U16 dat) + { + U16 res = 0; + if(dat == 0 || isBigEndianOrder()){ + res = dat; + }else{ + res = (((dat >> 0) & 0xFF) << 8) | (((dat >> 8) & 0xFF) << 0) ; + } + return res; + } + + U16 htons(U16 dat) + { + U16 res = 0; + if(dat == 0 || isBigEndianOrder()){ + res = dat; + }else{ + res = (((dat >> 0) & 0xFF) << 8) | (((dat >> 8) & 0xFF) << 0) ; + } + return res; + } + #endif + 596 + 597 #if 0///#ifdef D_flash_max + + + // 0--9 '0' + // ABCEDF------0X41-- 87-6= 81 + U8 Lc_Hex2Char(U8 CharStr) + { + U8 rd; + if (CharStr >9)//A 10-9+ + { + rd = (CharStr - 10 + 'A') ; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 11 + + } + else + { + rd = (CharStr + '0') ; + } + return rd; + } + // 0x30'0'----'9'--> 0x0----0x09 + //0x61--'a'---'f'--> 0x0a---0x0f + //0x41 'A'--'F'--> 0x0a---0x0f + U8 Lc_Char2Hex(U8 CharStr) + { + U8 rd; + if (CharStr >= 'a')//0x61--'a'---'f'--> 0x0a---0x0f + { + rd = (CharStr - 'a' + 0x0a) ; + } + else if (CharStr >= 'A')//0x61--'a'---'f'--> 0x0a---0x0f + { + rd = (CharStr - 'A' + 0x0a) ; + } + else + { + rd = (CharStr - '0') ; + } + return rd; + } + //catch_protocol(s,d); + // 从 d中提取出协议,一般用于协议打包后的调试和透传, + // *s="iicsend:12 34 56 78 9a \r\n"; + // i: 012345678 + // 返回协议字节数量 + // extern int strpos (const char *s, char c); + unsigned char catch_protocol (const char *d_src,char d_protocol[]) + { + unsigned char n = 0,len = 0;//,i = 0; + int i = 0; + i = strpos(d_src, (char)':'); + i ++; + len = strlen (d_src) - 2; + while(i < len) + { + d_protocol[n] = Lc_Char2Hex(*(d_src+i))*16; + i ++; + d_protocol[n] += Lc_Char2Hex(*(d_src+i)); + i ++;i ++; + n ++; + } + return n; + } + + /* + * 函数名:itoa 不同类型的cpu不一样 并且支持的最大数据取决于i = 1000000;D_value_m + -ax + * 描述 :将整形数据转换成字符串 + * 输入 :-radix =10 表示10进制,其他结果为0 + * -value 要转换的整形数 + * -buf 转换后的字符串 + * -radix = 10 + * 输出 :无 + * 返回 :无 + * 调用 :被USART1_printf()调用 + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 12 + + + Lc_int2a + + + */ + #define D_value_max 100000 + char *Lc_int2a(vS32 value, char *string, UN_TYPE radix) + { + vS32 i, d; + UN_TYPE flag = 0; + vU16 U16temp = 0; + char *ptr = string; + + /* This implementation only works for decimal numbers. */ + //value + if (!value) + { + *ptr++ = 0x30; + *ptr = 0; + return string; + } + U16temp = value; + switch(radix) + {//%X2 %X4 %X6 + case '2': + *ptr++ = Lc_Hex2Char((U16temp>>4)&0x0f); + *ptr++ = Lc_Hex2Char((U16temp)&0x0f); + *ptr = 0; + return string; + break; + case '4': + *ptr++ = Lc_Hex2Char((U16temp>>12)&0x0f); + *ptr++ = Lc_Hex2Char((U16temp>>8)&0x0f); + *ptr++ = Lc_Hex2Char((U16temp>>12)&0x0f); + *ptr++ = Lc_Hex2Char((U16temp>>8)&0x0f); + *ptr++ = Lc_Hex2Char((U16temp>>4)&0x0f); + *ptr++ = Lc_Hex2Char((U16temp)&0x0f); + *ptr = 0; + return string; + break; + #if 0 + case '8': + *ptr++ = Lc_HexToChar((value>>24)&0x0f); + *ptr++ = Lc_HexToChar((value>>20)&0x0f); + *ptr++ = Lc_HexToChar((value>>16)&0x0f); + *ptr++ = Lc_HexToChar((value>>12)&0x0f); + *ptr++ = Lc_HexToChar((value>>8 )&0x0f); + *ptr++ = Lc_HexToChar((value>>4 )&0x0f); + *ptr++ = Lc_HexToChar((value)&0x0f); + *ptr = 0; + return string; + break; + #endif + case 10: + /* if this is a negative value insert the minus sign. */ + if (value < 0) + { + *ptr++ = '-'; + + /* Make the value positive. */ + value *= -1; + } + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 13 + + i = D_value_max; + if (value > i) + { + value = i; + } + for (;i > 0; i /= 10) + { + d = value / i; + + if (d || flag) + { + *ptr++ = (char)(d + 0x30); + value -= (d * i); + flag = 1; + } + } + + /* Null terminate the string. */ + *ptr = 0; + + return string; + break; + default: + *ptr++ = 0x30; + *ptr = 0; + return string; + break; + } + + + } /* NCL_Itoa */ + /// bits:生成的字符共几位数据 + void Lc_int2D(vS16 value, char *string,char bits) + { + vS16 i, d; + UN_TYPE flag = 0; + // vU16 U16temp = 0; + char *ptr = string; + + /* This implementation only works for decimal numbers. */ + //value + + // U16temp = value; + /* if this is a negative value insert the minus sign. */ + if (value < 0) + { + *ptr++ = '-'; + value *= -1; + }else + { + *ptr++ = ' '; + + } + + + + i = us2fun2[bits-1]; + for (;i > 0; i /= 10) + { + d = value / i; + if((0 == d)&&(0 == flag)&&(1 != i)) + {/// + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 14 + + *ptr++ = ' '; + + }else + { + flag = 1;///第一个非零的数据出现 + *ptr = (char)(d + 0x30); + *ptr++; + value -= (d * i); + } + } + + } /* NCL_Itoa */ + + + //void (*L0_uart0_uc)(U8 ww); + + // 带buf的printf fixme: 需要精简地方 + void Lc_print_buf(char *dat4,...) + { + const char *s; + vS32 d; + char buf[64]; ///取决于cpu的内存大小,如果出现问题,请先定位到此处 + // char send[16]; + char n = 0; + char *dat = 0; + va_list ap;//va_list 是一个字符指针,可以理解为指向当前参数的一个指针, + //取参必须通过这个指针进行。 + // 在调用参数表之前,定义一个 va_list 类型的变量, + //(假设va_list 类型变量被定义为ap); + va_start(ap, dat); + // 然后应该对ap 进行初始化,让它指向可变参数表里面的第一个参数, + //这是通过 va_start 来实现的,第一个参数是 ap 本身,第二个参数是在 + //变参表前面紧挨着的一个变量,即“...”之前的那个参数; + + dat = dat4; + // 然后是获取参数,调用va_arg,它的第一个参数是ap, + //第二个参数是要获取的参数的指定类型,然后返回这个指定类型的值, + //并且把 ap 的位置指向变参表的下一个变量位置; + //"e645654675y73\0" + while ( *dat != 0) // 判断是否到达字符串结束符 + { + if ( *dat == 0x5c ) //'\' + { + switch ( *++dat ) + { + case 'r': //回车符 + ts_uart_send_depot.buf[n ++] = 0x0d;//L0pf_send_uc(0x0d); + dat ++; + break; + + case 'n': //换行符 + ts_uart_send_depot.buf[n ++] = 0x0a;//L0pf_send_uc(0x0a); + dat ++; + break; + + case 't': // + ts_uart_send_depot.buf[n ++] = 0x09;//L0pf_send_uc(0x09); + dat ++; + break; + default: + dat ++; + break; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 15 + + } + } + else if ( *dat == '%') + { // + switch ( *++dat ) + { + case 'C': + case 'c': //字符 + //va_arg()里的任务就是根据指定的参数类型 + //取得本参数的值,并且把指针调到下一 + //个参数的起始地址 + //#define va_arg(ap,t) + //( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) + + //char *ap; %c " , 0x30, + s = va_arg(ap, const char *); // 0x30 + ts_uart_send_depot.buf[n ++] = (char)s;// L0pf_send_uc((char)s); // '0' + dat++; + break; + case 'd': //十进制 + //" %d",0x30, + //" %d",48, + // int i = 48; + //" %d",i, + + d = va_arg(ap, int); // 0x30 =48d + Lc_int2a(d, buf, 10); //"buf="48" buf[0]='4' buf[1]='8' + for (s = buf; *s; s++) // "48"----'4'--'8' '\0'--*s + { //\0 + ts_uart_send_depot.buf[n ++] = *s;//L0pf_send_uc(*s); + //printf("%c",*s); + } + dat++; + break; + case 'X': + case 'x': //字符串 + d = va_arg(ap, int); // 0x30 =48d + dat++;//%X2 %X4 %X8 + Lc_int2a(d, buf, *dat); //"buf="48" buf[0]='4' buf[1]='8' + for (s = buf; *s; s++) // "48"----'4'--'8' '\0'--*s + { //\0 + ts_uart_send_depot.buf[n ++] = *s;//L0pf_send_uc(*s); + } + dat++; + break; + case 'S': + case 's': //字符串 + s = va_arg(ap, const char *); + for ( ; *s; s++) + { + ts_uart_send_depot.buf[n ++] = *s;//L0pf_send_uc(*s); + } + dat++; + break; + case 'f': //十进制 + d = va_arg(ap, int); + Lc_int2a(d, buf, 10); + for (s = buf; *s; s++) + { + ts_uart_send_depot.buf[n ++] = *s;//L0pf_send_uc(*s); + + } + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 16 + + dat++; + break; + default: + dat++; + break; + } + } /* end of else if */ + else + { + ts_uart_send_depot.buf[n ++] = (*dat++);//L0pf_send_uc( *dat++); + } + }//end while.... + ts_uart_send_depot.max = n; + ts_uart_send_depot.p = ts_uart_send_depot.buf; + L0_uart0_sendbuf(); + }// + #endif + 934 + 935 #if 0 //5436345673456 + /******************************************************************** + * + * 名称: L0_Usend_uc_hex + * 说明: 例如:L0_Usend_uc_hex(0x0c); output " 0c " + * 功能: 发送数据 + * 调用: SendHUc()Lc_HexToChar() + * 输入: + * 返回值: 无 + ***********************************************************************/ + void Lc_uc_hex(char ww) + { + L0_uart0_uc(Lc_Hex2Char((ww>>4)&0x0f)); + L0_uart0_uc(Lc_Hex2Char(ww&0x0f)); + } + + void Lc_us_hex(U16 ww) + {// + U8 t; + t = (U8)(((ww >> 8)&0x00ff)); + Lcp_uc_hex(t); + t = (U8)(((ww )&0x00ff)); + Lcp_uc_hex(t); + } + + void Lc_print_NC(char *dat,...) + { + + } + // 非缓存模式的打印 fixme: 发送16进制数据时有bug + void Lc_print33333(char *dat4,...) + { + const char *s; + vS32 d; + char buf[16];//char t; + char *dat = NULL; + va_list ap;//va_list 是一个字符指针,可以理解为指向当前参数的一个指针, + //取参必须通过这个指针进行。 + // 在调用参数表之前,定义一个 va_list 类型的变量, + //(假设va_list 类型变量被定义为ap); + va_start(ap, dat4); + // 然后应该对ap 进行初始化,让它指向可变参数表里面的第一个参数, + //这是通过 va_start 来实现的,第一个参数是 ap 本身,第二个参数是在 + //变参表前面紧挨着的一个变量,即“...”之前的那个参数; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 17 + + dat =dat4; + // 然后是获取参数,调用va_arg,它的第一个参数是ap, + //第二个参数是要获取的参数的指定类型,然后返回这个指定类型的值, + //并且把 ap 的位置指向变参表的下一个变量位置; + //"e645654675y73\0" + while ( *dat != 0) // 判断是否到达字符串结束符 + { + if ( *dat == 0x5c ) //'\' + { + switch ( *++dat ) + { + case 'r': //回车符 + L0_uart0_uc(0x0d); + dat ++; + break; + + case 'n': //换行符 + L0_uart0_uc(0x0a); + dat ++; + break; + + case 't': // + L0_uart0_uc(0x09); + dat ++; + break; + default: + dat ++; + break; + } + } + else if ( *dat == '%') + { // + switch ( *++dat ) + { + case 'C': + case 'c': //字符 + //va_arg()里的任务就是根据指定的参数类型 + //取得本参数的值,并且把指针调到下一 + //个参数的起始地址 + //#define va_arg(ap,t) + //( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) + + //char *ap; %c " , 0x30, + s = va_arg(ap, const char *); // 0x30 + L0_uart0_uc((char)s); // '0' + dat++; + break; + case 'd': //十进制 + //" %d",0x30, + //" %d",48, + // int i = 48; + //" %d",i, //#define va_arg(ap,t) (((t *)ap)++[0]) //(((int *)ap)++[0]) + + d = va_arg(ap, int); // 0x30 =48d + d >>= 8; + Lc_int2a(d, buf, 10); //"buf="48" buf[0]='4' buf[1]='8' + for (s = buf; *s; s++) // "48"----'4'--'8' '\0'--*s + { //\0 + L0_uart0_uc(*s); + //printf("%c",*s); + } + dat++; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 18 + + break; + case 'X': + case 'x': //字符串 + d = va_arg(ap, int); // 0x30 =48d + d >>= 8; + dat++;//%X2 %X4 %X8 + Lc_int2a(d, buf, *dat); //"buf="48" buf[0]='4' buf[1]='8' + for (s = buf; *s; s++) // "48"----'4'--'8' '\0'--*s + { //\0 + L0_uart0_uc(*s); + } + dat++; + break; + case 'S': + case 's': //字符串 + s = va_arg(ap, const char *); + for ( ; *s; s++) + { + L0_uart0_uc(*s); + } + dat++; + break; + case 'f': //十进制 + d = va_arg(ap, int); + Lc_int2a(d, buf, 10); + for (s = buf; *s; s++) + { + L0_uart0_uc(*s); + + } + dat++; + break; + default: + dat++; + break; + } + } /* end of else if */ + else + { + L0_uart0_uc(*dat ++); + //t = *dat; + //L0pf_send_uc = L0_uart0_uc; + //L0pf_send_uc(t); + //L0_uart0_uc(t); + //dat++; + } + }//end while....斯蒂芬 + }// + + + + + + ///计算CRC校验码 + unsigned int CRC16(unsigned char *ptr, unsigned char len) + { + unsigned int crc=0xffff; + unsigned char i; + while(len--) + { + crc ^=*ptr++; + for(i=0;i<8;i++) + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 19 + + { + if(crc & 0x1) + { + crc>>=1; + crc^=0xa001; + } + else + { + crc>>=1; + } + } + } + return crc; + } + + + + ///检测CRC校验码是否正确 + unsigned char CheckCRC(unsigned char *ptr,unsigned char len) + { + unsigned int crc; + crc = (unsigned int)CRC16(ptr,(len-2)); + if(ptr[len-1]==(crc>>8) && ptr[len-2]==(crc & 0x00ff)) + { + return 0xff; + } + else + { + return 0x0; + } + } + + + char *strstr(const char *str1, const char *str2) + { + char *cp = (char*)str1; + char *s1, *s2; + + if (!*str2) + return((char *)str1); + + while (*cp) + { + s1 = cp; + s2 = (char *)str2; + + while (*s1 && *s2 && !(*s1 - *s2)) + s1++, s2++; + + if (!*s2) + return(cp); + + cp++; + } + return(NULL); + } + + + //40 + void Lc_int2str_4(U32 ui_in,char *d) + { + U8 m = 0;//,i; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 20 + + + if (ui_in >= ul2fun2[3])// 1,000 12345 + { + *(d+m) = 0x30 + Lc_WEI(ui_in,(3));// (unsigned char)((ui_in/ul2fun2[len-i])%10); + m ++; + } + else + { + *(d+m) = ' '; + m ++; + } + + if (ui_in >= ul2fun2[2])// 100 12345 + { + *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); + m ++; + } + else + { + *(d+m) = ' '; + m ++; + } + + if (ui_in >= ul2fun2[1])// 10 12345 + { + *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); + m ++; + } + else + { + *(d+m) = ' '; + m ++; + } + *(d+m) = 0x30 + Lc_WEI(ui_in,0); + } + + + // 123 + void Lc_int2str_3(U32 ui_in,char *d) + { + U8 m = 0;//,i; + + if (ui_in >= ul2fun2[2])// 100 12345 + { + *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); + m ++; + } + else + { + *(d+m) = ' '; + m ++; + } + + if (ui_in >= ul2fun2[1])// 10 12345 + { + *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); + m ++; + } + else + { + *(d+m) = ' '; + m ++; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 21 + + } + *(d+m) = 0x30 + Lc_WEI(ui_in,0); + } + + + //Lc_int2str(123456, 5,3,&str[0]'); + /* + + + blank 填充字符 ' '或者其他unsigned char *blank)//保留以后使用 + + + */ + + + + void Lc_int2str(U32 ui_in,UN_TYPE len,UN_TYPE point,char *d) + { + U8 m = 0,i; + for(i = 0;i < len;i++) + { + if(point != 0) + { + if(point == (len-i+1)) + { + *(d+m) = '.'; + m ++; + } + } + if (ui_in>=ul2fun2[len-i]) + { + *(d+m) = 0x30 + Lc_WEI(ui_in,(len-i));// (unsigned char)((ui_in/ul2fun2[len-i])%10); + m ++; + } + else + { + *(d+m) = ' '; + m ++; + } + } + *(d+m) = 0x30 + Lc_WEI(ui_in,1); + m++; + *(d+m) = 0x00; + //*(d+m) = 'e'; + } + + + // input: 123456d + // output: '1' '2' '3'.... + //对应的点阵 为 0123456789. ,最后为空格,专为显示点阵类的数值使用 + void Lc_int2number(U32 ui_in,UN_TYPE len,UN_TYPE point,char *d) + { + U8 i,m = 0; //uc_temp, + for(i = len+1;i != 0;i--)// len + 1 point 占用一位 + { + if(point == (len-i)) + { + d[len-m] = '.';//'.' + m ++; + } + { + if (ui_in>=ul2fun2[i-1]) + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 22 + + { + d[len-m] = (U8)((ui_in/ul2fun2[i-1])%10); + + } + else + { + d[len-m] = ' ';//' ' + } + m ++; + } + } + d[len-m] = (U8)(ui_in%10); + } + + void Lc_Byte_cp(BYTE *src,BYTE *dis, int len) + { + int i; + for(i = 0; i < len ;i ++) + { + *dis = *src; + dis ++; + src ++; + } + //return 0; + } + /* + void Lc_Byte_print(BYTE *src,int len) + { + int i, d; + for(i = 0; i < len ;i ++) + { + *dis = *src; + dis ++; + src ++; + } + //return 0; + } + */ + + + // -10........+10 + + U32 L2_fun_number_show(int i,char str[4]) + { + U8 c; + int cint; + + if(i >= 0) + { + cint = i; + str[0] =' '; + + } + else + { + cint = 0 - i; + str[0] ='-'; + + + } + c = Lc_WEI(cint,1); + if(0 == c) + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 23 + + { + str[1] =' '; + } + else + { + str[1] = 0x30+ c; + + } + str[2] = 0x30+ Lc_WEI(cint,0); + return 0; + } + + //L1_lkt_write(s_room_val.ui_t3,s_room_val.ui_t3,s_task_lkt.din); + //U_uluiuc + + void Lc_2ui2buf(vU32 ui_t2,vU32 ui_t3,volatile BYTE out[]) + { + #if 0 + volatile U_uluiuc t; + //s_temp[] + t.uiv[0] = ui_t2; + t.uiv[1] = ui_t3; + + + Lc_Byte_cp(t.dv,out,8); + + out[3] = D_ul2uc_0( ui_t2); + ui_t2 >>= 8; + out[2] = D_ul2uc_0( ui_t2); + ui_t2 >>= 8; + out[1] = D_ul2uc_0( ui_t2); + ui_t2 >>= 8; + out[0] = D_ul2uc_0( ui_t2); + + + out[7] = D_ul2uc_0( ui_t3); + ui_t2 >>= 8; + out[6] = D_ul2uc_0( ui_t3); + ui_t2 >>= 8; + out[5] = D_ul2uc_0( ui_t3); + ui_t2 >>= 8; + out[4] = D_ul2uc_0( ui_t3); + + + #else + out[0] = D_ul2uc_0( ui_t2); + ui_t2 >>= 8; + out[1] = D_ul2uc_0( ui_t2); + ui_t2 >>= 8; + out[2] = D_ul2uc_0( ui_t2); + ui_t2 >>= 8; + out[3] = D_ul2uc_0( ui_t2); + + /* + out[4] = D_ul2uc_0( ui_t3); + ui_t2 >>= 8; + out[5] = D_ul2uc_0( ui_t3); + ui_t2 >>= 8; + out[6] = D_ul2uc_0( ui_t3); + ui_t2 >>= 8; + out[7] = D_ul2uc_0( ui_t3); + */ + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 24 + + #endif + + } + + void L1_buf22ui(volatile BYTE in[],vU32 *ui_t2,vU32 *ui_t3) + { + #if 0 + volatile U_uluiuc t; + Lc_Byte_cp(in,t.dv,8); + *ui_t2 = t.uiv[0]; + *ui_t3 = t.uiv[1]; + *ui_t2 = 0; + *ui_t2|= (U32)in[3]; + *ui_t2|= (U32)(in[2]<<8); + *ui_t2|= (U32)(in[1]<<16); + *ui_t2|= (U32)(in[0]<<24); + + *ui_t3 = 0; + *ui_t3|= (U32)in[7]; + *ui_t3|= (U32)(in[6]<<8); + *ui_t3|= (U32)(in[5]<<16); + *ui_t3|= (U32)(in[4]<<24); + + #else + + + *ui_t2 = 0; + *ui_t2|= (U32)in[0]; + *ui_t2|= (U32)(in[1]<<8); + *ui_t2|= (U32)(in[2]<<16); + *ui_t2|= (U32)(in[3]<<24); + /* + *ui_t3 = 0; + *ui_t3|= (INT32U)in[4]; + *ui_t3|= (INT32U)(in[5]<<8); + *ui_t3|= (INT32U)(in[6]<<16); + *ui_t3|= (INT32U)(in[7]<<24); + */ + #endif + } + + U32 Lc_abs(vU32 a,vU32 b,vU32 *diff) + { + if(a >= b) + { + *diff = a-b; + return 1; + }else + { + *diff = b-a; + return 0; + } + } + + + + static U8 count_n(u8 n,u8 d) + { + if(n < d) + { + return MAX_OUT_NUM + n - d ; + } + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 25 + + else + { + return n-d; + } + } + + U32 Abs(S32 a) + { + if(a < 0) + { + a = -a; + } + return a; + } + + + + + #endif //#if 0 //5436345673456 +1494 +1495 +1496 +1497 //12,34 +1498 void Lc_int2str_2_2(U32 ui_in,char *d) +1499 { +1500 1 U8 m = 0;//,i; +1501 1 +1502 1 if (ui_in >= ul2fun2[4])// 1000 123456 +1503 1 { +1504 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(4));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1505 2 m ++; +1506 2 } +1507 1 else +1508 1 { +1509 2 *(d+m) = ' '; +1510 2 m ++; +1511 2 } +1512 1 if (ui_in >= ul2fun2[3])// 1000 12345 +1513 1 { +1514 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(3));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1515 2 m ++; +1516 2 } +1517 1 else +1518 1 { +1519 2 *(d+m) = ' '; +1520 2 m ++; +1521 2 } +1522 1 +1523 1 if (ui_in >= ul2fun2[2])// 100 12345 +1524 1 { +1525 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1526 2 m ++; +1527 2 } +1528 1 else +1529 1 { +1530 2 *(d+m) = '0'; +1531 2 m ++; +1532 2 } +1533 1 +1534 1 *(d+m) = '.'; +1535 1 m ++; +1536 1 if (ui_in >= ul2fun2[1])// 10 12345 + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 26 + +1537 1 { +1538 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1539 2 m ++; +1540 2 } +1541 1 else +1542 1 { +1543 2 *(d+m) = '0'; +1544 2 m ++; +1545 2 } +1546 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1547 1 +1548 1 m ++; +1549 1 *(d+m) = 0; +1550 1 +1551 1 } +1552 +1553 /// 0-999 +1554 void Lc_int2str_3(U32 ui_in,char *d) +1555 { +1556 1 U8 m = 0;//,i; +1557 1 if (ui_in >= ul2fun2[3]) +1558 1 { +1559 2 ui_in = 999; +1560 2 } +1561 1 if (ui_in >= ul2fun2[2])// 100 12345 +1562 1 { +1563 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1564 2 } +1565 1 else +1566 1 { +1567 2 *(d+m) = ' '; +1568 2 } +1569 1 m ++; +1570 1 +1571 1 if (ui_in >= ul2fun2[1])// 10 12345 +1572 1 { +1573 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1574 2 } +1575 1 else +1576 1 { +1577 2 *(d+m) = ' '; +1578 2 } +1579 1 m ++; +1580 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1581 1 m ++; +1582 1 *(d+m) = 0; +1583 1 } +1584 /// 0-99 +1585 void Lc_int2str_2(U32 ui_in,char *d) +1586 { +1587 1 U8 m = 0;//,i; +1588 1 if (ui_in >= ul2fun2[2]) +1589 1 { +1590 2 ui_in = 99; +1591 2 } +1592 1 +1593 1 if (ui_in >= ul2fun2[1])// 10 12345 +1594 1 { +1595 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1596 2 } +1597 1 else +1598 1 { + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 27 + +1599 2 *(d+m) = ' '; +1600 2 } +1601 1 m ++; +1602 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1603 1 m ++; +1604 1 *(d+m) = 0; +1605 1 } +1606 void Lc_uc2str_2(U8 ui_in,char *d) +1607 { +1608 1 U8 m = 0;//,i; +1609 1 if (ui_in >= ul2fun2[2]) +1610 1 { +1611 2 ui_in = 99; +1612 2 } +1613 1 +1614 1 if (ui_in >= ul2fun2[1])// 10 12345 +1615 1 { +1616 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1617 2 } +1618 1 else +1619 1 { +1620 2 *(d+m) = ' '; +1621 2 } +1622 1 m ++; +1623 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1624 1 m ++; +1625 1 *(d+m) = 0; +1626 1 } +1627 +1628 // 123.4 +1629 +1630 void Lc_int2str_3_1(U32 ui_in,char *d) +1631 { +1632 1 U8 m = 0;//,i; +1633 1 if (ui_in >= ul2fun2[4])// 1000 12345 +1634 1 { +1635 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(4));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1636 2 m ++; +1637 2 } +1638 1 else +1639 1 { +1640 2 *(d+m) = ' '; +1641 2 m ++; +1642 2 } +1643 1 +1644 1 +1645 1 if (ui_in >= ul2fun2[3])// 1000 12345 +1646 1 { +1647 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(3));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1648 2 m ++; +1649 2 } +1650 1 else +1651 1 { +1652 2 *(d+m) = ' '; +1653 2 m ++; +1654 2 } +1655 1 +1656 1 if (ui_in >= ul2fun2[2])// 100 12345 +1657 1 { +1658 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1659 2 m ++; +1660 2 } + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 28 + +1661 1 else +1662 1 { +1663 2 *(d+m) = ' '; +1664 2 m ++; +1665 2 } +1666 1 +1667 1 if (ui_in >= ul2fun2[1])// 10 12345 +1668 1 { +1669 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1670 2 m ++; +1671 2 } +1672 1 else +1673 1 { +1674 2 *(d+m) = '0'; +1675 2 m ++; +1676 2 } +1677 1 *(d+m) = '.'; +1678 1 m ++; +1679 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1680 1 m ++; +1681 1 *(d+m) = 0; +1682 1 +1683 1 } +1684 +1685 +1686 //-123 +1687 void Lc_sint2str_3(int i_in,char *d) +1688 { +1689 1 U8 m = 0;//,i; +1690 1 U32 ui_in; +1691 1 if(i_in < 0) +1692 1 { +1693 2 ui_in = (U32)(0-i_in); +1694 2 *(d+m) = '-'; +1695 2 }else +1696 1 { +1697 2 ui_in = (U32)(i_in); +1698 2 *(d+m) = ' '; +1699 2 } +1700 1 m ++; +1701 1 if (ui_in >= ul2fun2[2])// 100 12345 +1702 1 { +1703 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1704 2 } +1705 1 else +1706 1 { +1707 2 *(d+m) = ' '; +1708 2 } +1709 1 m ++; +1710 1 if (ui_in >= ul2fun2[1])// 10 12345 +1711 1 { +1712 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1713 2 } +1714 1 else +1715 1 { +1716 2 *(d+m) = ' '; +1717 2 } +1718 1 m ++; +1719 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1720 1 m ++; +1721 1 *(d+m) = 0; +1722 1 } + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 29 + +1723 +1724 //-32.1 +1725 void Lc_sint2str_2_1(int i_in,char *d) +1726 { +1727 1 U8 m = 0;//,i; +1728 1 U32 ui_in; +1729 1 if(i_in < 0) +1730 1 { +1731 2 ui_in = (U32)(0-i_in); +1732 2 *(d+m) = '-'; +1733 2 }else +1734 1 { +1735 2 ui_in = (U32)(i_in); +1736 2 *(d+m) = ' '; +1737 2 } +1738 1 m ++; +1739 1 +1740 1 if (ui_in >= ul2fun2[3])// 1000 12345 +1741 1 { +1742 2 ui_in = 999; +1743 2 } +1744 1 +1745 1 if (ui_in >= ul2fun2[2])// 100 12345 +1746 1 { +1747 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1748 2 } +1749 1 else +1750 1 { +1751 2 *(d+m) = ' '; +1752 2 } +1753 1 m ++; +1754 1 if (ui_in >= ul2fun2[1])// 10 12345 +1755 1 { +1756 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1757 2 } +1758 1 else +1759 1 { +1760 2 *(d+m) = '0'; +1761 2 } +1762 1 m ++; +1763 1 *(d+m) = '.'; +1764 1 m ++; +1765 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1766 1 m ++; +1767 1 *(d+m) = 0; +1768 1 } +1769 +1770 // 12345 +1771 +1772 void Lc_int2str_5(U32 ui_in,char *d) +1773 { +1774 1 U8 m = 1;//,i; +1775 1 *(d+0) = ' '; +1776 1 if (ui_in >= ul2fun2[4])// 10,000 12345 +1777 1 { +1778 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(4));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1779 2 m ++; +1780 2 } +1781 1 else +1782 1 { +1783 2 *(d+m) = ' '; +1784 2 m ++; + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 30 + +1785 2 } +1786 1 +1787 1 +1788 1 if (ui_in >= ul2fun2[3])// 1,000 12345 +1789 1 { +1790 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(3));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1791 2 m ++; +1792 2 } +1793 1 else +1794 1 { +1795 2 *(d+m) = ' '; +1796 2 m ++; +1797 2 } +1798 1 +1799 1 if (ui_in >= ul2fun2[2])// 100 12345 +1800 1 { +1801 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(2));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1802 2 m ++; +1803 2 } +1804 1 else +1805 1 { +1806 2 *(d+m) = ' '; +1807 2 m ++; +1808 2 } +1809 1 +1810 1 if (ui_in >= ul2fun2[1])// 10 12345 +1811 1 { +1812 2 *(d+m) = 0x30 + Lc_WEI(ui_in,(1));// (unsigned char)((ui_in/ul2fun2[len-i])%10); +1813 2 m ++; +1814 2 } +1815 1 else +1816 1 { +1817 2 *(d+m) = ' '; +1818 2 m ++; +1819 2 } +1820 1 +1821 1 *(d+m) = 0x30 + Lc_WEI(ui_in,0); +1822 1 +1823 1 } +1824 +1825 /****************************************************************************** +1826 ** End Of File +1827 ******************************************************************************/ +1828 +*** WARNING C291 IN LINE 293 OF ..\source\clib\c_lib.c: not every exit path returns a value +*** WARNING C291 IN LINE 329 OF ..\source\clib\c_lib.c: not every exit path returns a value +*** WARNING C291 IN LINE 366 OF ..\source\clib\c_lib.c: not every exit path returns a value +*** WARNING C291 IN LINE 395 OF ..\source\clib\c_lib.c: not every exit path returns a value + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 7107 ---- + CONSTANT SIZE = 82 ---- + XDATA SIZE = 263 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- + C51 COMPILER V9.54 C_LIB 09/06/2024 11:24:47 PAGE 31 + +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/out/c_lib.obj b/out/c_lib.obj new file mode 100644 index 0000000..04fc8ca Binary files /dev/null and b/out/c_lib.obj differ diff --git a/out/debug_drv.lst b/out/debug_drv.lst new file mode 100644 index 0000000..cc42eb2 --- /dev/null +++ b/out/debug_drv.lst @@ -0,0 +1,457 @@ +C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE DEBUG_DRV +OBJECT MODULE PLACED IN ..\out\debug_drv.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\debug\debug_drv.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOI + -NTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;.. + -\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRIN + -T(..\out\debug_drv.lst) TABS(2) OBJECT(..\out\debug_drv.obj) + +line level source + + 1 /***************************************************************************** + 2 * debug_drv.c: debug app + 3 * + 4 * Copyright(C) 2013, cc + 5 * All rights reserved. + 6 * + 7 * History + 8 * 2013.05.24 ver 1.00 Prelimnary version, first Release + 9 * + 10 + 11 + 12 if(ts_s2b_debug.idle) + 13 { + 14 ts_s2b_debug.idle = 0; + 15 printf("\r\n O"); + 16 if(ts_s2b_debug.len > 0) + 17 { + 18 //// L1_uartD_sendArrayhex((U8 *)&ts_s2b_debug.t, 5); + 19 /// xxxx///提取协议 + 20 /// if(debgu) ts_s2b_debug.ok =1; + 21 + 22 printf("\r\n len = %d",(int)ts_s2b_debug.len); + 23 ts_s2b_debug.len = 0; + 24 } + 25 } + 26 + 27 + 28 ******************************************************************************/ + 29 + 30 #include "debug_drv.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 31 #include "msp_iicMx.h" + 32 #include "c_type51.h" + 33 #include "tpc_road.h" + 34 ///#include "bsp_lora_jx.h" + 35 ///#include "bsp_lora.h" + 36 + 37 #include "msp_eeprom.h" + 38 + 39 TS_P_debug *pd = NULL; + 40 TS_P_rs485 *pd485 = NULL; + 41 + 42 u8 L3_tpc_D2uart(u8 cmd,u8 num) + 43 { + 44 1 if(cmd == 0x0D) + 45 1 {////D2。。。。 透传给串口2的数据 + 46 2 + 47 2 if(2 == num)////发送D2 11 22 33的指令后 解析完D2,给串口2 发送11 22 33 + 48 2 { + 49 3 printf1("\r\n - >2: %D ",(int)ts_Urec[D_UART1].num); + 50 3 /// D_lora_wakeup(); + 51 3 /// L1_uart2_Array(&ts_Urec[D_UART1].sp[1], ts_Urec[D_UART1].num-1); + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 2 + + 52 3 L0_uartN_Arrayhex_withoutbuf(D_UART1,&ts_Urec[D_UART1].sp[1], ts_Urec[D_UART1].num-1); + 53 3 }else if(3 == num) + 54 2 { printfs("\r\n->3:"); + 55 3 ////L1_uart3_Array(&ts_Urec[D_UART1].sp[1], ts_Urec[D_UART1].num-1); + 56 3 }else if(4 == num) + 57 2 { printfs("\r\n->4:"); + 58 3 ////L1_uart4_Array(&ts_Urec[D_UART1].sp[1], ts_Urec[D_UART1].num-1); + 59 3 }else + 60 2 { + 61 3 printfs("\r\nmust in(D2,D3,D4):"); + 62 3 } + 63 2 return 0; + 64 2 } + 65 1 return 0; + 66 1 } + 67 + 68 ////通过debug串口 透传协议 + 69 #if 0 + u8 L3_tpc_hex(void) + { + u8 cmd=0, num=0; + cmd = D_uc_high(ts_Urec[D_UART1].sp[0]);////为485 调整 第一个 + num = D_uc_low(ts_Urec[D_UART1].sp[0]); + printf(" 1->cmd=%X num=%X len = %d ",(int)cmd,(int)num, (int)ts_Urec[D_UART1].num); + + ////debug协议使用串口1 故而再次简单解析 要求第一个字符必须为Fx + if(0x0F == cmd)///fx r1 r2 r3 r4 ocr + { + ///TS_P_debug + ///printfs("\r\n cmd = "); + ////pd = (TS_P_debug*)ts_Urec[D_UART1].sp; + L0_uartN_Arrayhex_withoutbuf(D_UART1,&ts_Urec[D_UART1].sp[0], ts_Urec[D_UART1].num);////(U8 *)&pd,错 + -的表达方式 pd就是地址 + if(num == 0x0e) + { + /// L3_tpc_FEdebug();return 0; + } + return 1; + } + if(L3_tpc_D2uart(cmd,num)) + { + return 1; + } + else + { + return 0; + } + + printfs("\r\n cmd error!!"); + return 0; + } + #else + 103 u8 L3_tpc_hex(void) + 104 { + 105 1 u8 filter = 0, slaveId = 0, cmd = 0; + 106 1 filter = ts_Urec[D_UART1].sp[0]; + 107 1 slaveId = ts_Urec[D_UART1].sp[1]; + 108 1 cmd = ts_Urec[D_UART1].sp[2]; + 109 1 //printf(" 1->filter=%X slaveId=%X cmd=%X len = %d ",(int)filter,(int)slaveId, (int)cmd, (int)ts_Urec[D_U + -ART1].num); + 110 1 + 111 1 ////debug协议使用串口1 故而再次简单解析 要求第一个字符必须为AA + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 3 + + 112 1 ///AA 02 10 00 02 A3 B4 6C + 113 1 if(0xAA == filter) + 114 1 { + 115 2 //L0_uartN_Arrayhex_withoutbuf(D_UART1,&ts_Urec[D_UART1].sp[0], ts_Urec[D_UART1].num); + 116 2 if(0x02 == slaveId) + 117 2 { + 118 3 // if(ocr) + 119 3 return 1; + 120 3 } + 121 2 } + 122 1 // printfs("\r\n cmd error!!"); + 123 1 return 0; + 124 1 } + 125 #endif + 126 + 127 + 128 ////启动透传指令 开关打开 可以模拟当前串口发送 + 129 vtype L2_debug_ONcomand(void) + 130 { + 131 1 if(1 == ts_Urec[D_UART1].debugok) + 132 1 { + 133 2 ts_Urec[D_UART1].debugok = 0;////解析协议 + 134 2 /// printf("\r\nw ts_Urec[D_UART1].max = %d num = %d",(int)ts_Urec[D_UART1].rmax,(int)ts_Urec[D_UART1].n + -um); + 135 2 // printf1("\r\ndebugok %2x",(int)ts_Urec[D_UART1].debugok); + 136 2 } + 137 1 + 138 1 if(1 == ts_Urec[D_UART1].ok) + 139 1 { + 140 2 ts_Urec[D_UART1].ok = 0;////解析协议 + 141 2 + 142 2 //// printf1("\r\nD_UART1 ok %d ",(int) ts_Urec[D_UART1].num); + 143 2 // D_LED1_REV(); + 144 2 + 145 2 pd485 = (TS_P_rs485 *)ts_Urecbuf.r1; + 146 2 + 147 2 /// L0_uartN_Arrayhex_withoutbuf(D_UART1,ts_Urecbuf.r1, ts_Urec[D_UART1].num); + 148 2 /// 串口1的协议分两类 1类是 Fx开头的针对外设x的标准debug协议;例如FD开头是 + -统debug Fc是iic调试设备 + 149 2 /// 一类是Dx开头的对串口x透传协议 ////D2。。。。 透传给串口2的数据 + 150 2 return L3_tpc_hex();/// + 151 2 /// return 0; + 152 2 } + 153 1 + 154 1 /********* + 155 1 if(1 == ts_Urec[D_UART2].ok) + 156 1 { ts_Urec[D_UART2].ok = 0;////收到一帧数据 + 157 1 printf("\r\nUART2:rec: "); + 158 1 ///sprintf(," %s ",ts_Urecbuf.r2); + 159 1 //pd = (TS_P_debug*)ts_Urecbuf.r2;//// + 160 1 //L1_uartD_sendArrayhex((char *)pd, ts_Urec[D_UART2].num); + 161 1 L1_uartD_Arrayhex(ts_Urecbuf.r2, ts_Urec[D_UART2].num); + 162 1 Lc_buf_copy_uc(ts_Urecbuf.r5,ts_Urecbuf.r2,ts_Urec[D_UART2].num); + 163 1 return L3_tpc_lora(ts_Urecbuf.r5);/// + 164 1 } + 165 1 *********/ + 166 1 + 167 1 #ifdef D_USE_UART3 + if(1 == ts_Urec[D_UART3].ok) + { ts_Urec[D_UART3].ok = 0;////解析协议 + printfs("\r\nD_UART3 ok "); + + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 4 + + //pd = (TS_P_debug*)ts_Urecbuf.r2;//// + //L1_uartD_sendArrayhex((char *)pd, ts_Urec[D_UART2].num); + L1_uartD_Arrayhex(ts_Urecbuf.r3, ts_Urec[D_UART3].num); + } + #else + 177 1 #warning "CC: without uart3" +*** WARNING C320 IN LINE 177 OF ..\source\debug\debug_drv.c: "CC: without uart3" + 178 1 + 179 1 #endif///D_USE_UART33 + 180 1 + 181 1 #ifdef D_USE_UART4 + if(1 == ts_Urec[D_UART4].ok) + { ts_Urec[D_UART4].ok = 0;////解析协议 + printfs("\r\nD_UART3 ok "); + + //pd = (TS_P_debug*)ts_Urecbuf.r2;//// + //L1_uartD_sendArrayhex((char *)pd, ts_Urec[D_UART2].num); + L1_uartD_Arrayhex(ts_Urecbuf.r4, ts_Urec[D_UART4].num); + } + #else + 191 1 #warning "CC: without uart4" +*** WARNING C320 IN LINE 191 OF ..\source\debug\debug_drv.c: "CC: without uart4" + 192 1 #endif///D_USE_UART4 + 193 1 return 0; + 194 1 } + 195 + 196 void L3_test_ONdebug(u8 filter)//// ON listen function + 197 { + 198 1 if(filter == pd->filter) + 199 1 {///filter num d1 d2 d3 ....dn + 200 2 //// FD 08 11 22 33 44 55 66 77 88 + 201 2 printfs("\r\nDdebug:FD R1 R2 R3 R4 ocr FD->"); + 202 2 + 203 2 switch (pd->ocr) + 204 2 { case 0x11:////Fd 11 22 33 44 55 66 11 + 205 3 + 206 3 if(pd->R6 == 0x66) + 207 3 {///gb2312 + 208 4 printf(" \r\n \r\n准备烧写,确认主机版本+22M晶振+监测波特率921600 后使用download \ + -r\n "); + 209 4 printf(" \r\n \r\n 3秒内点击 下载按钮 \r\n "); + 210 4 + 211 4 Lc_delay_ms(1000); + 212 4 printf(" \r\n3\r\n "); + 213 4 Lc_delay_ms(1000); + 214 4 printf(" \r\n2\r\n "); + 215 4 Lc_delay_ms(1000); + 216 4 printf(" \r\n1\r\n "); + 217 4 L0_IAP_enter_ISP();///BITN_1(IAP_CONTR, BITN6|BITN5); + 218 4 }else + 219 3 { + 220 4 printf(" \r\n烧写命令错误\r\n ");///gb2312 + 221 4 } + 222 3 break; + 223 3 case 0x22: + 224 3 ///FD 13 01 33 44 50 /// P13 =1 + 225 3 ///FX R1 R2 R3 R4 ocr + 226 3 ///FD R1 R2 R3 R4 ocr + 227 3 ///FD ch adr reg 12 + 228 3 ///FD 01 AE 09 44 22 读取 iic第一通道的01 | 地址AE的设备 | 寄存器09 + 229 3 pd->ocr = L2_IICMx_Read1Reg1D(pd->R1,pd->R2,pd->R3); + 230 3 printf4("22 ch:(%2X)-%2X S %2X=%2X\r\n",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->ocr); + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 5 + + 231 3 break; + 232 3 case 0x23: + 233 3 ///FD 13 01 33 50 /// P13 =1 + 234 3 ///FX R1 R2 R3 R4 ocr + 235 3 ///FX R1 R2 R3 R4 ocr + 236 3 ///FD ch adr reg dat 12 + 237 3 ///FD 01 AE 09 04 23 iic第一通道的01 | 地址AE的设备 | 寄存器09 写入 04 + 238 3 printf4("23 ch:(%2X)-%2X W %2X=%2X\r\n",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->R4); + 239 3 L2_IICMx_WriteCmd(pd->R1,pd->R2,pd->R3,pd->R4); + 240 3 break; + 241 3 + 242 3 + 243 3 default: + 244 3 printfs(" pp error\r\n "); + 245 3 + 246 3 break; + 247 3 }; + 248 2 + 249 2 printfs("333"); + 250 2 } + 251 1 } + 252 + 253 ///#define D_keil_sim + 254 #ifdef D_keil_sim + void UartInit(void) //9600bps@11.0592MHz + { + SCON = 0x50; //8位数�?可变波特�? + AUXR |= 0x01; //串口1选择定时�?为波特率发生�? + AUXR |= 0x04; //定时�?时钟为Fosc,�?T + T2L = 0xE0; //设定定时初� �? + T2H = 0xFE; //设定定时初�? + AUXR |= 0x10; //启动定时�? + } + + void L3_debug_drv_init(void) + { + + Ts_debug.uxrev = D_ts_uartX_rev; + + Ts_debug.td = (TS_P_debug *)Ts_debug.uxrev->buf; + Ts_debug.ok = &Ts_debug.uxrev->debugok; + UartInit(); + + } + + + char putchar(char ch) + { + SBUF = ch; + while(TI == 0); + TI = 0; + return ch; + } + + #else + 286 #warning "CC: putchar ok" +*** WARNING C320 IN LINE 286 OF ..\source\debug\debug_drv.c: "CC: putchar ok" + 287 + 288 void L3_debug_drv_init(void) + 289 { + 290 1 /// D_s2b_road1_init(); + 291 1 } + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 6 + + 292 + 293 char putchar(char ch) + 294 { + 295 1 /* Place your implementation of fputc here */ + 296 1 /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */ + 297 1 /// HAL_UART_Transmit_IT(&huart4, (uint8_t *)&ch, 1); + 298 1 L1_uartD_uc(ch); + 299 1 return ch; + 300 1 ///SBUF= ch; + 301 1 /// while(t) + 302 1 /// while(!TI); + 303 1 // TI = 0; + 304 1 /// return (SBUF = ch); + 305 1 } + 306 #endif ///#ifdef D_keil_sim + 307 + 308 #if 0 + + void L3_debug_drv_init(void) + { + L0pf_send_uc = L0_uart0_uc; + Lc_print("\r\n debug shell init:\t"); + /// io ���õı�׼д�� + + Lc_print("Mode:"); + #ifdef D_debug_time + Lc_print(" debug"); + #else + //D_debug_time_using + Lc_print(" normal"); + #endif + } + + + #ifdef D_debug_sim + + fff + void L3_debug_cycle(void) + { + INTERRUPT_UART(); + TIMER0_IRQHandler(); + + + + } + #else + + #endif + void L3_test_debug(u8 filter) + { + if(filter == Ts_debug.td->filter) + {///filter num d1 d2 d3 ....dn + //// FD 08 11 22 33 44 55 66 77 88 + L1_uartD_sendArrayhex(Ts_debug.td,Ts_debug.td->R1); + } + } + + void L3_iicx_debug(u8 filter) + { + if(filter == Ts_debug.td->filter) + { + if(0x10 == Ts_debug.td->ocr)///read reg1 num 读取reg1地址中的num个数�? + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 7 + + { + + //NUM: 0 1 2 3 4 + // Fx R1 R2 R3 ocr + // sla reg1 num + /// f1 32 15 06 10 + + //NUM: 0 1 2 3 4 + // Fx R1 R2 R3 ocr + // sla reg1 num + /// f1 32 0x28 06 10 + /// f1 32 0x28 06 10 + /// 28 + /// 0010 1000 28 + /// 1010 1000 a8 + L2_IICM1_ReadReg(Ts_debug.td->R1,Ts_debug.td->R2,Ts_debug.d,Ts_debug.td->R3); + ///printf("\r\n 0x%2x 0x%2x\r\n",(int)Ts_debug.d[0],(int)Ts_debug.d[1]); + L1_uartD_sendArrayhex(Ts_debug.d,Ts_debug.td->R3); + /// printf("\r\n 0x%2x\r\n",(int)Ts_debug.td->ocr); + } + else if(0x11 == Ts_debug.td->ocr) + { + L2_IICM1_ReadReg(Ts_debug.td->R1,Ts_debug.td->R2,Ts_debug.d,Ts_debug.td->R3); + //printf("\r\n 0x%2x 0x%2x\r\n",(int)Ts_debug.d[0],(int)Ts_debug.d[1]); + //L1_uartD_sendArrayhex(Ts_debug.d,Ts_debug.td->R3); + printf("\r\n 0x%2x 0x%2x\r\n",(int)Ts_debug.d[0],(int)Ts_debug.d[1]); + } + else if(0x12 == Ts_debug.td->ocr) + { + } + else + { + + } + } + } + + + + + #else + 395 + 396 + 397 + 398 #endif + 399 + 400 + 401 + 402 /****************************************************************************** + 403 ** End Of File + 404 ******************************************************************************/ + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 969 ---- + CONSTANT SIZE = 333 ---- + XDATA SIZE = 13 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 11:24:47 PAGE 8 + + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/out/debug_drv.obj b/out/debug_drv.obj new file mode 100644 index 0000000..a2d3225 Binary files /dev/null and b/out/debug_drv.obj differ diff --git a/out/main.lst b/out/main.lst new file mode 100644 index 0000000..c0c5f93 --- /dev/null +++ b/out/main.lst @@ -0,0 +1,166 @@ +C51 COMPILER V9.54 MAIN 09/06/2024 11:24:44 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN ..\out\main.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\app\main.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINTPROMO + -TE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\source + -\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT(..\ou + -t\main.lst) TABS(2) OBJECT(..\out\main.obj) + +line level source + + 1 ////////////////////////////////////////////////////////////////////////// + 2 /// COPYRIGHT NOTICE + 3 /// Copyright (c) 2023 CCSENS + 4 /// All rights reserved. + 5 /// + 6 /// @file main.c + 7 /// @brief main app + 8 /// + 9 + 10 /// 下面是一个含有两个参数的函数的注释说明(简述) + 11 /// + 12 /// 这里写该函数的详述信息 + 13 /// @param a 被测试的变量(param描述参数) + 14 /// @param s 指向描述测试信息的字符串 + 15 /// @return 测试结果(return描述返回值) + 16 /// @see Test() (本函数参考其它的相关的函数,这里作一个链接) + 17 /// @note (note描述需要注意的问题) + 18 + 19 //=============================================== + 20 //寄存器头文件 + 21 //=============================================== + 22 + 23 /// 20221023_175541 CCmodify + 24 + 25 #include "main.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 26 #include "asp_lowpower.h" + 27 + 28 + 29 void L0_RTC_init(void) + 30 { + 31 1 P_SW2 = 0x80; + 32 1 // XOSCCR =0; + 33 1 ///HIRCCR = 0; + 34 1 IRC32KCR = 0x80; //启动内部32K IRC + 35 1 while (!(IRC32KCR & 1)); //等待时钟稳定 + 36 1 CLKDIV = 0x00; //时钟不分频 + 37 1 /// CLKSEL = 0x03; //选择内部32K + 38 1 + 39 1 RTCCFG = 3; + 40 1 ///RTCCFG |= 0x02; //选择内部 32K 作为 RTC 时钟源 RTCCFG | = 0x02; / / Select internal 32K as RT + -C, clock source + 41 1 RTCCR = 1; + 42 1 printf3("\r\n %X %X:%X",(int)(DAY), (int)(MIN), (int)(SEC)); + 43 1 + 44 1 D_stdIO_P2(BITN4);D_P24_REV(); + 45 1 Lc_delay_ms(500); + 46 1 + 47 1 printf3("\r\n %X %X:%X",(int)(DAY), (int)(MIN), (int)(SEC)); + 48 1 Lc_delay_ms(200);D_stdIO_P2(BITN4);D_P24_REV(); + 49 1 Lc_delay_ms(500); + 50 1 printf3("\r\n %X %X:%X",(int)(DAY), (int)(MIN), (int)(SEC)); + C51 COMPILER V9.54 MAIN 09/06/2024 11:24:44 PAGE 2 + + 51 1 Lc_delay_ms(200);D_stdIO_P2(BITN4);D_P24_REV(); + 52 1 Lc_delay_ms(500); + 53 1 printf3("\r\n %X %X:%X",(int)(DAY), (int)(MIN), (int)(SEC)); + 54 1 Lc_delay_ms(200); + 55 1 } + 56 + 57 void L0_main_initled(void) + 58 { + 59 1 D_LED1_OFF(); + 60 1 + 61 1 TTSS_run_times(6) + 62 1 { + 63 2 D_LED1_REV(); + 64 2 Lc_delay_ms(300); + 65 2 } + 66 1 } + 67 + 68 void L0_main_init(void) + 69 { + 70 1 int r = 0; + 71 1 Lc_delay_ms(200); + 72 1 L0_main_initled(); + 73 1 CLKDIV = 0;////不分频,使用focs + 74 1 + 75 1 L0_uart1_open(); + 76 1 L0_uart2_open(); + 77 1 + 78 1 L3_debug_drv_init(); + 79 1 L1_task_tick_init(); + 80 1 L0_timer0_Init(); + 81 1 ET0 = 1; + 82 1 + 83 1 printf1("\r\nD_sys_MainFre %ld",D_sys_MainFre); + 84 1 + 85 1 r = L3_S_init(); + 86 1 printf1("\r\nL3_S_init %d",r); + 87 1 } + 88 + 89 //=============================================== + 90 //主函数 + 91 //=============================================== + 92 void main(void) + 93 { + 94 1 u16 a= 0; + 95 1 char d[9]={0xab}; + 96 1 + 97 1 L0_main_init(); + 98 1 L3_task_weight_init(); + 99 1 + 100 1 TTSS_run_every_init(s_nos_tick.stamp,10); + 101 1 + 102 1 printfs("\r\3 main while13\r\n"); + 103 1 + 104 1 while(1) + 105 1 { + 106 2 if(1 == s_nos_tick.t1s_heartbeat)/// + 107 2 { + 108 3 s_nos_tick.t1s_heartbeat = 0; + 109 3 L1_uartD_uc('.'); + 110 3 // L0_uart2_uc('Q'); + 111 3 // L0_uart2_us(0x1234); + 112 3 D_LED1_REV(); + C51 COMPILER V9.54 MAIN 09/06/2024 11:24:44 PAGE 3 + + 113 3 } + 114 2 + 115 2 // TTSS_run_every(s_nos_tick.stamp,40) + 116 2 // D_LED1_REV(); + 117 2 // L4_weight_out(); + 118 2 // ///55 0D 0C 90 F5 77 FF 52 80 00 00 00 33 + 119 2 // TTSS_run_every_end + 120 2 + 121 2 if(L2_debug_ONcomand()) + 122 2 { + 123 3 L3_weight_ONdebug(D_cmd_filter_weight);///fe xx xx/// + 124 3 } + 125 2 L3_task_weight_handler(&tst_weight); + 126 2 } + 127 1 } + 128 + 129 + 130 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 657 ---- + CONSTANT SIZE = 74 ---- + XDATA SIZE = 13 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/main.obj b/out/main.obj new file mode 100644 index 0000000..fbfb5c3 Binary files /dev/null and b/out/main.obj differ diff --git a/out/msp_adc.lst b/out/msp_adc.lst new file mode 100644 index 0000000..3520483 --- /dev/null +++ b/out/msp_adc.lst @@ -0,0 +1,281 @@ +C51 COMPILER V9.54 MSP_ADC 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MSP_ADC +OBJECT MODULE PLACED IN ..\out\msp_adc.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\msp\msp_adc.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINTPR + -OMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\sou + -rce\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT(.. + -\out\msp_adc.lst) TABS(2) OBJECT(..\out\msp_adc.obj) + +line level source + + 1 #include "msp_adc.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 #include "debug_drv.h" + 3 #include "stc_8_delay.h" + 4 + 5 + 6 /********* + 7 1、给 MCU 的 内部 ADC 模块电源打开后,需等待约 1ms, 等 MCU 内部的 ADC 电源稳定 + -再让 ADC 工作; + 8 2、适当加长对外部信号的采样时间,就是对 ADC 内部采样保持电容的充电或放电 + -间,时间够, 内部才能和外部电势相等。 + 9 19.1.1 ADC 控制寄存器(ADC_CONTR),PWM 触发 ADC 控制 + 10 符号 地址 B7 B6 B5 B4 B3 B2 B1 B0 + 11 ADC_CONTR BCH ADC_POWER ADC_START ADC_FLAG ADC_EPWMT ADC_CHS[3:0] + 12 ADC_POWER:ADC + 13 电源控制位 0: + 14 关闭 ADC 电源 1:打开 ADC 电源。 + 15 建议进入空闲模式和掉电模式前将 ADC 电源关闭,以降低功耗 + 16 特别注意: 1、给 MCU 的 内部 ADC 模块电源打开后,需等待约 1ms, 等 MCU 内部的 ADC + - 电源稳定 后再让 ADC 工作; + 17 2、适当加长对外部信号的采样时间,就是对 ADC 内部采样保持电容的充电或放电 + -间,时间够内部才能和外部电势相等。 + 18 ADC_START:ADC 转换启动控制位。写入 1 后开始 ADC 转换,转换完成后硬件自动将此 + -清零。 + 19 0:无影响。即使 ADC 已经开始转换工作,写 0 也不会停止A/D 转换。 + 20 1:开始 ADC 转换,转换完成后硬件自动将此位清零。 + 21 ADC_FLAG:ADC 转换结束标志位。当 ADC 完成一次转换后,硬件会自动将此位置 1, + 22 并向 CPU 提出 中断请求。此标志位必须软件清零。 + 23 + 24 层次 >逻辑 >数据流 >测试 >工具 > 代码 + 25 套路(方法论)才是最主要的 + 26 12位 800K + 27 反推 + 28 22M / 64(采样的总时间)= + 29 + 30 *********/ + 31 + 32 + 33 void L0_ADC_init (unsigned char onf) + 34 { + 35 1 + 36 1 if (onf) + 37 1 { + 38 2 ADC_CONTR = 0; + 39 2 D_ADC_POWER_ON(); + 40 2 /// + 41 2 D_ADC_average(); + 42 2 D_EN_EREG(); + 43 2 ////500us B0000_1111 1msB0000_1111 + 44 2 ADCTIM = B1010_0000|B0000_1111;///CSSETUP:ADC 通道选择时间控制 CSHOLD[1:0]:ADC 通道选择 + -保持时间控制//22M + 45 2 ///SMPDUTY[4:0]:ADC 模拟信号采样时间控制 Tduty(注意:SMPDUTY 一定不能设置 + C51 COMPILER V9.54 MSP_ADC 09/06/2024 11:24:46 PAGE 2 + + -于 01010B) + 46 2 ADCCFG = B0010_0000|4;///SPEED[3:0]:设置 ADC 工作时钟频率{FADC=SYSclk/2/(SPEED+1)} + 47 2 + 48 2 + 49 2 Lc_delay_ms(1); + 50 2 /// D_ADC_CH(D_ADC_CH_1_19); + 51 2 // D_ADC_START(); + 52 2 + 53 2 // L1_ADC_Readx(D_ADC_CH_1_19); + 54 2 + 55 2 + 56 2 printfs("\r\n L0_ADC_init on"); + 57 2 + 58 2 } + 59 1 else + 60 1 { + 61 2 + 62 2 } + 63 1 } + 64 + 65 + 66 + 67 + 68 /// L1_ADC_Readx(D_ADC_CH_1_19); + 69 + 70 U16 L1_ADC_Readx(u8 CHA) + 71 { + 72 1 vU16 adc_data; + 73 1 vU32 overtimes; + 74 1 int *BGV; //内部1.19V参考信号源值存放在idata中 + 75 1 //idata的EFH地址存放高字节 + 76 1 //idata的F0H地址存放低字节 + 77 1 //电压单位为毫伏(mV) + 78 1 BGV = (int idata *)0xef; + 79 1 + 80 1 /// vcc = (int)(1024L * *BGV / res); //(10位ADC算法)计算VREF管脚电压,即电池电压 + 81 1 // vcc = (int)(4096L * *BGV / res); //(12位ADC算法)计算VREF管脚电压,即电池电压 + 82 1 //注意,此电压的单位为毫伏(mV) + 83 1 + 84 1 + 85 1 D_ADC_CH(CHA); + 86 1 D_ADC_START(); + 87 1 NOP2(); + 88 1 ///BITN_S(ADCEXCFG,) + 89 1 while(0 == D_ADC_OVER()) + 90 1 { + 91 2 if(overtimes++>600000)//// + 92 2 { + 93 3 printf2("\r\n !3A%x W%x\t",(int)ADC_CONTR,(int)CHA); + 94 3 return 0;/// !3Ac7 W7 291 + 95 3 } + 96 2 } + 97 1 D_ADC_CLEARFLAG(); + 98 1 + 99 1 adc_data = ADC_RES; + 100 1 adc_data <<= 8; + 101 1 adc_data |= ADC_RESL; + 102 1 ///adc_data >>= 3; + 103 1 //// r = adc_data; + 104 1 return adc_data; + 105 1 } + 106 + C51 COMPILER V9.54 MSP_ADC 09/06/2024 11:24:46 PAGE 3 + + 107 #if 0 + + U16 L1_ADC_Read(u8 CHA) + { + vU16 adc_data; + ADC_CONTR &=0xF8; + ADC_CONTR |=0x40;//启动AD转换 + //ADC_CONTR |= CHA; + CHA &= 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位) + ADC_CONTR = (ADC_CONTR & 0xF0) | CHA; + NOP(); + NOP(); + while (!(ADC_CONTR & 0x20)); //查询ADC完成标志 + ADC_CONTR &= ~0x20; //清标志 + adc_data = ADC_RES; + adc_data <<= 8; + adc_data |= ADC_RESL; + //adc_data = adc_data<<2; + //adc_data = ADC_RESL & 0X03; + //adc_data = adc_data | adc_data; + ///L0_uart1_sendstr("ADC:"); + ///L0_uart1_ushex(adc_data); + ///L0_uart1_0d0a(); + return (adc_data); //返回A/D转换结果(8位) + + } + + ///D_cmd_filter_adc L3_ADC_debug(D_cmd_filter_adc) + + + void L3_ADC_debug(u8 filter) + { + u8 i; + if(filter == Ts_debug.td->filter) + {///filter num d1 d2 d3 ....dn + //// FD 08 11 22 33 44 55 66 77 88 + L1_uartD_uchexArray(Ts_debug.td,Ts_debug.td->R1); + if(0x10 == Ts_debug.td->ocr)///read 读,判断哪个adc读取 + {//fa 05 f1 33 10 + //NUM: 0 1 2 3 4 + // Fx R1 R2 R3 ocr + // sla reg1 num + /// f1 32 15 06 10 + //printf("\r\n ch(%d)=",(int)Ts_debug.td->R2); + for(i = 0xf1;i <= 0xf8;i++) + { + Ts_debug.au16 = L1_ADC_Read_PT(i); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc1 + } + /* + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf2); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc2 + + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf3); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc3 + + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf4); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc4 + + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf5 ); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc5 + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf6); + C51 COMPILER V9.54 MSP_ADC 09/06/2024 11:24:46 PAGE 4 + + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc6 + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf7); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc7 + Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R2 = 0xf8); + printf(" %XH %d ",(int)Ts_debug.au16,(int)Ts_debug.au16); //adc8 + */ + } + else if(0x11 == Ts_debug.td->ocr) + { + //printf("\r\n ch(%d)=",(int)Ts_debug.td->R1); + //Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R1); + } + else if(0x12 == Ts_debug.td->ocr) + { + } + else + { + //printf"(\r\n ch(%d)=",(int)Ts_debug.td->R1); + //Ts_debug.au16 = L1_ADC_Read_PT(Ts_debug.td->R1); + } + } + } + + U16 L1_ADC_Read_VBAT (unsigned char CHA)//CHA通道号 + { + U16 adc_data; + #if 0 + U8 AD_FIN=0; //存储A/D转换标志 + //CHA &= 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位) + ADC_CONTR = 0x40; //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置 + Lc_delay_nop(1); + //ADC_CONTR |= CHA; //选择A/D当前通道 + //Lc_delay_nop(1); + ADC_CONTR |= 0x80; //启动A/D电源 + Lc_delay_ms(1); //使输入电压达到稳定(1ms即可) + ADC_CFG = 0x20; + Lc_delay_nop(1); + CHA &= 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位) + //ADC_CONTR |= CHA; //选择A/D当前通道 + ADC_CONTR = (ADC_CONTR & 0xF0) | CHA; + Lc_delay_nop(1); + ADC_CONTR |= 0x40; //启动AD转换 + NOP(); + NOP(); + while (!(ADC_CONTR & 0x20)); //查询ADC完成标志 + ADC_CONTR &= ~0x20; //清完成标志 + //P2 = ADC_RES; //读取ADC结果 + #endif + ADC_CONTR &=0xF8; + ADC_CONTR |=0x40;//启动AD转换 + //ADC_CONTR |= CHA; + ADC_CONTR = (ADC_CONTR & 0xF0) | CHA; + NOP(); + NOP(); + while (!(ADC_CONTR & 0x20)); //查询ADC完成标志 + ADC_CONTR &= ~0x20; //清标志 + adc_data = ADC_RES; + adc_data <<= 8; + adc_data |= ADC_RESL; + //adc_data = adc_data<<2; + //adc_data = ADC_RESL & 0X03; + //adc_data = adc_data | adc_data; + C51 COMPILER V9.54 MSP_ADC 09/06/2024 11:24:46 PAGE 5 + + //L0_uart0_ushex(adc_data); + //L0_uart0_0d0a(); + return (adc_data); //返回A/D转换结果(8位) + } + #endif + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 255 ---- + CONSTANT SIZE = 33 ---- + XDATA SIZE = 11 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/msp_adc.obj b/out/msp_adc.obj new file mode 100644 index 0000000..de566a2 Binary files /dev/null and b/out/msp_adc.obj differ diff --git a/out/msp_eeprom.lst b/out/msp_eeprom.lst new file mode 100644 index 0000000..f9bd979 --- /dev/null +++ b/out/msp_eeprom.lst @@ -0,0 +1,280 @@ +C51 COMPILER V9.54 MSP_EEPROM 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MSP_EEPROM +OBJECT MODULE PLACED IN ..\out\msp_eeprom.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\msp\msp_eeprom.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN + -TPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\ + -source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT + -(..\out\msp_eeprom.lst) TABS(2) OBJECT(..\out\msp_eeprom.obj) + +line level source + + 1 //////////////////////////////////////////////////////////////////////////// + 2 ///@copyright Copyright (c) 2018, 传控科技 All rights reserved. + 3 ///------------------------------------------------------------------------- + 4 /// @file msp_eeprom.c + 5 /// @brief msp @ driver config + 6 ///------------------------------------------------------------------------- + 7 /// @version 1.0 + 8 /// @author CC + 9 /// @date 20190106 + 10 /// @note cc_AS_stc02 由stc-isp v6.0860 + 11 ////////////////////////////////////////////////////////////////////////////// + 12 + 13 ///cc 2023/04/07--8:44:38 + 14 /* + 15 EEPROM 的写操作只能将字节中的 1 写为 0,当需要将字节中的 0 写为 1,则必须执 + -扇区 擦除操作。 + 16 EEPROM 的读/写操作是以 1 字节为单位进行,而 EEPROM 擦除操作是以 1 扇区(512 字 + -) 为单位进行, + 17 在执行擦除操作时,如果目标扇区中有需要保留的数据,则必须预先将这些数据 + -取到 RAM 中暂存, + 18 待擦除完成后再将保存的数据和需要更新的数据一起再写回 + 19 EEPROM Write operation can only write 1 in the byte as 0, when you need to write 0 in the byte as 1, + 20 you must be sector erased. EEPROM Read / write operation is conducted in 1 byte, + 21 while EEPROM, erasure operation is conducted in 1 sector (512 bytes). During the wipe operation, + 22 if the data in the target sector, the data must be read in the RAM in advance, + 23 and the saved data will be written back together with the data to be updated + 24 + 25 fixme:注意时钟和flash 相关 同时关注掉电和容错 + 26 + 27 */ + 28 + 29 #include "msp_eeprom.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 30 + 31 #include "debug_drv.h" + 32 + 33 #if(TYPE_MCU == TYPE_MCU_STC_8A || TYPE_MCU == TYPE_MCU_STC_8F) + xxx + #define WT_30M 0x80 + #define WT_24M 0x81 + #define WT_20M 0x82 + #define WT_12M 0x83 + #define WT_6M 0x84 + #define WT_3M 0x85 + #define WT_2M 0x86 + #define WT_1M 0x87 + + sdfasdfasdf + void L0_Iap_Idle() + { + IAP_CONTR = 0; //关闭IAP功能 + IAP_CMD = 0; //清除命令寄存器 + C51 COMPILER V9.54 MSP_EEPROM 09/06/2024 11:24:46 PAGE 2 + + IAP_TRIG = 0; //清除触发寄存器 + IAP_ADDRH = 0x80; //将地址设置到非IAP区域 + IAP_ADDRL = 0; + } + + char L0_Iap_Read(vU16 addr) + { + char dat; + + IAP_CONTR = WT_12M; //使能IAP + IAP_CMD = 1; //设置IAP读命令 + IAP_ADDRL = addr; //设置IAP低地址 + IAP_ADDRH = addr >> 8; //设置IAP高地址 + IAP_TRIG = 0x5a; //写触发命令(0x5a) + IAP_TRIG = 0xa5; //写触发命令(0xa5) + _nop_(); + dat = IAP_DATA; //读IAP数据 + L0_Iap_Idle(); //关闭IAP功能 + + return dat; + } + + void L0_Iap_Program(vU16 addr, char dat) + { + IAP_CONTR = WT_12M; //使能IAP + IAP_CMD = 2; //设置IAP写命令 + IAP_ADDRL = addr; //设置IAP低地址 + IAP_ADDRH = addr >> 8; //设置IAP高地址 + IAP_DATA = dat; //写IAP数据 + IAP_TRIG = 0x5a; //写触发命令(0x5a) + IAP_TRIG = 0xa5; //写触发命令(0xa5) + _nop_(); + L0_Iap_Idle(); //关闭IAP功能 + } + + ///每个扇区512字节 + ///指定地址可以为当前扇区内的任意地址,都会完整擦除当前扇区 + void L0_Iap_Erase(vU16 addr) + { + IAP_CONTR = WT_12M; //使能IAP + IAP_CMD = 3; //设置IAP擦除命令 + IAP_ADDRL = addr; //设置IAP低地址 + IAP_ADDRH = addr >> 8; //设置IAP高地址 + IAP_TRIG = 0x5a; //写触发命令(0x5a) + IAP_TRIG = 0xa5; //写触发命令(0xa5) + _nop_(); // + L0_Iap_Idle(); //关闭IAP功能 + } + + #elif (TYPE_MCU == TYPE_MCU_STC_8G || TYPE_MCU == TYPE_MCU_STC_8H) + 99 void L0_Iap_Idle() + 100 { + 101 1 IAP_CONTR = 0; //关闭IAP功能 + 102 1 IAP_CMD = 0; //清除命令寄存器 + 103 1 IAP_TRIG = 0; //清除触发寄存器 + 104 1 IAP_ADDRH = 0x80; //将地址设置到非IAP区域 + 105 1 IAP_ADDRL = 0; + 106 1 } + 107 + 108 char L0_Iap_Read(vU16 addr) + 109 { + 110 1 char dat; + C51 COMPILER V9.54 MSP_EEPROM 09/06/2024 11:24:46 PAGE 3 + + 111 1 + 112 1 IAP_CONTR = 0x80; //使能IAP + 113 1 IAP_TPS = 12; + 114 1 IAP_CMD = 1; //设置IAP读命令 + 115 1 IAP_ADDRL = addr; //设置IAP低地址 + 116 1 IAP_ADDRH = addr >> 8; //设置IAP高地址 + 117 1 IAP_TRIG = 0x5a; //写触发命令(0x5a) + 118 1 IAP_TRIG = 0xa5; //写触发命令(0xa5) + 119 1 _nop_(); + 120 1 dat = IAP_DATA; //读IAP数据 + 121 1 L0_Iap_Idle(); //关闭IAP功能 + 122 1 + 123 1 return dat; + 124 1 } + 125 + 126 void L0_Iap_Program(vU16 addr, char dat) + 127 { + 128 1 IAP_CONTR = 0x80; //使能IAP + 129 1 IAP_TPS = 12; //设置擦除等待参数 12MHz + 130 1 IAP_CMD = 2; //设置IAP写命令 + 131 1 IAP_ADDRL = addr; //设置IAP低地址 + 132 1 IAP_ADDRH = addr >> 8; //设置IAP高地址 + 133 1 IAP_DATA = dat; //写IAP数据 + 134 1 IAP_TRIG = 0x5a; //写触发命令(0x5a) + 135 1 IAP_TRIG = 0xa5; //写触发命令(0xa5) + 136 1 _nop_(); + 137 1 L0_Iap_Idle(); //关闭IAP功能 + 138 1 } + 139 + 140 ///每个扇区512字节 + 141 ///指定地址可以为当前扇区内的任意地址,都会完整擦除当前扇区 + 142 void L0_Iap_Erase(vU16 addr) + 143 { + 144 1 IAP_CONTR = 0x80; //使能IAP + 145 1 IAP_TPS = 12; //设置擦除等待参数 12MHz + 146 1 IAP_CMD = 3; //设置IAP擦除命令 + 147 1 IAP_ADDRL = addr; //设置IAP低地址 + 148 1 IAP_ADDRH = addr >> 8; //设置IAP高地址 + 149 1 IAP_TRIG = 0x5a; //写触发命令(0x5a) + 150 1 IAP_TRIG = 0xa5; //写触发命令(0xa5) + 151 1 _nop_(); // + 152 1 L0_Iap_Idle(); //关闭IAP功能 + 153 1 } + 154 #endif + 155 + 156 + 157 void L0_Iap_Program_array(vU16 addr,U8 *buf,U8 len) + 158 { + 159 1 U8 i = 0; + 160 1 L0_Iap_Erase(addr);/////fixme: 需要和addr配合好 一次就擦除512字节 + 161 1 for(i=0;icmd) + 213 { + 214 //Ae 03 03 04 00 + 215 //xx 03 R2 R3 xx + 216 case 4: + 217 L0_Iap_Erase(uf_ee_add.us); + 218 break; + 219 case 5: + 220 L0_Iap_Program(uf_ee_add.us,p->R2); + 221 break; + 222 case 6: + 223 L0_uart0_uc(L0_Iap_Read(uf_ee_add.us)); + 224 break; + 225 case 7:///选择地址 + 226 uf_ee_add.BYTE2.H = p->R2; //h + 227 uf_ee_add.BYTE2.L = p->R3; //L + 228 break; + 229 default: + 230 break; + 231 }; + 232 } + 233 + 234 + C51 COMPILER V9.54 MSP_EEPROM 09/06/2024 11:24:46 PAGE 5 + + 235 ****************************************************/ + 236 + 237 + 238 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 390 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 22 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/msp_eeprom.obj b/out/msp_eeprom.obj new file mode 100644 index 0000000..903658b Binary files /dev/null and b/out/msp_eeprom.obj differ diff --git a/out/msp_iicMx.lst b/out/msp_iicMx.lst new file mode 100644 index 0000000..2bf26f9 --- /dev/null +++ b/out/msp_iicMx.lst @@ -0,0 +1,885 @@ +C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MSP_IICMX +OBJECT MODULE PLACED IN ..\out\msp_iicMx.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\msp\msp_iicMx.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINT + -PROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\s + -ource\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT( + -..\out\msp_iicMx.lst) TABS(2) OBJECT(..\out\msp_iicMx.obj) + +line level source + + 1 ////////////////////////////////////////////////////////////////////////// + 2 /// COPYRIGHT NOTICE + 3 /// Copyright (c) 2023 CCSENS + 4 /// All rights reserved. + 5 /// + 6 /// @file iic_sim + 7 /// @brief iic 模拟io 版本, 和cpu无关,唯一需要修改的就是头函数中的管 + -定义 + 8 /// @info 如无必要请勿修改 + 9 ///(本文件实现的功能的详述) + 10 /// + 11 /// @version 1.1 CCsens technology + 12 /// @author CC + 13 /// @date 20180102 + 14 /// @version 1.2 CCsens technology + 15 /// @author CC + 16 /// @date 20230312 + 17 + 18 // + 19 ////////////////////////////////////////////////////////////////////////// + 20 + 21 #include "msp_iicMx.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 22 #include "stc_8_delay.h" + 23 + 24 TS_iicm_ ts_iicm; + 25 + 26 /*------------------------------------------------ + 27 端口定义 + 28 在I2C总线传输数据过程中,每传输一个字节, + 29 都要跟一个应答状态位。接收器接收数据的情况 + 30 可以通过应答位来告知发送器。应答位的时钟脉冲 + 31 仍由主机产生,而应答位的数据状态则遵循“谁 + 32 接收谁产生”的原则,即总是由接收器产生应答位, + 33 在响应的时钟脉冲期间接收器必须将SDA 线拉 + 34 低,使它在这个时钟脉冲的高电平期间保持稳定的低电平(见图9) , + 35 当然必须考虑建立和保持时间 + 36 (详细请查阅表6) 。主机向从机发送数据时, + 37 应答位由从机产生;主机从从机接收数据时,应答位 + 38 由主机产生。 + 39 I2C总线标准规定: 应答位为0表示接收器应答 (ACK) , + 40 常常简记为A; 为1则表示非应答 (NACK) , + 41 常简记为NA。发送器发送LSB之后,应当释放SDA线(拉高SDA) , + 42 以等待接收器产生应答位。 + 43 如果接收器在接收完最后一个字节的数据, + 44 或者不能再接收更多的数据时,应当产生非应答信 + 45 号来通知发送器。发送器如果发现接收器产生了非应答状态, + 46 则应当终止发送。 + 47 + 48 ------------------------------------------------*/ + 49 ///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + 50 + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 2 + + 51 + 52 void L0_IICMx_SDA_outin(vtype ch,vtype v) + 53 { + 54 1 if(v)///输出 + 55 1 { + 56 2 switch (ch) + 57 2 { + 58 3 case D_iicch_0: + 59 3 L0_IICM0_SDA_OUT(); + 60 3 break; + 61 3 case D_iicch_1: + 62 3 L0_IICM1_SDA_OUT(); + 63 3 #ifdef D_SIIC_USE_2 + case D_iicch_2: + L0_IICM2_SDA_OUT(); + break; + #endif + 68 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SDA_OUT(); + break; + #endif + 73 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SDA_OUT(); + break; + #endif + 78 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SDA_OUT(); + break; + #endif + 83 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SDA_OUT(); + break; + #endif + 88 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SDA_OUT(); + break; + #endif + 93 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SDA_OUT(); + break; + #endif + 98 3 default: + 99 3 break; + 100 3 + 101 3 } + 102 2 // L0_slc_1_delay(); + 103 2 } + 104 1 else + 105 1 { + 106 2 switch (ch) + 107 2 { + 108 3 case D_iicch_0: + 109 3 L0_IICM0_SDA_IN(); + 110 3 break; + 111 3 case D_iicch_1: + 112 3 L0_IICM1_SDA_IN(); + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 3 + + 113 3 break; + 114 3 #ifdef D_SIIC_USE_2 + case D_iicch_2: + L0_IICM2_SDA_IN(); + break; + #endif + 119 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SDA_IN(); + break; + #endif + 124 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SDA_IN(); + break; + #endif + 129 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SDA_IN(); + break; + #endif + 134 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SDA_IN(); + break; + #endif + 139 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SDA_IN(); + break; + #endif + 144 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SDA_IN(); + + break; + #endif + 150 3 default: + 151 3 break; + 152 3 + 153 3 } + 154 2 // L0_slc_f_delay(); + 155 2 } + 156 1 + 157 1 } + 158 + 159 + 160 void L0_IICMx_SDA(vtype ch,vtype v) + 161 { + 162 1 if(v) + 163 1 { + 164 2 switch (ch) + 165 2 { + 166 3 case D_iicch_0: + 167 3 L0_IICM0_SDA_ON(); + 168 3 break; + 169 3 case D_iicch_1: + 170 3 L0_IICM1_SDA_ON(); + 171 3 break; + 172 3 #ifdef D_SIIC_USE_2 + case D_iicch_2: + L0_IICM2_SDA_ON(); + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 4 + + break; + #endif + 177 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SDA_ON(); + break; + #endif + 182 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SDA_ON(); + break; + #endif + 187 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SDA_ON(); + break; + #endif + 192 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SDA_ON(); + break; + #endif + 197 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SDA_ON(); + break; + #endif + 202 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SDA_ON(); + break; + #endif + 207 3 default: + 208 3 break; + 209 3 + 210 3 } + 211 2 // L0_slc_1_delay(); + 212 2 } + 213 1 else + 214 1 { + 215 2 switch (ch) + 216 2 { + 217 3 case D_iicch_0: + 218 3 L0_IICM0_SDA_OFF(); + 219 3 break; + 220 3 case D_iicch_1: + 221 3 L0_IICM1_SDA_OFF(); + 222 3 + 223 3 break; + 224 3 #ifdef D_SIIC_USE_2 + case D_iicch_2: + L0_IICM2_SDA_OFF(); + break; + #endif + 229 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SDA_OFF(); + break; + #endif + 234 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SDA_OFF(); + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 5 + + break; + #endif + 239 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SDA_OFF(); + break; + #endif + 244 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SDA_OFF(); + break; + #endif + 249 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SDA_OFF(); + break; + #endif + 254 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SDA_OFF(); + break; + #endif + 259 3 default: + 260 3 break; + 261 3 + 262 3 } + 263 2 // L0_slc_f_delay(); + 264 2 } + 265 1 + 266 1 } + 267 + 268 void L0_IICMx_SCL(vtype ch,vtype v) + 269 { + 270 1 if(v) + 271 1 { + 272 2 switch (ch) + 273 2 { + 274 3 case D_iicch_0: + 275 3 L0_IICM0_SCL_ON(); + 276 3 break; + 277 3 case D_iicch_1: + 278 3 L0_IICM1_SCL_ON(); + 279 3 break; + 280 3 #ifdef D_SIIC_USE_2 + + case D_iicch_2: + L0_IICM2_SCL_ON(); + break; + #endif + 286 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SCL_ON(); + break; + #endif + 291 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SCL_ON(); + break; + #endif + 296 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SCL_ON(); + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 6 + + break; + #endif + 301 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SCL_ON(); + break; + #endif + 306 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SCL_ON(); + break; + #endif + 311 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SCL_ON(); + break; + #endif + 316 3 default: + 317 3 break; + 318 3 } + 319 2 L0_slc_1_delay(ts_iicm.t1[ch]); + 320 2 } + 321 1 else + 322 1 { + 323 2 switch (ch) + 324 2 { + 325 3 case D_iicch_0: + 326 3 L0_IICM0_SCL_OFF(); + 327 3 break; + 328 3 case D_iicch_1: + 329 3 L0_IICM1_SCL_OFF(); + 330 3 break; + 331 3 #ifdef D_SIIC_USE_2 + + case D_iicch_2: + L0_IICM2_SCL_OFF(); + break; + #endif + 337 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SCL_OFF(); + break; + #endif + 342 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SCL_OFF(); + break; + #endif + 347 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SCL_OFF(); + break; + #endif + 352 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SCL_OFF(); + break; + #endif + 357 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SCL_OFF(); + break; + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 7 + + #endif + 362 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SCL_OFF(); + break; + #endif + 367 3 default: + 368 3 break; + 369 3 } + 370 2 + 371 2 L0_slc_0_delay(ts_iicm.t0[ch]); + 372 2 } + 373 1 + 374 1 } + 375 + 376 /* + 377 + 378 void L0_IICMX_SCL(unsigned char v) + 379 { + 380 if(v) + 381 { + 382 L0_IICM1_SCL_ON();/// L0_SCL_ON(); + 383 L0_slc_1_delay(); + 384 } + 385 else + 386 { + 387 L0_IICM1_SCL_OFF();///L0_SCL_OFF(); + 388 L0_slc_f_delay(); + 389 } + 390 } + 391 void L0_IICM1_SDA(unsigned char v) + 392 { + 393 if(v) + 394 { + 395 L0_IICM1_SDA_ON(); + 396 L0_slc_1_delay(); + 397 } + 398 else + 399 { + 400 L0_IICM1_SDA_OFF(); + 401 L0_slc_f_delay(); + 402 } + 403 } + 404 */ + 405 void L0_IICMx_INIT(vtype ch ,vtype v) + 406 { + 407 1 if (v) + 408 1 { + 409 2 switch(ch) + 410 2 { + 411 3 case D_iicch_0: + 412 3 L0_IICM0_SCL_init(); + 413 3 L0_IICM0_SDA_init(); + 414 3 break; + 415 3 case D_iicch_1: + 416 3 L0_IICM1_SCL_init(); + 417 3 L0_IICM1_SDA_init(); + 418 3 break; + 419 3 #ifdef D_SIIC_USE_2 + case D_iicch_2: + L0_IICM2_SCL_init(); + L0_IICM2_SDA_init(); + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 8 + + break; + #endif + 425 3 #ifdef D_SIIC_USE_3 + case D_iicch_3: + L0_IICM3_SCL_init(); + L0_IICM3_SDA_init(); + break; + #endif + 431 3 #ifdef D_SIIC_USE_4 + case D_iicch_4: + L0_IICM4_SCL_init(); + L0_IICM4_SDA_init(); + break; + #endif + 437 3 #ifdef D_SIIC_USE_5 + case D_iicch_5: + L0_IICM5_SCL_init(); + L0_IICM5_SDA_init(); + break; + #endif + 443 3 #ifdef D_SIIC_USE_6 + case D_iicch_6: + L0_IICM6_SCL_init(); + L0_IICM6_SDA_init(); + break; + #endif + 449 3 #ifdef D_SIIC_USE_7 + case D_iicch_7: + L0_IICM7_SCL_init(); + L0_IICM7_SDA_init(); + break; + #endif + 455 3 #ifdef D_SIIC_USE_8 + case D_iicch_8: + L0_IICM8_SCL_init(); + L0_IICM8_SDA_init(); + break; + #endif + 461 3 default: + 462 3 break; + 463 3 } + 464 2 L0_IICMx_SDA(ch,v); + 465 2 L0_IICMx_SCL(ch,v); + 466 2 } + 467 1 else + 468 1 { + 469 2 + 470 2 + 471 2 } + 472 1 } + 473 + 474 unsigned char L0_IICMx_SDA_get(vtype ch) + 475 { + 476 1 + 477 1 switch(ch) + 478 1 { + 479 2 case D_iicch_0: + 480 2 return L0_IICM0_SDA_AT(); + 481 2 case D_iicch_1: + 482 2 return L0_IICM1_SDA_AT(); + 483 2 + 484 2 #ifdef D_SIIC_USE_2 + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 9 + + case D_iicch_2: + return L0_IICM2_SDA_AT(); + + #endif + 489 2 #ifdef D_SIIC_USE_3 + case D_iicch_3: + return L0_IICM3_SDA_AT(); + + #endif + 494 2 #ifdef D_SIIC_USE_4 + case D_iicch_4: + return L0_IICM4_SDA_AT(); + + #endif + 499 2 #ifdef D_SIIC_USE_5 + case D_iicch_5: + return L0_IICM5_SDA_AT(); + + #endif + 504 2 #ifdef D_SIIC_USE_6 + case D_iicch_6: + return L0_IICM6_SDA_AT(); + + #endif + 509 2 #ifdef D_SIIC_USE_7 + case D_iicch_7: + return L0_IICM7_SDA_AT(); + + #endif + 514 2 #ifdef D_SIIC_USE_8 + case D_iicch_8: + return L0_IICM8_SDA_AT(); + #endif + 518 2 default: + 519 2 break; + 520 2 } + 521 1 return 0; + 522 1 + 523 1 } + 524 + 525 #define L0_IIC_SIM_INIT(x) + 526 #define L0_IIC_SIM_close(x) + 527 //********************************************** + 528 //送起始位 IO_SDA=1->0 + 529 void L0_IICMx_Start(vtype ch) + 530 { + 531 1 ///L0_IIC_SIM_INIT(); + 532 1 + 533 1 L0_IICMx_SDA_outin(ch,1); + 534 1 L0_IICMx_SDA(ch,1); + 535 1 L0_IICMx_SCL(ch,1); + 536 1 L0_IICMx_SDA(ch,0); + 537 1 L0_slc_1_delay(ts_iicm.t1[ch]); + 538 1 L0_slc_1_delay(ts_iicm.t1[ch]); + 539 1 L0_IICMx_SCL(ch,0); + 540 1 + 541 1 } + 542 //************************************************ + 543 //送停止位 IO_SDA = 0->1 + 544 void L0_IICMx_Stop(vtype ch) + 545 { + 546 1 + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 10 + + 547 1 L0_IICMx_SDA(ch,0); + 548 1 + 549 1 L0_IICMx_SCL(ch,1); + 550 1 + 551 1 L0_IICMx_SDA(ch,1); + 552 1 L0_IIC_SIM_INIT(); + 553 1 L0_IIC_SIM_close(); + 554 1 } + 555 + 556 + 557 //************************************************ + 558 //主应答(包含ack:IO_SDA = 0和no_ack:IO_SDA = 0) + 559 void L0_IICMx_Ack(vtype ch) + 560 { //设置SDA 口为输出 + 561 1 L0_IICMx_SCL(ch,0); + 562 1 + 563 1 L0_IICMx_SDA(ch,0); + 564 1 + 565 1 L0_IICMx_SCL(ch,1); + 566 1 L0_IICMx_SCL(ch,0); + 567 1 L0_IICMx_SDA(ch,1); + 568 1 } + 569 + 570 void L0_IICMx_NoAck(vtype ch) + 571 { //设置SDA 口为输出 + 572 1 L0_IICMx_SCL(ch,0); + 573 1 L0_IICMx_SDA(ch,1); + 574 1 L0_IICMx_SCL(ch,1); + 575 1 L0_IICMx_SCL(ch,0); + 576 1 + 577 1 } + 578 /****** + 579 I2C总线标准规定: 应答位为0表示接收器应答 (ACK) , 常常简记为A; + 580 为1则表示非应答 (NACK) ,常简记为NA。 + 581 发送器发送LSB之后,应当释放SDA线(拉高SDA) , + 582 以等待接收器产生应答位。 + 583 如果接收器在接收完最后一个字节的数据, + 584 或者不能再接收更多的数据时,应当产生非应答信 + 585 号来通知发送器。发送器如果发现接收器产生了非应答状态, + 586 则应当终止发送。 + 587 // 检测 SDA是否回ACK + 588 bit L0_I2C_Test_Ack(void) + 589 { //设置SDA 口为输入 + 590 bit ACK_Flag = 0; + 591 L0_I2C_SCL(0); + 592 L0_I2C_SDA(1); + 593 L0_I2C_SCL(1); + 594 + 595 + 596 if(IO_SDA = 0) + 597 ACK_Flag = 1; + 598 else + 599 ACK_Flag = 0; + 600 L0_I2C_SCL(0); + 601 return ACK_Flag; + 602 // return 1;// debug + 603 } + 604 *******/ + 605 //************************************************* + 606 //字节发送程序 + 607 //发送c(可以是数据也可是地址),送完后接收从应答 + 608 //不考虑从应答位 + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 11 + + 609 void L0_IICMx_SendData(vtype ch,unsigned char c ) + 610 { + 611 1 unsigned char ack=8; + 612 1 unsigned char BitCnt=8;//一字节8位 + 613 1 //设置SDA 口为输出 + 614 1 + 615 1 for(BitCnt = 0;BitCnt < 8;BitCnt ++) //要传送的数据长度为8位 + 616 1 { + 617 2 if((c << BitCnt ) & 0x80) + 618 2 L0_IICMx_SDA(ch,1); //判断发送位 + 619 2 else + 620 2 L0_IICMx_SDA(ch,0); + 621 2 L0_IICMx_SCL(ch,1); //置时钟线为高,通知被控器开始接收数据位 + 622 2 L0_IICMx_SCL(ch,0); + 623 2 }//8clk + 624 1 + 625 1 L0_IICMx_SDA(ch,1); //8位发送完后释放数据线,准备接收应答位 + 626 1 L0_IICMx_SDA_outin(ch,0); + 627 1 L0_IICMx_SCL(ch,1); + 628 1 ///gRccUs05 += L0_I2C_SDA_ask(); + 629 1 L0_IICMx_SCL(ch,0); + 630 1 + 631 1 L0_IICMx_SDA_outin(ch,1); + 632 1 //// L0_IICMx_delay(ts_iicm.t[ch]); + 633 1 } + 634 //************************************************** + 635 //字节接收程序 + 636 //接收器件传来的数据,此程序应配合|主应答函数|i2c_ack_main(void)使用 + 637 //return: uchar型1字节 + 638 unsigned char L0_IICMx_ReceiveData(vtype ch) + 639 { + 640 1 unsigned char BitCnt=8,IIC_RX_Data = 0; + 641 1 L0_IICMx_SDA(ch,1); //读入数据 设置SDA 口为输入 + 642 1 L0_IICMx_SDA_outin(ch,0); + 643 1 for(BitCnt = 0;BitCnt<8;BitCnt++) + 644 1 { + 645 2 L0_IICMx_SCL(ch,0); //置时钟线为低,准备接收数据位 + 646 2 L0_IICMx_SCL(ch,1); //置时钟线为高使数据线上数据有效 + 647 2 IIC_RX_Data = IIC_RX_Data << 1; + 648 2 if(1 == L0_IICMx_SDA_get(ch)) + 649 2 IIC_RX_Data = IIC_RX_Data + 1; //读数据位,接收的数据位放入retc中 + 650 2 }// 8clk up + 651 1 L0_IICMx_SCL(ch,0); + 652 1 L0_IICMx_SDA_outin(ch,1); + 653 1 return IIC_RX_Data; + 654 1 } + 655 /// 读取 n个数据 放入p中 + 656 void L1_IICMx_ReadNByte(vtype ch,unsigned char Sal, unsigned char *p,unsigned char n) + 657 { + 658 1 unsigned char i; + 659 1 L0_IICMx_Start(ch); // 启动I2C + 660 1 L0_IICMx_SendData(ch,(Sal)| 0x01); //发送器件地址 + 661 1 + 662 1 for(i = 0;i < n-1;i ++) //读取字节数据 + 663 1 { + 664 2 *(p + i) = L0_IICMx_ReceiveData(ch); //读取数据 + 665 2 ///printf("%x ",(int)(*(p + i))); + 666 2 + 667 2 L0_IICMx_Ack(ch); //__/```\__ + 668 2 } + 669 1 *(p + n - 1) = L0_IICMx_ReceiveData(ch); + 670 1 + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 12 + + 671 1 L0_IICMx_NoAck(ch); + 672 1 L0_IICMx_Stop(ch); + 673 1 } + 674 + 675 #if 0 + + + + + 主机从从设备读取多个字节 + Master ST SAD+W SUB SR SAD+R MAK MAK NMAK SP + Slave SAK SAK SAK DATA DATA DATA + 0x19 + 0001 1001 + 0011 001R + + #endif + 688 + 689 /////////////////////////////// + 690 ///写入一个reg 为后续的写命令或者读取服务 + 691 void L1_IICMx_WriteReg(vtype ch,unsigned char sla,unsigned char reg ) + 692 { + 693 1 L0_IICMx_Start(ch); //启动I2C + 694 1 L0_IICMx_SendData(ch,sla);//发送器件地址 + 695 1 L0_IICMx_SendData(ch,reg); + 696 1 } + 697 + 698 ///写入一个 s+sla+reg + 699 void L2_IICMx_Write1Reg(vtype ch,unsigned char sla,unsigned char reg ) + 700 { + 701 1 L1_IICMx_WriteReg(ch,sla,reg); + 702 1 L0_IICMx_Stop(ch); + 703 1 } + 704 + 705 + 706 + 707 // sla.(reg)=cmd + 708 void L2_IICMx_WriteCmd(vtype ch,unsigned char sla,unsigned char reg,unsigned char cmd ) + 709 { + 710 1 L1_IICMx_WriteReg(ch,sla,reg); + 711 1 L0_IICMx_SendData(ch,cmd); + 712 1 L0_IICMx_Stop(ch); + 713 1 /***************** + 714 1 if(gRccUs05 >0)///测试iic有效否 发现没有结果 + 715 1 { + 716 1 L0_uart0_uc(gRccUs05);gRccUs05 = 0; + 717 1 } + 718 1 ***************/ + 719 1 } + 720 + 721 //读取reg地址的n个数据 sla.(reg) sla.(reg+1)................ sla.(reg+n) + 722 void L2_IICMx_ReadReg(vtype ch,unsigned char sla,unsigned char reg, + 723 unsigned char *r,unsigned char n) + 724 { + 725 1 // U8 d[1]; + 726 1 //S ADD W A REG A + 727 1 L1_IICMx_WriteReg(ch,sla,reg); + 728 1 //S ADD R A D1 A D2 A.....DX N P + 729 1 L1_IICMx_ReadNByte(ch,sla,r,n); + 730 1 } + 731 + 732 //读取reg地址的n个数据 sla.(reg) sla.(reg+1)................ sla.(reg+n) + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 13 + + 733 unsigned char L2_IICMx_Read1Reg1D(vtype ch,unsigned char sla,unsigned char reg) + 734 { + 735 1 U8 d; + 736 1 // U8 d[1]; + 737 1 //S ADD W A REG A + 738 1 L1_IICMx_WriteReg(ch,sla,reg); + 739 1 //S ADD R A D1 A D2 A.....DX N P + 740 1 L1_IICMx_ReadNByte(ch,sla,&d,1); + 741 1 return d; + 742 1 } + 743 + 744 + 745 + 746 + 747 #if 0////不可删除 + ///S 80H A Register Address A S 81H A Data NA P + void L2_tws_ReadReg000(unsigned char sla,unsigned char reg, + unsigned char *v) + { + unsigned char ack=8; + unsigned char BitCnt=8;//一字节8位 + // U8 d[1]; + //S ADD W A REG A + //// L1_I2C_WriteReg(sla,reg); + //step 1---- + L0_I2C_Start(); //启动I2C + //step 2----L0_I2C_SendData(sla);//发送器件地址 + //设置SDA 口为输出 + for(BitCnt = 0;BitCnt < 8;BitCnt ++) //要传送的数据长度为8位 + { + if((sla << BitCnt ) & 0x80) + L0_I2C_SDA(1); //判断发送位 + else + L0_I2C_SDA(0); + L0_I2C_SCL(1); //置时钟线为高,通知被控器开始接收数据位 + L0_I2C_SCL(0); + }//8clk + L0_I2C_SDA(1); //8位发送完后释放数据线,准备接收应答位 + L0_I2C_SCL(1); + L0_I2C_SCL(0); + + //step 3---L0_I2C_SendData(reg); + for(BitCnt = 0;BitCnt < 8;BitCnt ++) //要传送的数据长度为8位 + { + if((reg << BitCnt ) & 0x80) + L0_I2C_SDA(1); //判断发送位 + else + L0_I2C_SDA(0); + L0_I2C_SCL(1); //置时钟线为高,通知被控器开始接收数据位 + L0_I2C_SCL(0); + }//8clk + L0_I2C_SDA(1); //8位发送完后释放数据线,准备接收应答位 + L0_I2C_SCL(1); + L0_I2C_SCL(0); + + //step 4---- + L0_I2C_Start(); //启动I2C + + //step 5--- + //设置SDA 口为输出 + sla|=0x01; + for(BitCnt = 0;BitCnt < 8;BitCnt ++) //要传送的数据长度为8位 + C51 COMPILER V9.54 MSP_IICMX 09/06/2024 11:24:46 PAGE 14 + + { + if((sla << BitCnt ) & 0x80) + L0_I2C_SDA(1); //判断发送位 + else + L0_I2C_SDA(0); + L0_I2C_SCL(1); //置时钟线为高,通知被控器开始接收数据位 + L0_I2C_SCL(0); + }//8clk + L0_I2C_SDA(1); //8位发送完后释放数据线,准备接收应答位 + L0_I2C_SCL(1); + L0_I2C_SCL(0); + //step 6---receive data + //设置SDA 口为输出 + *v = L0_I2C_ReceiveData(); + L0_I2C_SCL(1); + L0_I2C_SCL(0);/// send NA + //step 7--- P + + L0_I2C_Stop(); + + + + + } + + ///S 80H A Register Address A S 81H A Data NA P + + + + #endif + 825 + 826 + 827 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1471 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 56 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/msp_iicMx.obj b/out/msp_iicMx.obj new file mode 100644 index 0000000..5574810 Binary files /dev/null and b/out/msp_iicMx.obj differ diff --git a/out/msp_time2.lst b/out/msp_time2.lst new file mode 100644 index 0000000..6990ef4 --- /dev/null +++ b/out/msp_time2.lst @@ -0,0 +1,77 @@ +C51 COMPILER V9.54 MSP_TIME2 09/06/2024 11:24:45 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MSP_TIME2 +OBJECT MODULE PLACED IN ..\out\msp_time2.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\msp\msp_time2.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINT + -PROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\s + -ource\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT( + -..\out\msp_time2.lst) TABS(2) OBJECT(..\out\msp_time2.obj) + +line level source + + 1 #include "msp_Time2.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 + 3 #include "msp_uart1.h" + 4 ///_TS_timer2 ts_timer2; + 5 #if 10 + 6 + 7 void L0_timer2_init(void)////void Timer2Init(void) //3毫秒@22.1184MHz + 8 { + 9 1 AUXR &= 0xFB; //定时器时钟12T模式 + 10 1 T2L = 0x66; //设置定时初始值 + 11 1 T2H = 0xEA; //设置定时初始值 + 12 1 AUXR |= 0x10; //定时器2开始计时 + 13 1 } + 14 #else + + void L0_timer2_init10_22M(void)///void Timer2Init(void) //10毫秒@22.1184MHz + { + AUXR &= 0xFB; //定时器时钟12T模式 + T2L = 0x00; //设置定时初始值 + T2H = 0xB8; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 + } + void L0_timer2_init(void)///void Timer2Init(void) //35毫秒@22.1184MHz + { + AUXR &= 0xFB; //定时器时钟12T模式 + T2L = 0x00; //设置定时初始值 + T2H = 0x04; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 + } + void timer2_isrHanddle(void) D_SERVE_TIMER2 + { + /// ts_timer2.callback(ts_timer2.p); + /// ts_timer2.callback(ts_timer2.p); + } + + + + #endif + 39 + 40 /******************************END*********************************/ + 41 + 42 + 43 + 44 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 13 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + C51 COMPILER V9.54 MSP_TIME2 09/06/2024 11:24:45 PAGE 2 + + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/msp_time2.obj b/out/msp_time2.obj new file mode 100644 index 0000000..8ecac1c Binary files /dev/null and b/out/msp_time2.obj differ diff --git a/out/msp_uart1.lst b/out/msp_uart1.lst new file mode 100644 index 0000000..5f6377b --- /dev/null +++ b/out/msp_uart1.lst @@ -0,0 +1,333 @@ +C51 COMPILER V9.54 MSP_UART1 09/06/2024 11:24:46 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MSP_UART1 +OBJECT MODULE PLACED IN ..\out\msp_uart1.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\msp\uart\msp_uart1.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER + -NOINTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc + -;..\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG P + -RINT(..\out\msp_uart1.lst) TABS(2) OBJECT(..\out\msp_uart1.obj) + +line level source + + 1 #include "msp_uart1.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 2 ///#include "msp_time2.h" + 3 #include "c_crc.h" + 4 #include "c_delay.h" + 5 //#include "tpc_debug.h" + 6 #include "debug_drv.h" + 7 #include "tpc_road.h" + 8 //#define _USE_485 + 9 + 10 ///static volatile TS_Uart_Send_ ts_uart_send_shop; + 11 + 12 ///>>>>>>>>>>>>>>>>和cpu相关 + 13 + 14 + 15 #if(MainFre_5M == D_sys_MainFre) + + + #elif(MainFre_22M == D_sys_MainFre) + 19 + 20 + 21 + 22 #if(BRT_921600 == D_UART1_BRT) + void L0_uart1_init(void) /// void UartInit(void) //921600bps@22.1184MHz + { + SCON = 0x50; //8位数据,可变波特率 + AUXR |= 0x40; //定时器时钟1T模式 + AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 + TMOD &= 0x0F; //设置定时器模式 + TL1 = 0xFA; //设置定时初始值 + TH1 = 0xFF; //设置定时初始值 + ET1 = 0; //禁止定时器中断 + TR1 = 1; //定时器1开始计时 + } + #elif(BRT_460800 == D_UART1_BRT) + #elif(BRT_115200 == D_UART1_BRT) + void L0_uart1_init(void) /// void UartInit(void) //115200bps@22.1184MHz + { + SCON = 0x50; //8位数据,可变波特率 + AUXR |= 0x40; //定时器时钟1T模式 + AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 + TMOD &= 0x0F; //设置定时器模式 + TL1 = 0xD0; //设置定时初始值 + TH1 = 0xFF; //设置定时初始值 + ET1 = 0; //禁止定时器中断 + TR1 = 1; //定时器1开始计时 + } + #warning "MainFre_22M BRT_115200" + + #elif(BRT_19200 == D_UART1_BRT) + #elif(BRT_9600== D_UART1_BRT) + 51 void L0_uart1_init(void) //9600bps@22.1184MHz + C51 COMPILER V9.54 MSP_UART1 09/06/2024 11:24:46 PAGE 2 + + 52 { + 53 1 SCON = 0x50; //8位数据,可变波特率 + 54 1 AUXR |= 0x40; //定时器时钟1T模式 + 55 1 AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 + 56 1 TMOD &= 0x0F; //设置定时器模式 + 57 1 TL1 = 0xC0; //设置定时初始值 + 58 1 TH1 = 0xFD; //设置定时初始值 + 59 1 ET1 = 0; //禁止定时器中断 + 60 1 TR1 = 1; //定时器1开始计时 + 61 1 } + 62 #warning "MainFre_22M BRT_115200" +*** WARNING C320 IN LINE 62 OF ..\source\msp\uart\msp_uart1.c: "MainFre_22M BRT_115200" + 63 #else///9600 + #endif//) + 65 + 66 + 67 + 68 + 69 #elif(MainFre_27M == D_sys_MainFre) + + + #elif(MainFre_44M == D_sys_MainFre) + #if(BRT_115200 == D_UART1_BRT) + #elif(BRT_460800 == D_UART1_BRT) + + + void L0_uart1_init(void) /// void UartInit(void) //460800bps@44.2368MHz + { + SCON = 0x50; //8位数据,可变波特率 + AUXR &= 0xBF; //定时器时钟12T模式 + AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 + TMOD &= 0x0F; //设置定时器模式 + TL1 = 0xFE; //设置定时初始值 + TH1 = 0xFF; //设置定时初始值 + ET1 = 0; //禁止定时器%d中断 + TR1 = 1; //定时器1开始计时 + } + + #elif(BRT_921600 == D_UART1_BRT) + + + void L0_uart1_init(void) /// void UartInit(void) //921600bps@44.2368MHz + { + SCON = 0x50; //8位数据,可变波特率 + AUXR &= 0xBF; //定时器时钟12T模式 + AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 + TMOD &= 0x0F; //设置定时器模式 + TL1 = 0xFF; //设置定时初始值 + TH1 = 0xFF; //设置定时初始值 + ET1 = 0; //禁止定时器%d中断 + TR1 = 1; //定时器1开始计时 + } + #info "0000" + + + #elif(BRT_19200 == D_UART1_BRT) + #elif(BRT_9600== D_UART1_BRT) + #else///9600 + #endif//D_sys_MainFre) + + #else ///MainFre_11M + + C51 COMPILER V9.54 MSP_UART1 09/06/2024 11:24:46 PAGE 3 + + #if(BRT_115200 == D_UART1_BRT) + + void L0_uart1_init(void) ///void UartInit(void) //115200bps@11.0592MHz + { + SCON = 0x50; //8位数据,可变波特率 + AUXR |= 0x01; //串口1选择定时器2为波特率发生器 + AUXR &= 0xFB; //定时器时钟12T模式 + T2L = 0xFE; //设置定时初始值 + T2H = 0xFF; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 + } + + + #elif(BRT_19200 == D_UART1_BRT) + + + #elif(BRT_9600== D_UART1_BRT) + + + #else///9600 + + #endif//D_sys_MainFre) + + #endif//D_sys_MainFre) + 137 + 138 ///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>和cpu相关 + 139 void L1_uart1_open(void) + 140 {// + 141 1 L0_uart1_buf_init();//串口初始化// + 142 1 + 143 1 EA = 1; + 144 1 L0_uart1_str("\r\nuart1 open"); + 145 1 } + 146 + 147 void L0_uart1_buf_init(void) + 148 { + 149 1 L0_uartN_sbuf(D_UART1); + 150 1 D_s2b_road1_init(); + 151 1 + 152 1 D_stdIO_P3(BITN1); + 153 1 D_stdIO_P3(BITN0);////PIN19 TXD1 D+ + 154 1 + 155 1 L0_uart1_init(); + 156 1 L0_uart1_IntRIClear(); + 157 1 L0_uart1_IntTIClear(); + 158 1 D_UART1_RS_EN(1); + 159 1 D_uart1_ES_INT(1); //打开串口中断 + 160 1 + 161 1 #if (D_UART1_485_TYPE != TYPE_485_NONE) + 162 1 D_UART1_485_RX(); //默认处于接收状态 + 163 1 #endif + 164 1 } + 165 /* + 166 + 167 void L0_uart1_Array(U8 * buf, U16 len) + 168 { + 169 #if (D_UART1_485_TYPE != TYPE_485_NONE) + 170 D_UART1_485_TX(); //切换到输出状态 + 171 #endif + 172 L0_uartN_Array(D_UART1,buf,len); + 173 } + 174 */ + C51 COMPILER V9.54 MSP_UART1 09/06/2024 11:24:46 PAGE 4 + + 175 + 176 + 177 ////U8 overtime_t; //超时溢出的计数器 + 178 ////U8 overtime_flag; ///0:没有超时溢出 1:超时溢出 + 179 ////U8 over_flag; ////串口接收结束的状态 0:超时溢出 1:超出max接收 + 180 + 181 ///D_LED4_REV(); + 182 + 183 void L2_uart1_overtime_callback(void) + 184 {////必须清除当前的idle + 185 1 if(0 == ts_Urec[D_UART1].idle) + 186 1 { + 187 2 if(ts_Urec[D_UART1].overtime_t >= 2) + 188 2 { + 189 3 ts_Urec[D_UART1].idle = 1;//总线空闲 + 190 3 ts_Urec[D_UART1].head = 0; + 191 3 + 192 3 //// printf(" ts_s2b_debug.fifo = %d ",(int)ts_s2b_debug.fifo); + 193 3 if(ts_Urec[D_UART1].fifo > 0) + 194 3 {ts_Urec[D_UART1].fifo = 0; + 195 4 ts_Urec[D_UART1].ok = 1;/// 接收到的数据结束 : 总线空闲+buf非空 + 196 4 ts_Urec[D_UART1].sp = ts_Urecbuf.r1; + 197 4 //// L1_uartD_sendArray((U8 *)ts_debug_rec.filter, 5); + 198 4 /******* + 199 4 L1_uartD_sendArrayhex((U8 *)&ts_debug_rec.filter, 5); + 200 4 ts_debug_rec.filter = 0x31; + 201 4 ts_debug_rec.R1 = 0x32; + 202 4 ts_debug_rec.R2 = 0x33; + 203 4 ts_debug_rec.R3 = 0x34; + 204 4 ts_debug_rec.ocr = 0x35; + 205 4 + 206 4 L1_uartD_sendArrayhex((U8 *)&ts_debug_rec.filter, 5); + 207 4 *********/ + 208 4 + 209 4 } + 210 3 } + 211 2 ts_Urec[D_UART1].overtime_t ++; + 212 2 } + 213 1 } + 214 + 215 + 216 /************************************************* + 217 UART 中断 + 218 *************************************************/ + 219 void INTERRUPT_UART(void) D_SERVE_UART + 220 { + 221 1 if(L0_uart1_IntRI()) //如果是U0接收中断 + 222 1 { + 223 2 L0_uart1_IntRIClear(); //清除接收中断标志 + 224 2 /// D_LED1_REV(); + 225 2 + 226 2 ///>>>>>>>>>>>>>接收协议 可以更改为其他协议>>>>>>>>>>>>>>>>>>>>>>>> + 227 2 ts_Urec[D_UART1].reg = L0_uart1_get(); + 228 2 ts_Urec[D_UART1].idle = 0; + 229 2 ts_Urec[D_UART1].overtime_t = 0;///需要和tick 定时器中的配合 作为接收超时判定 + 230 2 /// L1_s2b_PH5_debug(&ts_s2b_debug); + 231 2 /// L1_s2b_PH5_debug(TS_s2b_debug); + 232 2 L1_s2b_road(D_UART1); + 233 2 ///<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + 234 2 } + 235 1 if(L0_uart1_IntTI()) //如果是U0发送中断 + 236 1 { + C51 COMPILER V9.54 MSP_UART1 09/06/2024 11:24:46 PAGE 5 + + 237 2 L0_uart1_IntTIClear(); //清除发送中断标志 + 238 2 if(ts_Usend[D_UART1].max != ts_Usend[D_UART1].now) + 239 2 { + 240 3 ///L0_uartN_set(uNum1,ts_uart[uNum1].p->p[ts_uart[uNum1].p->now]); + 241 3 L0_uart1_set(ts_Usend[D_UART1].sbuf[ts_Usend[D_UART1].now]); + 242 3 ts_Usend[D_UART1].now ++;//发送本包的下一个数据 + 243 3 } + 244 2 else + 245 2 { + 246 3 ts_Usend[D_UART1].ok = D_ready; + 247 3 ts_Usend[D_UART1].max = 0; + 248 3 ts_Usend[D_UART1].now = 0;//可以发送下一包数据 + 249 3 #if (D_UART1_485_TYPE != TYPE_485_NONE) + 250 3 D_UART1_485_RX() //切换到接收状态 + 251 3 ///gfgfgfh + 252 3 #endif + 253 3 } + 254 2 } + 255 1 //NOP(); NOP(); NOP(); + 256 1 } + 257 + 258 ///L2_callback_uart1_free(&s_uart1_rec); + 259 #if 0 + + void L2_callback_uart1_free(Ts_uart_rev_ *p) + { + + ///Ts_uart_rev_ *p = &s_uart1_rec; + #define D_s_modbus_min 4 //modbus协议的最小长度 + + /// D_P24_REV(); + ////while(9) D_P24_REV(); + if((p->head == 1) && (p->num >= D_s_modbus_min)) + { + //LED1 ^= 1; + p->head = 0; + #ifdef D_use_crc + crc16qq(p->crc,p->buf,p->num - 2); ////fixme 20220311 ///crc16qq(p->crc,p->buf,p->num - 2); //校验CRC + #endif + + // crc16(p->crc,p->buf,p->num - 2); //校验CRC + if(p->crc[0] == p->buf[p->num-2] && p->crc[1] == p->buf[p->num-1]) + { + p->ok = 1; + /// LED0 ^= 1; + } + p->debugok = 1;////s_uart1_rec.debugok + } + L1_uart1_isFree_over(); + + //// D_motor1_FI_rev(); + + } + + #endif + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 366 ---- + CONSTANT SIZE = 13 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + C51 COMPILER V9.54 MSP_UART1 09/06/2024 11:24:46 PAGE 6 + + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S) diff --git a/out/msp_uart1.obj b/out/msp_uart1.obj new file mode 100644 index 0000000..286b852 Binary files /dev/null and b/out/msp_uart1.obj differ diff --git a/out/msp_uartN.lst b/out/msp_uartN.lst new file mode 100644 index 0000000..e2f7fc5 --- /dev/null +++ b/out/msp_uartN.lst @@ -0,0 +1,454 @@ +C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE MSP_UARTN +OBJECT MODULE PLACED IN ..\out\msp_uartN.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\msp\uart\msp_uartN.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER + -NOINTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc + -;..\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG P + -RINT(..\out\msp_uartN.lst) TABS(2) OBJECT(..\out\msp_uartN.obj) + +line level source + + 1 ////////////////////////////////////////////////////////////////////////// + 2 /// COPYRIGHT NOTICE + 3 /// Copyright (c) 2023 CCSENS + 4 /// All rights reserved. + 5 /// + 6 /// @file main.c + 7 /// @brief main app + 8 /// + 9 ///(本文件实现的功能的详述) + 10 /// + 11 /// @version 1.1 CCsens technology + 12 /// @author CC + 13 /// @date 20150102 + 14 /// + 15 /// + 16 /// 修订说明:最初版本 + 17 /// Modified by: + 18 /// Modified date: + 19 /// Version: + 20 /// Descriptions: + 21 // 20160413 CC-ACC-VH02 + 22 + 23 /***************************************************************************** + 24 update by cc @20220305 + 25 + 26 + 27 + 28 针对多串口 和 单一串口 有区别 每个串口是独立的还是分开的有讲究 程序是复 + -的还是软件应用简单是 + 29 个需要平衡的事情. + 30 + 31 clib/clib.c: + 32 公用的函数 和硬件无关 + 33 放置串行模式(串口等其他通讯总线类的输出)输出的函数, + 34 一些覆盖模式输出的(lcd等固屏输出的)的也可使用 + 35 void Lc_print(void (*L0pf_send_uc)(char ww), char *dat,...) + 36 ----------------------------------------------------------------------------------------- + 37 + 38 app + 39 asp + 40 bsp + 41 + 42 debug 选择哪个串口作为debug协议的通讯 + 43 + 44 ----------------------------------------------------------------------------------------- + 45 + 46 ----------------------------------------------------------------------------------------- + 47 tpc/: 接收到的数据放入到指向特定协议的缓存中,和协议的格式有关 一般分为 + -头式或者标尾式 + 48 公用的串口通讯定义 + 49 struct _s_uart_rec_ 的公共协议包(关键的结构体)的声明------struct _s_uart_rec_ + 50 void L1_uart_2buf(struct _s_uart_rec_ *p)串行数据保存到指向特定协议的缓冲中 + C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 2 + + 51 + 52 -------------------------------------------------------------------------------------------- + 53 msp/msp_uartx.c + 54 + 55 + 56 + 57 + 58 + 59 -------------------------------------------------------------------------------------------- + 60 msp/msp_uart0.c 底层代码 和cpu相关 缓存发送也放在里面 + 61 L0_UART0_Init + 62 UART0_IRQHandler + 63 L0_Usend_uc------UserDef + 64 ----------------------------------------------------------------------------------------- + 65 ********************************************************************************/ + 66 + 67 #include "msp_uartN.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 68 + 69 TS_Uart_Send_ ts_Usend[SERIAL_MAX_NUM]= {0}; + 70 TS_send_buf_ ts_Usendbuf; + 71 + 72 TS_rec_road_ ts_Urec[SERIAL_MAX_NUM]= {0}; + 73 TS_rec_buf_ ts_Urecbuf; + 74 code vU16 S_send_max[4]= + 75 { + 76 D_send1_max, + 77 D_send2_max, + 78 D_send3_max, + 79 D_send4_max + 80 }; + 81 + 82 void L0_uartN_set(U8 uartx,U8 x) + 83 { + 84 1 switch(uartx) + 85 1 { + 86 2 case 0: + 87 2 SBUF = (x); + 88 2 break; + 89 2 case 1: + 90 2 S2BUF = (x);/// + 91 2 break; + 92 2 case 2: + 93 2 S3BUF = (x); + 94 2 break; + 95 2 case 3: + 96 2 S4BUF = (x); + 97 2 break; + 98 2 default:break; + 99 2 } + 100 1 } + 101 /* + 102 void L0_waitFree_uartN888(U8 uartx) + 103 { + 104 ts_Usend[uartx].over = 0; + 105 while(ts_Usend[uartx].now != 0) + 106 { + 107 #if 10 //发送数据特别快时,某些情况下会导致数据发送出错 + 108 if(ts_Usend[uartx].over ++ > 600000)///这样写居然出错 + 109 + 110 {////ts_uart[uartx].p->ok = D_ready; + 111 + C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 3 + + 112 ts_Usend[uartx].now = 0; + 113 break; + 114 } + 115 #endif + 116 } + 117 } + 118 */ + 119 + 120 void L0_waitFree_uartN(U8 uartx) + 121 { + 122 1 ts_Usend[uartx].over = 0; + 123 1 while(ts_Usend[uartx].now != 0) + 124 1 { + 125 2 #if 10 //发送数据特别快时,某些情况下会导致数据发送出错 + 126 2 /// if(ts_uart[uartx].p->over ++ > 600000)///这样写居然出错(vU32) + 127 2 ts_Usend[uartx].over ++; + 128 2 if(ts_Usend[uartx].over > 20000)////600 000--4s + 129 2 {////ts_uart[uartx].p->ok = D_ready; + 130 3 ts_Usend[uartx].max = ts_Usend[uartx].now; + 131 3 ts_Usend[uartx].ok = D_ready; + 132 3 // ts_Usend[uartx].over = 0; + 133 3 // ts_Usend[uartx].now = 1; + 134 3 ts_Usend[uartx].now = 0; + 135 3 break; + 136 3 } + 137 2 #endif + 138 2 } + 139 1 } + 140 + 141 #define D_485R 0 + 142 #define D_485S 1 + 143 + 144 + 145 void L0_uartN_485(U8 uartx,U8 x) + 146 { + 147 1 if (D_485R == x) + 148 1 { + 149 2 switch(uartx) + 150 2 { + 151 3 case 0: + 152 3 D_UART1_485_RX(); + 153 3 break; + 154 3 case 1: + 155 3 break; + 156 3 case 2: + 157 3 break; + 158 3 case 3: + 159 3 //// D_UART4_485_RX(); + 160 3 break; + 161 3 default:break; + 162 3 } + 163 2 }else + 164 1 { + 165 2 switch(uartx) + 166 2 { + 167 3 case 0: + 168 3 D_UART1_485_TX(); + 169 3 break; + 170 3 case 1: + 171 3 break; + 172 3 case 2: + 173 3 break; + C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 4 + + 174 3 case 3: + 175 3 //// D_UART4_485_TX(); + 176 3 break; + 177 3 default:break; + 178 3 } + 179 2 } + 180 1 + 181 1 } + 182 + 183 void L0_uartN_Array(U8 uartx,void *buf,U16 len) + 184 { + 185 1 u16 i; + 186 1 + 187 1 L0_waitFree_uartN(uartx); + 188 1 + 189 1 L0_uartN_485(uartx,D_485S); + 190 1 ts_Usend[uartx].ok = D_ready; + 191 1 ts_Usend[uartx].over = 0; + 192 1 ts_Usend[uartx].now = 1; + 193 1 if (len > ts_Usend[uartx].max_def) + 194 1 { + 195 2 len = ts_Usend[uartx].max_def - 1; + 196 2 } + 197 1 ts_Usend[uartx].max = len; + 198 1 //将参数buf拷贝至内部buf + 199 1 for(i = 0;i < len;i ++) + 200 1 { + 201 2 ts_Usend[uartx].sbuf[i] = ((U8*)buf)[i]; + 202 2 } + 203 1 L0_uartN_set(uartx,ts_Usend[uartx].sbuf[0]); + 204 1 } + 205 + 206 + 207 void L0_uartN_Arraylong(U8 uartx,U8 *buf,U16 usStart,U16 usEnd) + 208 { + 209 1 //L0_uart0_sendbuf(str,strlen(str)); + 210 1 U16 t; + 211 1 t = usEnd-usStart; + 212 1 t ++; + 213 1 L0_uartN_Array(uartx,&buf[usStart],t); + 214 1 } + 215 + 216 + 217 void L0_uartN_uc(U8 uartx,U8 ww) + 218 { + 219 1 L0_uartN_Array(uartx,&ww,1); + 220 1 } + 221 + 222 void L0_uartN_us(U8 uartx,vU16 ww) + 223 { + 224 1 U_U16 uStemp; + 225 1 uStemp.word = ww; + 226 1 ts_Usend[uartx].buf3[0] = uStemp.BYTE2.h; + 227 1 ts_Usend[uartx].buf3[1] = uStemp.BYTE2.l; + 228 1 L0_uartN_Array(uartx,ts_Usend[uartx].buf3,2); + 229 1 } + 230 + 231 void L0_uartN_ul(U8 uartx,vU32 ww) + 232 { + 233 1 U_U32 uStemp; + 234 1 L0_waitFree_uartN(uartx); + 235 1 uStemp.dWord = ww; + C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 5 + + 236 1 ts_Usend[uartx].buf3[0] = uStemp.BYTE4.byte0; + 237 1 ts_Usend[uartx].buf3[1] = uStemp.BYTE4.byte1; + 238 1 ts_Usend[uartx].buf3[2] = uStemp.BYTE4.byte2; + 239 1 ts_Usend[uartx].buf3[3] = uStemp.BYTE4.byte3; + 240 1 L0_uartN_Array(uartx,ts_Usend[uartx].buf3,4); + 241 1 } + 242 + 243 void L0_uartN_0d0a(U8 uartx) + 244 { + 245 1 L0_waitFree_uartN(uartx); + 246 1 ts_Usend[uartx].buf3[0] = 0x0d; + 247 1 ts_Usend[uartx].buf3[1] = 0x0a; + 248 1 L0_uartN_Array(uartx,ts_Usend[uartx].buf3,2); + 249 1 } + 250 + 251 void L0_uartN_uchex(U8 uartx,U8 ww) + 252 { + 253 1 L0_waitFree_uartN(uartx); + 254 1 ts_Usend[uartx].buf3[0] = cguHex2Char[D_uc_high(ww)][1]; + 255 1 ts_Usend[uartx].buf3[1] = cguHex2Char[D_uc_low (ww)][1]; + 256 1 L0_uartN_Array(uartx,ts_Usend[uartx].buf3,2); + 257 1 } + 258 + 259 void L0_uartN_ushex(U8 uartx,vU16 ww) + 260 { + 261 1 U_F16 k; + 262 1 L0_waitFree_uartN(uartx); + 263 1 k.us = ww; + 264 1 ts_Usend[uartx].buf3[0] = cguHex2Char[D_uc_high(k.BYTE2.H)][1]; + 265 1 ts_Usend[uartx].buf3[1] = cguHex2Char[D_uc_low (k.BYTE2.H)][1]; + 266 1 ts_Usend[uartx].buf3[2] = cguHex2Char[D_uc_high(k.BYTE2.L)][1]; + 267 1 ts_Usend[uartx].buf3[3] = cguHex2Char[D_uc_low (k.BYTE2.L)][1]; + 268 1 L0_uartN_Array(uartx,ts_Usend[uartx].buf3,4); + 269 1 } + 270 + 271 void L0_uartN_ulhex(U8 uartx,U32 ww) + 272 { + 273 1 U_U32 k; + 274 1 L0_waitFree_uartN(uartx); + 275 1 k.dWord = ww; + 276 1 ts_Usend[uartx].buf3[0] = cguHex2Char[D_uc_high(k.BYTE4.byte0)][1]; + 277 1 ts_Usend[uartx].buf3[1] = cguHex2Char[D_uc_low (k.BYTE4.byte0)][1]; + 278 1 ts_Usend[uartx].buf3[2] = cguHex2Char[D_uc_high(k.BYTE4.byte1)][1]; + 279 1 ts_Usend[uartx].buf3[3] = cguHex2Char[D_uc_low (k.BYTE4.byte1)][1]; + 280 1 ts_Usend[uartx].buf3[4] = cguHex2Char[D_uc_high(k.BYTE4.byte2)][1]; + 281 1 ts_Usend[uartx].buf3[5] = cguHex2Char[D_uc_low (k.BYTE4.byte2)][1]; + 282 1 ts_Usend[uartx].buf3[6] = cguHex2Char[D_uc_high(k.BYTE4.byte3)][1]; + 283 1 ts_Usend[uartx].buf3[7] = cguHex2Char[D_uc_low (k.BYTE4.byte3)][1]; + 284 1 L0_uartN_Array(uartx,ts_Usend[uartx].buf3,8); + 285 1 } + 286 + 287 void L0_uartN_str(U8 uartx,U8 *str) + 288 { + 289 1 L0_uartN_Array(uartx,str,Lc_strlen(str)); + 290 1 } + 291 + 292 void L0_uartN_uchexArray(U8 uartx,vU8 *buf,U16 n) + 293 { + 294 1 int i; + 295 1 for(i=0;i>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//withoutbuf>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + 319 + 320 void L0_uartN_sbuf(U8 uartx)/////cc 2023/04/23--4:23:19 修正bug 调用时放到ts_Usend[uartx].max 复 + -的前面 + 321 { + 322 1 ts_Usend[uartx].max = 0; + 323 1 ts_Usend[uartx].now = 0; + 324 1 ts_Usend[uartx].ok = D_ready; + 325 1 ts_Usend[uartx].max_def = S_send_max[uartx]; + 326 1 switch(uartx) + 327 1 { + 328 2 case 0: + 329 2 ts_Usend[uartx].sbuf = ts_Usendbuf.s1; + 330 2 break; + 331 2 case 1: + 332 2 ts_Usend[uartx].sbuf = ts_Usendbuf.s2; + 333 2 break; + 334 2 case 2: + 335 2 ts_Usend[uartx].sbuf = ts_Usendbuf.s3; + 336 2 break; + 337 2 case 3: + 338 2 ts_Usend[uartx].sbuf = ts_Usendbuf.s4; + 339 2 break; + 340 2 default:break; + 341 2 } + 342 1 } + 343 + 344 ////使用内置的usend buf的发送 cc 2023/04/23--4:25:8 调用的时候不可使用本通道的缓 + - + 345 void L0_uartN_Array_withoutbuf(U8 uartx,U16 len) + 346 { + 347 1 /// u16 i; + 348 1 L0_waitFree_uartN(uartx); + 349 1 + 350 1 L0_uartN_485(uartx,D_485S); + 351 1 L0_uartN_sbuf(uartx); + 352 1 + 353 1 if (len > ts_Usend[uartx].max_def) + 354 1 { + 355 2 len = ts_Usend[uartx].max_def - 1; + 356 2 } + 357 1 ts_Usend[uartx].max = len; + C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 7 + + 358 1 ts_Usend[uartx].now = 1; + 359 1 L0_uartN_set(uartx,ts_Usend[uartx].sbuf[0]); + 360 1 } + 361 + 362 ///cc 2023/04/23--4:25:8 调用的时候不可使用本通道的缓存 + 363 void L0_uartN_Arrayhex_withoutbuf(U8 uartx,vU8 *buf,U16 len) + 364 { + 365 1 vU16 i;vU16 t; + 366 1 + 367 1 L0_waitFree_uartN(uartx); + 368 1 L0_uartN_sbuf(uartx); + 369 1 if (len > (ts_Usend[uartx].max_def/3)) + 370 1 { + 371 2 len = ts_Usend[uartx].max_def/3 - 1; + 372 2 } + 373 1 for(i = 0;i < len;i ++) + 374 1 { + 375 2 + 376 2 t = i * 3; + 377 2 ts_Usend[uartx].sbuf[t] = cguHex2Char[D_uc_high(buf[i])][1];/// 34 '3'--33 + 378 2 t ++; + 379 2 ts_Usend[uartx].sbuf[t] = cguHex2Char[D_uc_low (buf[i])][1];/// 34 '3'--33 + 380 2 t ++; + 381 2 ts_Usend[uartx].sbuf[t] = ' '; + 382 2 t ++; + 383 2 + 384 2 } + 385 1 // len 2 11x 22x \0 + 386 1 ts_Usend[uartx].sbuf[t] = ' '; + 387 1 t++; + 388 1 ts_Usend[uartx].sbuf[t] = 0x00; + 389 1 L0_uartN_Array_withoutbuf(uartx,t-1); + 390 1 + 391 1 } + 392 + 393 + 394 + 395 + 396 + 397 + 398 + 399 + 400 + 401 + 402 + 403 + 404 + 405 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 3384 ---- + CONSTANT SIZE = 8 ---- + XDATA SIZE = 392 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- + C51 COMPILER V9.54 MSP_UARTN 09/06/2024 11:24:45 PAGE 8 + +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/msp_uartN.obj b/out/msp_uartN.obj new file mode 100644 index 0000000..1ce5c67 Binary files /dev/null and b/out/msp_uartN.obj differ diff --git a/out/stc_8_delay.lst b/out/stc_8_delay.lst new file mode 100644 index 0000000..ff108e7 --- /dev/null +++ b/out/stc_8_delay.lst @@ -0,0 +1,220 @@ +C51 COMPILER V9.54 STC_8_DELAY 09/06/2024 11:24:45 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE STC_8_DELAY +OBJECT MODULE PLACED IN ..\out\stc_8_delay.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\cpu\stc_8_delay.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOI + -NTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;.. + -\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRIN + -T(..\out\stc_8_delay.lst) TABS(2) OBJECT(..\out\stc_8_delay.obj) + +line level source + + 1 ////20220626_22154 CCmodify stc-isp的经过实测不准确 + 2 #include "bsp_config.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 3 + 4 + 5 /////SYMBOL: L0_Del + 6 void Lc_delay_nop(U8 i) + 7 { + 8 1 U8 m; + 9 1 for(m=i;m>0;m--) + 10 1 { + 11 2 NOP(); + 12 2 } + 13 1 } + 14 + 15 + 16 #if(MainFre_5M == D_sys_MainFre) + + void Delay100us() //@5.5296MHz + { + unsigned char i; + + _nop_(); + i = 182; + while (--i); + } + + void Delay1ms() //@5.5296MHz + { + unsigned char i, j; + + _nop_(); + _nop_(); + i = 8; + j = 43; + do + { + while (--j); + } while (--i); + } + + #elif(MainFre_11M == D_sys_MainFre) + + + void Delay1us() //@11.0592MHz + { + _nop_(); + _nop_(); + _nop_(); + } + + void Delay1ms() //@11.0592MHz + C51 COMPILER V9.54 STC_8_DELAY 09/06/2024 11:24:45 PAGE 2 + + { + unsigned char i, j; + + i = 15; + j = 90; + do + { + while (--j); + } while (--i); + } + void Delay100us() //@11.0592MHz + { + unsigned char i, j; + + i = 2; + j = 109; + do + { + while (--j); + } while (--i); + } + + + #elif(MainFre_22M == D_sys_MainFre) + 76 + 77 + 78 void Delay1ms() //@22.1184MHz + 79 { + 80 1 unsigned char i, j; + 81 1 + 82 1 i = 29; + 83 1 i = 10; + 84 1 ////j = 183; + 85 1 j = 52;//830/35; + 86 1 do + 87 1 { + 88 2 while (--j); + 89 2 } while (--i); + 90 1 } + 91 void Delay1us() //@22.1184MHz + 92 { + 93 1 unsigned char i; + 94 1 + 95 1 _nop_(); + 96 1 i = 5; + 97 1 while (--i); + 98 1 } + 99 + 100 + 101 void Delay100us() //@22.1184MHz + 102 { + 103 1 unsigned char i, j; + 104 1 + 105 1 i = 3; + 106 1 j = 221; + 107 1 do + 108 1 { + 109 2 while (--j); + 110 2 } while (--i); + 111 1 } + 112 void Delay500us() //@22.1184MHz + 113 { + C51 COMPILER V9.54 STC_8_DELAY 09/06/2024 11:24:45 PAGE 3 + + 114 1 unsigned char i, j; + 115 1 + 116 1 i = 15; + 117 1 j = 90; + 118 1 do + 119 1 { + 120 2 while (--j); + 121 2 } while (--i); + 122 1 } + 123 + 124 + 125 + 126 #elif(MainFre_44M == D_sys_MainFre) + + + void Delay1ms() + { + unsigned char i, j; + + i = 15; + ////j = 183; + j = 102;//830/35; + do + { + while (--j); + } while (--i); + } + void Delay1us() // + { + unsigned char i; + + _nop_(); + i = 10; + while (--i); + } + + + void Delay100us() // + { + unsigned char i, j; + + i = 3; + j = 221; + do + { + while (--j); + } while (--i); + } + void Delay500us() //@ + { + unsigned char i, j; + + i = 15; + j = 180; + do + { + while (--j); + } while (--i); + } + + + #elif(MainFre_27M == D_sys_MainFre) + C51 COMPILER V9.54 STC_8_DELAY 09/06/2024 11:24:45 PAGE 4 + + + + #else ///MainFre_11M + + #endif//D_sys_MainFre) + 181 + 182 + 183 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 159 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 9 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/stc_8_delay.obj b/out/stc_8_delay.obj new file mode 100644 index 0000000..938eb1e Binary files /dev/null and b/out/stc_8_delay.obj differ diff --git a/out/stcweight b/out/stcweight new file mode 100644 index 0000000..f57a5f0 Binary files /dev/null and b/out/stcweight differ diff --git a/out/stcweight.SBR b/out/stcweight.SBR new file mode 100644 index 0000000..362d5e1 Binary files /dev/null and b/out/stcweight.SBR differ diff --git a/out/stcweight.build_log.htm b/out/stcweight.build_log.htm new file mode 100644 index 0000000..a1062b1 --- /dev/null +++ b/out/stcweight.build_log.htm @@ -0,0 +1,86 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.2 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 Administrator, 2, LIC=JLB1Q-NJQTZ-4FNI9-4D9LY-9HMEJ-3686Q + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.54 +Toolchain Path: E:\KeilC51\C51\BIN +C Compiler: C51.exe V9.54 +Assembler: A51.exe V8.02c +Linker/Locator: LX51.exe V4.66.41.0 +Library Manager: LIBX51.exe V4.30.1.0 +Hex Converter: OHX51.exe V1.45.0.0 +CPU DLL: S8051.DLL V3.100.0.0 +Dialog DLL: DP51.DLL V2.62.0.1 +

Project:

+C:\Users\Administrator\Desktop\Weight-FLT\keilp\stcTTSS2_W5.uvprojx +Project File Date: 05/31/2024 + +

Output:

+Rebuild target 'STC8H3K64S2' +compiling app_weight.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +..\source\app\app_weight.c(530): warning C182: pointer to different objects +..\source\app\app_weight.c(530): warning C182: pointer to different objects +compiling main.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling app_config.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +..\source\app\app_config.c(116): warning C280: 't': unreferenced local variable +compiling asp_schain.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling asp_lowpower.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +assembling STARTUP.A51... +compiling stc_8_delay.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling msp_uartN.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling msp_time2.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling msp_uart1.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +..\source\msp\uart\msp_uart1.c(62): warning C320: "MainFre_22M BRT_115200" +compiling msp_iicMx.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling msp_eeprom.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling msp_adc.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling bsp_config.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling bsp_led.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling bsp_cs1232.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling TTSS_task.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling TTSS_tick.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling TTSS_time_stc.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling tpc_road.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +compiling c_lib.c... +..\source\clib\c_lib.c(293): warning C291: not every exit path returns a value +..\source\clib\c_lib.c(329): warning C291: not every exit path returns a value +..\source\clib\c_lib.c(366): warning C291: not every exit path returns a value +..\source\clib\c_lib.c(395): warning C291: not every exit path returns a value +compiling c_delay.c... +compiling debug_drv.c... +..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M" +..\source\debug\debug_drv.c(177): warning C320: "CC: without uart3" +..\source\debug\debug_drv.c(191): warning C320: "CC: without uart4" +..\source\debug\debug_drv.c(286): warning C320: "CC: putchar ok" +linking... +Program Size: data=17.1 xdata=1324 const=90 code=14119 +creating hex file from "..\out\stcweight"... +"..\out\stcweight" - 0 Error(s), 31 Warning(s). +
+ + diff --git a/out/stcweight.hex b/out/stcweight.hex new file mode 100644 index 0000000..69a41f1 --- /dev/null +++ b/out/stcweight.hex @@ -0,0 +1,890 @@ +:04000000022764224D +:10000B000233D57B017A02791612356F90021A747E +:10001B00E0F07F011235072202260EE709F608DF12 +:10002B00FA8046E709F208DFFA803E88828C83E784 +:10003B0009F0A3DFFA8032E309F608DFFA8078E3F0 +:10004B0009F208DFFA807088828C83E309F0A3DF62 +:10005B00FA806489828A83E0A3F608DFFA805889E4 +:10006B00828A83E0A3F208DFFA804C80D280FA8088 +:10007B00C680D4806980F28033801080A680EA80AD +:10008B009A80A880DA80E280CA803389828A83ECE6 +:10009B00FAE493A3C8C582C8CCC583CCF0A3C8C56A +:1000AB0082C8CCC583CCDFE9DEE7800D89828A83E9 +:1000BB00E493A3F608DFF9ECFAA9F0EDFB228982B1 +:1000CB008A83ECFAE0A3C8C582C8CCC583CCF0A365 +:1000DB00C8C582C8CCC583CCDFEADEE880DB898269 +:1000EB008A83E493A3F208DFF980CC88F0EF6001F8 +:1000FB000E4E60C388F0ED2402B4040050B9F582B3 +:10010B00EB2402B4040050AF2323458223900076E6 +:10011B0073BB010689828A83E0225002E722BBFE71 +:10012B0002E32289828A83E49322BB010CE58229B4 +:10013B00F582E5833AF583E0225006E92582F8E65D +:10014B0022BBFE06E92582F8E222E58229F582E54B +:10015B00833AF583E49322BB010FF8E58229F582FC +:10016B00E5833AF583E028F0225009C58229F8E5AA +:10017B008226F622BBFE09C58229F8E22582F222ED +:10018B00F8EA2583F583E9932822BB010689828A45 +:10019B0083F0225002F722BBFE01F322F8BB010DC4 +:1001AB00E58229F582E5833AF583E8F0225006E9EA +:1001BB002582C8F622BBFE05E92582C8F222EF8D07 +:1001CB00F0A4A8F0CF8CF0A428CE8DF0A42EFE22A4 +:1001DB00BC000BBE0029EF8DF084FFADF022E4CC08 +:1001EB00F875F008EF2FFFEE33FEEC33FCEE9DECD1 +:1001FB00984005FCEE9DFE0FD5F0E9E4CEFD22ED17 +:10020B00F8F5F0EE8420D21CFEADF075F008EF2F60 +:10021B00FFED33FD4007985006D5F0F222C398FD51 +:10022B000FD5F0EA22C2D5EC30E709B2D5E4C39D75 +:10023B00FDE49CFCEE30E715B2D5E4C39FFFE49ED2 +:10024B00FE1201DBC3E49DFDE49CFC80031201DB89 +:10025B0030D507C3E49FFFE49EFE22C5F0F8A3E070 +:10026B0028F0C5F0F8E582158270021583E038F0AE +:10027B0022A3F8E0C5F025F0F0E582158270021597 +:10028B0083E0C838F0E822BB010A89828A83E0F553 +:10029B00F0A3E022500687F009E71922BBFE07E323 +:1002AB00F5F009E3192289828A83E493F5F074014E +:1002BB009322BB0110E58229F582E5833AF583E0B1 +:1002CB00F5F0A3E0225009E92582F886F008E62232 +:1002DB00BBFE0AE92582F8E2F5F008E222E5832A63 +:1002EB00F583E993F5F0A3E99322F8BB0111E582BD +:1002FB0029F582E5833AF583E8F0E5F0A3F0225087 +:10030B0009E92582C8F608A6F022BBFE09E9258279 +:10031B00C8F2E5F008F222EF2BFFEE3AFEED39FDC5 +:10032B00EC38FC22C3EF9BFFEE9AFEED99FDEC98A7 +:10033B00FC22E88FF0A4CC8BF0A42CFCE98EF0A46B +:10034B002CFC8AF0EDA42CFCEA8EF0A4CDA8F08B4B +:10035B00F0A42DCC3825F0FDE98FF0A42CCD35F091 +:10036B00FCEB8EF0A4FEA9F0EB8FF0A4CFC5F02E22 +:10037B00CD39FEE43CFCEAA42DCE35F0FDE43CFC8B +:10038B002275F008758200EF2FFFEE33FECD33CDD3 +:10039B00CC33CCC58233C5829BED9AEC99E5829820 +:1003AB00400CF582EE9BFEED9AFDEC99FC0FD5F01F +:1003BB00D6E4CEFBE4CDFAE4CCF9A88222B800C196 +:1003CB00B90059BA002DEC8BF084CFCECDFCE5F003 +:1003DB00CBF97818EF2FFFEE33FEED33FDEC33FC4A +:1003EB00EB33FB10D703994004EB99FB0FD8E5E4F3 +:1003FB00F9FA227818EF2FFFEE33FEED33FDEC33D5 +:10040B00FCC933C910D7059BE99A4007EC9BFCE963 +:10041B009AF90FD8E0E4C9FAE4CCFB2275F010EF9F +:10042B002FFFEE33FEED33FDCC33CCC833C810D7E2 +:10043B00079BEC9AE899400AED9BFDEC9AFCE89936 +:10044B00F80FD5F0DAE4CDFBE4CCFAE4C8F922C31B +:10045B00E49FFFE49EFEE49DFDE49CFC22EB9FF5F4 +:10046B00F0EA9E42F0E99D42F0EC6480C86480980B +:10047B0045F022EB9FF5F0EA9E42F0E99D42F0E851 +:10048B009C45F022E8600FECC313FCED13FDEE135B +:10049B00FEEF13FFD8F122E8600FEFC333FFEE330B +:1004AB00FEED33FDEC33FCD8F122BB010789828AC8 +:1004BB00830205435005E9F80206E9BBFE05E9F89E +:1004CB000206F589828A8302054FBB010DE582295D +:1004DB00F582E5833AF5830205435007E92582F857 +:1004EB000206E9BBFE07E92582F80206F5E582293B +:1004FB00F582E5833AF58302054FBB010789828AB2 +:10050B00830205E05005E9F802071BBBFE05E9F87D +:10051B0002072722BB010DE58229F582E5833AF517 +:10052B00830205E05007E92582F802071BBBFE0793 +:10053B00E92582F802072722E0FCA3E0FDA3E0FEF9 +:10054B00A3E0FF22E493FC740193FD740293FE7409 +:10055B000393FF22E0F8A3E0F9A3E0FAA3E0FB2268 +:10056B00E493F8740193F9740293FA740393FB22E6 +:10057B00BB010DE58229F582E5833AF58302055F20 +:10058B005007E92582F8020701BBFE07E92582F82F +:10059B0002070EE58229F582E5833AF58302056BA6 +:1005AB007401FF3395E0FEFDFCA3A3A3E0CF2FF076 +:1005BB00E582158270021583E0CE3EF0E58215824E +:1005CB0070021583E0CD3DF0E58215827002158334 +:1005DB00E0CC3CF022ECF0A3EDF0A3EEF0A3EFF0B7 +:1005EB0022A8828583F0D083D082120603120603E1 +:1005FB00120603120603E473E493A3C583C5F0C587 +:10060B0083C8C582C8F0A3C583C5F0C583C8C5829E +:10061B00C822BB010789828A830205EC5005E9F8E1 +:10062B00020733BBFE05E9F802074C22E0FBA3E00F +:10063B00FAA3E0F922F8E0FBA3A3E0F925F0F0E53B +:10064B0082158270021583E0FA38F022EBF0A3EAF0 +:10065B00F0A3E9F022BB010DE58229F582E5833A8F +:10066B00F5830206375007E92582F8020765BBFEC2 +:10067B0007E92582F802076EE58229F582E5833AC0 +:10068B00F583020777D083D082F8E493701274015C +:10069B0093700DA3A393F8740193F5828883E4738D +:1006AB007402936860EFA3A3A380DF8A838982E43B +:1006BB0073EC8EF0A4CCC5F0CCCDF8EFA4CEC5F086 +:1006CB002DFDE43CFCE8A42EC8C5F03DFDE43CFC4C +:1006DB00EFA4FFE5F028FEE43DFDE43CFC22E6FC44 +:1006EB0008E6FD08E6FE08E6FF22E2FC08E2FD084C +:1006FB00E2FE08E2FF22E6FB08E6F908E6FA08E666 +:10070B00CBF822E2FB08E2F908E2FA08E2CBF82286 +:10071B00ECF608EDF608EEF608EFF622ECF208ED33 +:10072B00F208EEF208EFF222D083D082E493F608BF +:10073B00740193F608740293F608740393F6740429 +:10074B0073D083D082E493F208740193F20874029D +:10075B0093F208740393F2740473E6FB08E6FA0849 +:10076B00E6F922E2FB08E2FA08E2F922E493FB74D1 +:10077B000193FA740293F9229004C612065790045F +:10078B00C6120637758204758300120135FFEF120E +:10079B0006900886540E3C550C8D560D7E570A3428 +:1007AB008308E493095C9407BFE00DA2E10DDBE93C +:1007BB0000000E3C9004C612063775820B75830041 +:1007CB00E41201A79004C612063775820A758300DE +:1007DB00E41201A77F0012203B7BFF7A297929C005 +:1007EB0003C002C0019004C61206377582067583DA +:1007FB0000120660758201758300120135FF7E00C1 +:10080B009002ABEEF0A3EFF0D001D002D0031212A6 +:10081B00387F0012203B9004C6120637758209758B +:10082B00830074011201A79004C612063775820566 +:10083B0075830074541201A79004C6120637758293 +:10084B000475830074E11201A79002D0120543EFE7 +:10085B00247DFFEE3400FEED3400FDEC3400FC9003 +:10086B0004C6120637120505229004C61206377508 +:10087B00820475830074541201A7229004C61206D9 +:10088B0037758206758300120660758201758300C9 +:10089B00120135FF12318BEF6003020E3C9004C640 +:1008AB001206377582067583001206607582017514 +:1008BB008300120135FF9004C6120637E9240CF9A8 +:1008CB00EA3400FA1226C29004C612063775820467 +:1008DB0075830074931201A7229004C61206377514 +:1008EB00820C7583001204D512334D9004C6120688 +:1008FB0037758210758300EE8FF01202F59004C6E7 +:10090B0012063775820675830012066075820475B0 +:10091B0083001202BDFFAEF09004C612063775823B +:10092B00107583001202BDFDACF0122BCA9004C6E9 +:10093B00120637758212758300EE8FF01202F59056 +:10094B0004C612063775820475830074941201A7CE +:10095B00229004C61206377582267583001202BDDB +:10096B00FFAEF09004C6120637758224758300EE35 +:10097B008FF01202F59004C6120637758228758324 +:10098B00001202BDFFAEF09004C612063775822628 +:10099B00758300EE8FF01202F59004C612063775C0 +:1009AB0082127583001202BDFFAEF09004C61206D0 +:1009BB0037758228758300EE8FF01202F59004C60E +:1009CB00120637E92424F9EA3400FA12213790048D +:1009DB00C61206377582267583001202BDFFAEF074 +:1009EB009004C6120637758214758300EE8FF012D1 +:1009FB0002F59004C6120637758209758300120141 +:100A0B0035FFEF60129004C61206377582047583AA +:100A1B000074831201A7229004C612063775820454 +:100A2B0075830074561201A7229004C612063775FF +:100A3B00820B758300120135FFEFC3940C502A7D96 +:100A4B00397F001236A09004C612063775820B75DB +:100A5B00830074011201629004C61206377582047A +:100A6B0075830074541201A7229004C612063775C1 +:100A7B00820675830012066075820275830012026E +:100A8B00BDFFAEF09004C612063775821075830059 +:100A9B001202BDFDACF0122D3C9004C61206377548 +:100AAB008206758300120660758204758300EE8FD3 +:100ABB00F01202F57F0012203B7BFF7A2979451259 +:100ACB0012387F0012203B7BFF7A29795DC003C06F +:100ADB0002C0019004C61206377582067583001298 +:100AEB000660758201758300120135FF7E0090024E +:100AFB00ABEEF0A3EFF09004C612063775821075BB +:100B0B0083001202BDFFAEF09002ADEEF0A3EFF04A +:100B1B009004C6120637758206758300120660753F +:100B2B0082047583001202BDFFAEF09002AFEEF0AF +:100B3B00A3EFF09004C61206377582067583001278 +:100B4B0006607582027583001202BDFFAEF0900243 +:100B5B00B1EEF0A3EFF0D001D002D0031212387F28 +:100B6B000012203B7BFF7A29798AC003C002C001A7 +:100B7B009004C612063775820675830012066075DF +:100B8B008201758300120135FF7E009002ABEEF0FF +:100B9B00A3EFF09004C6120637758210758300120E +:100BAB0002BDFFAEF09002ADEEF0A3EFF09004C6E5 +:100BBB0012063775820675830012066075820475FE +:100BCB0083001202BDFFAEF09002AFEEF0A3EFF088 +:100BDB009004C6120637758206758300120660757F +:100BEB0082027583001202BDFFAEF09002B1EEF0EF +:100BFB00A3EFF0D001D002D0031212389004C6122A +:100C0B0006377582147583001202BDFFAEF0E4FC4B +:100C1B00FD9004C612063775821675830012051FE8 +:100C2B009004C6120637758206758300120660752E +:100C3B008206758300120135F9C0019004C61206B5 +:100C4B00377582167583001204D5D001A8011204E2 +:100C5B00A29004C612063775821A75830012051FFF +:100C6B009004C6120637758209758300E41201A73A +:100C7B009004C612063775820475830074561201F0 +:100C8B00A7229004C6120637E9241AF9EA3400FAAF +:100C9B00C003C002C0011204B59004C6120637751A +:100CAB00821675830012057B12032FD001D002D060 +:100CBB00031205059004C6120637E9241AF9EA3423 +:100CCB0000FAC003C002C0011204B5C004C005C0C5 +:100CDB0006C0079004C6120637758214758300127E +:100CEB0002BDFFAEF0AB07AA06E4F9F8D007D006B9 +:100CFB00D005D004120322D001D002D00312050577 +:100D0B009004C6120637758206758300120660754D +:100D1B008206758300120135F9C0019004C61206D4 +:100D2B003775821A7583001204D5D001A8011204FD +:100D3B008F9004C612063775821675830012051F35 +:100D4B009004C61206377582167583001204D5906F +:100D5B0004C6120637758222758300EE8FF01202DD +:100D6B00F59004C61206377582047583007457120A +:100D7B0001A7229004C612063775820A7583007488 +:100D8B00011201A79004C612063775820475830001 +:100D9B0074541201A722229004C61206371204B50E +:100DAB009002D012055FC312047E5003020E3C90DA +:100DBB0004C6120637758205758300120135FF9044 +:100DCB0004C6120637758204758300EF1201A72241 +:100DDB009004C61206371204B57BFF7AFF79FF78B1 +:100DEB00FF1203229004C61206371205059004C6A3 +:100DFB001206371204B57B007A0079007800C31213 +:100E0B00047E702D9004C612063712061D000000DA +:100E1B00009004C6120637758205758300120135E2 +:100E2B00FF9004C6120637758204758300EF12011A +:100E3B00A7229004C01206577B017A01794E120744 +:100E4B00837B017A01797C1207837B017A0179AA72 +:100E5B001207837B017A0179D81207839004C012A1 +:100E6B000637758204758300120135FFEF12069069 +:100E7B000F360B10420D0EF20E11200F0FC0161075 +:100E8B00632D0E9AE01132E1116BE9000011CC7F5A +:100E9B000012203B9004C012063775822575830023 +:100EAB00E41201A79004C0120637758226758300E1 +:100EBB00E41201A79004C012063775822A758300CD +:100ECB00E475F0001202F57F0012203B7BFF7A2FB6 +:100EDB0079B41212389004C01206377582047583E8 +:100EEB0000740E1201A7229001E2E0FFEF64016093 +:100EFB00030211CC900158E4F0900186E4F09001CC +:100F0B00B4E4F09001E2E4F09004C012063775826D +:100F1B002575830074011201629004C012063775A7 +:100F2B008204758300740B1201A7229004C0120671 +:100F3B0037758225758300120135FFEFC39401408D +:100F4B00629004C0120637758225758300E4120186 +:100F5B00A7900170E0FEA3E0FF90017AEEF0A3EF03 +:100F6B00F090019EE0FEA3E0FF9001A8EEF0A3EF4E +:100F7B00F09001CCE0FEA3E0FF9001D6EEF0A3EFE2 +:100F8B00F09001FAE0FEA3E0FF900204EEF0A3EF75 +:100F9B00F09004C012063775820475830074161224 +:100FAB0001A7229004C01206377582047583007462 +:100FBB000E1201A72290017AE0FEA3E0FFE4FCFDF4 +:100FCB009002271205E090022712055F9001A8E01E +:100FDB00FEA3E0FFE4FCFD1203229002271205E0C2 +:100FEB0090022712055F9001D6E0FEA3E0FFE4FC20 +:100FFB00FD1203229002271205E090022712055FD3 +:10100B00900204E0FEA3E0FFE4FCFD120322900239 +:10101B00271205E0900227120543780212048F90E5 +:10102B00022F1205E09004C01206377582047583F7 +:10103B0000740D1201A72290022F12054390022378 +:10104B001205E0121B699004C012063775820475F5 +:10105B008300742D1201A722900240E0FEA3E0FF53 +:10106B0090023EE0FCA3E0FDD3ED9FEC9E403F9051 +:10107B0004C012063775822A7583001202BDFFAEBB +:10108B00F09004C01206377582287583001202BDDA +:10109B00FDACF0C3ED9FFFEC9EFE9004C012063733 +:1010AB0075822C758300EE8FF01202F5801390047D +:1010BB00C012063775822C758300E475F00012029E +:1010CB00F59004C0120637758205758300740E12F5 +:1010DB0001A79004C012063775820475830074E172 +:1010EB001201A79002D0120543EF2411FFEE34003A +:1010FB00FEED3400FDEC3400FC9004C012063712F8 +:10110B000505229004C0120637758204758300749E +:10111B000E1201A7229004C0120637758204758344 +:10112B0000740E1201A7229004C01206371204B5E8 +:10113B009002D012055FC312047E50030211CC90B3 +:10114B0004C0120637758205758300120135FF90B6 +:10115B0004C0120637758204758300EF1201A722B3 +:10116B009004C01206371204B57BFF7AFF79FF7823 +:10117B00FF1203229004C01206371205059004C01B +:10118B001206371204B57B007A0079007800C3127F +:10119B00047E702D9004C012063712061D0000004D +:1011AB00009004C012063775820575830012013555 +:1011BB00FF9004C0120637758204758300EF12018D +:1011CB00A722E50824ABF582E43402F583E0050899 +:1011DB00229002A83007039002ABE475F0011206CF +:1011EB004002011C2000E97F2ED2008018EF540F23 +:1011FB002490D43440D4FF30040BEF24BFB41A0036 +:10120B0050032461FFE50960021509050CE50C701C +:10121B0002050B30070E9002A8E475F00112064090 +:10122B00EF0201950236D97403D2078003E4C2079B +:10123B00F5089002A8120657E4F509F50BF50CE535 +:10124B000960077F2012121080F5750AFFC201C2D8 +:10125B0000C202C203C205C206C2081211DCFF7033 +:10126B000D3007057F00121221AF0CAE0B22B425F7 +:10127B005FC2D5C2041211DCFF24D0B40A00501A8D +:10128B0075F00A780930D50508B6FF0106C6A42605 +:10129B00F620D5047002D20380D924CFB41A00EF04 +:1012AB005004C2E5D204021422D20180C6D20080BF +:1012BB00C0D20280BCD2D580BAD20580B47F2012B6 +:1012CB0012102002077401B5090040F11211CDFF75 +:1012DB0012121002124AD208D20680951211CDFBBF +:1012EB001211CDFA1211CDF94A4B700679F37A141B +:1012FB007BFF20022EE509602A7E008E827583001B +:10130B0012013560060EEE650A70F0C2D5EBC0E037 +:10131B00EAC0E0E9C0E0EE121469D0E0F9D0E0FADF +:10132B00D0E0FB12011CFF60AAEBC0E0EAC0E0E9D1 +:10133B00C0E0121210D0E02401F9D0E03400FAD052 +:10134B00E0FBE50A0460DCD50AD980877BFF7A14C1 +:10135B007965D202809C791080027908C206C20896 +:10136B008008D2D5790A8004790AC2D5E50A0470BF +:10137B0002F50AE4FAFDFEFF1211CDFC7B082001F9 +:10138B00131211CDFD7B1030000A1211CDFE12117C +:10139B00CDFF7B20EC3382D592D55013C3E43000C4 +:1013AB00069FFFE49EFEE42001039DFDE49CFCE40C +:1013BB00CBF8C201EC700CCFCECDCCE824F8F87092 +:1013CB00F38017C3EF33FFEE33FEED33FDEC33FC4D +:1013DB00EB33FB994002FB0FD8E9EB300105F8D05A +:1013EB00E0C448B201C0E00AEC4D4E4F78207B00C0 +:1013FB0070C2EAB50A0040BCC0E012146BD0F0D04A +:10140B00E0200104C4C0E0C4B201C0F01211F9D055 +:10141B00F0D5F0EB02124A12069012E75313615803 +:10142B0012B84C12B44213654F136D44136D49122D +:10143B00CD4313735513574613574513574715137E +:10144B005012BC2D12C02E12E32B12C42312E1201A +:10145B0014FC2A127C48000012DB3F3F3F00790A44 +:10146B00A2D5200314300509B910020404B90801F0 +:10147B0004A2D52006025001042002689202B5098D +:10148B00005034C0E07F203003197F30A202720677 +:10149B007205500F1214C2C202C206C205C2087FE7 +:1014AB0030800F300503E9C0E0121210300503D075 +:1014BB00E0F9D0E0B509CC3005177F30B9100C122C +:1014CB0012107F583004077F788003B9080312127B +:1014DB00103002057F2D0212107F202008F87F2B81 +:1014EB002006F322920280CF286E756C6C2900D2F5 +:1014FB00011211CD3001F8C201780930D50108F67F +:10150B0002127C2D504349581211CD2403B405000F +:10151B004001E490150E93121201743A121201D28B +:10152B0003750904021361900512EFF09004841205 +:10153B00063712011CFF900512E0FEEE6F600302EE +:10154B0017559004841206377582027583001201B9 +:10155B0035FFEF120690157410158E2016513016AC +:10156B007B401735500000174743BA805391FB530C +:10157B0092FBB29212255343BA805391FB5392FBC9 +:10158B00B29222900484120637758205758300127D +:10159B000135FFEFC39403400302175590048412E7 +:1015AB000637758206758300120135FF7E00EF7FCB +:1015BB0000FE9004841206377582077583001201B2 +:1015CB0035FD7C00EE4CFEEF4DFF90048412063788 +:1015DB00758205758300120135FDED25E025E024AC +:1015EB0008F582E43402F583EEF0A3EFF0900223CA +:1015FB001205439004841206377582057583001219 +:10160B000135FDED25E025E0240AF582E43402F5F1 +:10161B0083EEF0A3EFF043BA805391FB5392FBB2EE +:10162B00921229B743BA805391FB5392FBB2921299 +:10163B0028987B017A027976900453743AF07F00F4 +:10164B007E00122E872290023EE0FEA3E0FF900266 +:10165B0040EEF0A3EFF043BA805391FB5392FBB2F1 +:10166B0092122AC443BA805391FB5392FBB292223B +:10167B0090031FE4F090031FE0FFEFC394034003BC +:10168B000217557F0012203B7BFF7A2F79CD9003F9 +:10169B001FE0FF7E009002ABEEF0A3EFF090031F74 +:1016AB00E0FFEF25E025E02408F582E43402F58322 +:1016BB00E0FEA3E0FF9002ADEEF0A3EFF090031F6E +:1016CB00E0FFEF25E025E02408F582E43402F58302 +:1016DB00E0FEA3E0FF9002AFEEF0A3EFF090031F4C +:1016EB00E0FFEF25E025E0240AF582E43402F583E0 +:1016FB00E0FEA3E0FF9002B1EEF0A3EFF090031F2A +:10170B00E0FFEF25E025E0240AF582E43402F583BF +:10171B00E0FEA3E0FF9002B3EEF0A3EFF01212385D +:10172B0090031FE004F0021680227F0012203B7B07 +:10173B00FF7A2F79E81212381222F0227F00122042 +:10174B003B7BFF7A2F79EF1212382290036BEFF06D +:10175B0090036C12065790036BE0FF12203B900333 +:10176B006BE0FF121E2E90036BE0FFEF75F019A4D8 +:10177B002424F582E43401F583E0FEA3E0FF7C0032 +:10178B007D031201DB90036FE0FCA3E0FDD3ED9F23 +:10179B00EC9E402F90036BE0FFEF75F019A424240F +:1017AB00F582E43401F583E0FEA3E0FF7C007D03CA +:1017BB001201DBEF24FFFFEE34FFFE90036FEEF020 +:1017CB00A3EFF0900371E4F0A3E4F090036FE0FE5D +:1017DB00A3E0FF900371E0FCA3E0FDC3ED9FEC9E43 +:1017EB0040030218F8900371E0FEA3E0FF7C007D3C +:1017FB00031201C9900373EEF0A3EFF090036C1288 +:10180B000637900371E0FEA3E0FF8F828E831201F7 +:10181B0035FFEFC4540FFFEF25E02461F582E4346C +:10182B0037F583E493FF90036BE0FEEE75F019A49C +:10183B002421F582E43401F583120637900373E01B +:10184B00FCA3E0FD8D828C83EF1201A7900373E460 +:10185B0075F00112026690036C120637900371E06B +:10186B00FEA3E0FF8F828E83120135FFEF540FFF33 +:10187B00EF25E02461F582E43437F583E493FF90A0 +:10188B00036BE0FEEE75F019A42421F582E434011C +:10189B00F583120637900373E0FCA3E0FD8D828C79 +:1018AB0083EF1201A7900373E475F00112026690A7 +:1018BB00036BE0FFEF75F019A42421F582E43401EA +:1018CB00F583120637900373E0FEA3E0FF8F828E41 +:1018DB008374201201A7900373E475F00112026662 +:1018EB00900371E475F0011202660217D690036B38 +:1018FB00E0FFEF75F019A42421F582E43401F583A0 +:10190B00120637900373E0FEA3E0FF8F828E837481 +:10191B00201201A7900373E475F001120266900385 +:10192B006BE0FFEF75F019A42421F582E43401F587 +:10193B0083120637900373E0FEA3E0FF8F828E8342 +:10194B00E41201A790036BE0FF900373E0FCA3E0AC +:10195B00FDED24FFFDEC34FFFC12221E229005242A +:10196B00EFF0900524E0FFEF75F00EA42403F58251 +:10197B00E43400F583E0FFEF6003021A4690052480 +:10198B00E0FFEF75F00EA42403F582E43400F58339 +:10199B007401F0900524E0FFEF75F00EA42404F51C +:1019AB0082E43400F583E4F0A3E4F0900524E0FF37 +:1019BB00EF75F00EA42406F582E43400F583E4F011 +:1019CB00900524E0FFEF75F00EA4240AF582E434B1 +:1019DB0000F583E4F0900524E0FFEF75F00EA424EE +:1019EB0000F582E43400F583E0FF900524E0FEEE81 +:1019FB0075F00EA4240BF582E43400F58312063740 +:101A0B00900524E0FEEE75F00EA42404F582E43478 +:101A1B0000F583E0FCA3E0FD8D828C83EF1201A720 +:101A2B00900524E0FFEF75F00EA42404F582E43456 +:101A3B0000F583E475F00112026622900524E0FFA5 +:101A4B00EF75F00EA42400F582E43400F583E0FF7B +:101A5B00900524E0FEEE75F00EA4240BF582E43421 +:101A6B0000F583120637900524E0FEEE75F00EA408 +:101A7B002404F582E43400F583E0FCA3E0FD8D82C1 +:101A8B008C83EF1201A7900524E0FFEF75F00EA4F5 +:101A9B002404F582E43400F583E475F00112026648 +:101AAB00900524E0FFEF75F00EA42404F582E434D6 +:101ABB0000F583E0FEA3E0FF900524E0FEEE75F059 +:101ACB000EA4240AF582E43400F583EFF09005248C +:101ADB00E0FFEF75F00EA42408F582E43400F583E3 +:101AEB00E0FEA3E0FF900524E0FDED75F00EA424CD +:101AFB0004F582E43400F583E0FCA3E0FDC3ED9F25 +:101B0B00EC9E4059900524E0FFEF75F00EA42406DF +:101B1B00F582E43400F5837402F0900524E0FFEFC6 +:101B2B0075F00EA42407F582E43400F5837401F0FC +:101B3B00900524E0FFEF75F00EA42403F582E43446 +:101B4B0000F583E4F0900524E0FFEF75F00EA4247C +:101B5B0004F582E43400F583E4F0A3E4F022900270 +:101B6B009EE0FEA3E0FFE4FCFD90022312055FD391 +:101B7B0012047E4003021C2A90029AE0FEA3E0FFAF +:101B8B00E4FCFD90022312055FD312047E501190EA +:101B9B00029AE0FEA3E0FFE4FCFD9002231205E0B5 +:101BAB0090029AE0FEA3E0FFAB07AA06E4F9F890D7 +:101BBB00022312054312032F9002331205E0900209 +:101BCB009AE0FEA3E0FF90029EE0FCA3E0FDC3EDD4 +:101BDB009FFFEC9EFEE4FCFD9002371205E09002A5 +:101BEB003312055F900298E0FEA3E0FF90029CE0A9 +:101BFB00FCA3E0FDC3ED9FFFEC9EFEE4FCFD120396 +:101C0B003D9002331205E0900233120543900237E8 +:101C1B0012055F1203C89002331205E0021CC0903C +:101C2B00029EE0FEA3E0FFAB07AA06E4F9F89002E0 +:101C3B002312054312032F9002331205E090029EEC +:101C4B00E0FEA3E0FF9002A2E0FCA3E0FDC3ED9F4A +:101C5B00FFEC9EFEE4FCFD9002371205E090023390 +:101C6B0012055F90029CE0FEA3E0FF9002A0E0FC57 +:101C7B00A3E0FDC3ED9FFFEC9EFEE4FCFD12033DD4 +:101C8B009002331205E09002331205439002371293 +:101C9B00055F1203C89002331205E0900233120560 +:101CAB005F90029CE0FEA3E0FFE4FCFD1203229098 +:101CBB0002331205E090023312054390023EEEF020 +:101CCB00A3EFF0229003E8EFF09003E91206579090 +:101CDB0003E8E0FF12203B9003E8E0FF7D01122FA9 +:101CEB00539003E8E0FFEF75F019A42420F582E48C +:101CFB003401F5837401F09003E8E0FFEF75F01900 +:101D0B00A4241CF582E43401F5831205EC000000D9 +:101D1B00009003E8E0FFEF75F019A42417F582E4B7 +:101D2B003401F583E4F0A37401F09003E8E0FFEFD6 +:101D3B0075F019A42424F582E43401F583E0FEA3A5 +:101D4B00E0FF9003ECE0FCA3E0FDD3ED9FEC9E40A5 +:101D5B00289003E8E0FFEF75F019A42424F582E442 +:101D6B003401F583E0FEA3E0FFEF24FFFFEE34FF29 +:101D7B00FE9003ECEEF0A3EFF09003ECE0FEA3E09B +:101D8B00FF9003E8E0FDED75F019A42419F582E44A +:101D9B003401F583EEF0A3EFF09003EEE4F0A3E44F +:101DAB00F09003ECE0FEA3E0FF9003EEE0FCA3E079 +:101DBB00FDC3ED9FEC9E50489003E912063790034C +:101DCB00EEE0FEA3E0FF8F828E83120135FF9003BE +:101DDB00E8E0FEEE75F019A42421F582E43401F558 +:101DEB00831206379003EEE0FCA3E0FD8D828C831B +:101DFB00EF1201A79003EEE475F00112026680A1C9 +:101E0B009003E8E0FFEF75F019A42421F582E43488 +:101E1B0001F58312063712011CFD9003E8E0FF1257 +:101E2B00339222900519EFF0900519E0FFEF75F052 +:101E3B0019A42419F582E43401F583E4F0A3E4F04A +:101E4B00900519E0FFEF75F019A42417F582E4341F +:101E5B0001F583E4F0A3E4F0900519E0FFEF75F0D2 +:101E6B0019A42420F582E43401F5837401F0900564 +:101E7B0019E0FFEF25E02480F582E43437F583E4A5 +:101E8B0093FE740193FF900519E0FDED75F019A415 +:101E9B002424F582E43401F583EEF0A3EFF09005F2 +:101EAB0019E0FFEF1206901EC2001EDF011EFC029E +:101EBB001F190300001F357B017A007992900519D9 +:101ECB00E0FFEF75F019A42421F582E43401F583CA +:101EDB00120657227B017A017912900519E0FFEF68 +:101EEB0075F019A42421F582E43401F58312065709 +:101EFB00227B017A017913900519E0FFEF75F01938 +:101F0B00A42421F582E43401F583120657227B01C8 +:101F1B007A017914900519E0FFEF75F019A42421CB +:101F2B00F582E43401F5831206572290048CEFF00E +:101F3B0090048DECF0A3EDF090048CE0FF12203BAD +:101F4B0090048DE0FEA3E0FF90048FEEF0A3EFF082 +:101F5B0090048FE0FFEFC4540FFFEF25E02461F5F1 +:101F6B0082E43437F583E493FF90048CE0FEEE7546 +:101F7B00F019A42426F582E43401F583EFF09004E4 +:101F8B008FE0FFEF540FFFEF25E02461F582E4347F +:101F9B0037F583E493FF90048CE0FEEE75F019A403 +:101FAB002427F582E43401F583EFF0900490E0FFF1 +:101FBB00EFC4540FFFEF25E02461F582E43437F5CD +:101FCB0083E493FF90048CE0FEEE75F019A42428B3 +:101FDB00F582E43401F583EFF0900490E0FFEF54C9 +:101FEB000FFFEF25E02461F582E43437F583E493AA +:101FFB00FF90048CE0FEEE75F019A42429F582E421 +:10200B003401F583EFF090048CE0FF7E19EF8EF036 +:10201B00A4FFAEF074262FF974013EFA7B019004F5 +:10202B008CE0FF9003ECE4F0A37404F0121CCF22BD +:10203B00900517EFF0900517E0FFEF75F019A4244A +:10204B001CF582E43401F5831205EC0000000090CE +:10205B000517E0FFEF75F019A42417F582E434019E +:10206B00F583E0FEA3E0FFEF4E70030221369005EF +:10207B0017E0FFEF75F019A4241CF582E43401F589 +:10208B00831205437B017A007900780012032290BA +:10209B000517E0FBEB75F019A4241CF582E4340161 +:1020AB00F5831205E0900517E0FFEF75F019A424F6 +:1020BB001CF582E43401F5831205437B207A4E79BB +:1020CB00007800C312047E5086900517E0FFEF7571 +:1020DB00F019A42417F582E43401F583E0FEA3E0A4 +:1020EB00FF900517E0FDED75F019A42419F582E4B6 +:1020FB003401F583EEF0A3EFF0900517E0FFEF75D9 +:10210B00F019A42420F582E43401F5837401F090D6 +:10211B000517E0FFEF75F019A42417F582E43401DD +:10212B00F583E4F0A3E4F02202205A229004DE129D +:10213B0006579004DE120637758202758300120271 +:10214B00BDFFAEF09004DE120637120292FDACF02A +:10215B00C3EF9DEE9C404D9004DE12063775820452 +:10216B007583001202BDFFAEF09004DE12063775C8 +:10217B0082027583001202BDFDACF0D3ED9FEC9E85 +:10218B00500302221D9004DE120637120292FFAE9C +:10219B00F09004DE120637758202758300EE8FF025 +:1021AB001202F5229004DE12063775820275830047 +:1021BB001202BDFFAEF09004DE120637120292FD42 +:1021CB00ACF0C3EF9DEE9C50499004DE12063775C0 +:1021DB0082047583001202BDFFAEF09004DE12067E +:1021EB00377582027583001202BDFDACF0C3ED9F03 +:1021FB00EC9E501E9004DE120637120292FFAEF0D8 +:10220B009004DE120637758202758300EE8FF01292 +:10221B0002F5229004C9EFF09004CAECF0A3EDF0A4 +:10222B009004C9E0FF12203B9004C9E0FF7D01122E +:10223B002F539004C9E0FF121E2E9004C9E0FFEF4C +:10224B0075F019A42424F582E43401F583E0FEA390 +:10225B00E0FF9004CAE0FCA3E0FDD3ED9FEC9E40B1 +:10226B00289004C9E0FFEF75F019A42424F582E44B +:10227B003401F583E0FEA3E0FFEF24FFFFEE34FF14 +:10228B00FE9004CAEEF0A3EFF09004CAE0FEA3E0C8 +:10229B00FF9004C9E0FDED75F019A42419F582E453 +:1022AB003401F583EEF0A3EFF09004C9E0FFEF7576 +:1022BB00F019A42417F582E43401F583E4F0A37438 +:1022CB0001F09004C9E0FFEF75F019A42421F58209 +:1022DB00E43401F58312063712011CFD9004C9E0AA +:1022EB00FF1233922290015EE0FCA3E0FD7F00120F +:1022FB001F367D097F001236A090018CE0FCA3E015 +:10230B00FD7F00121F367D097F001236A09001BAA7 +:10231B00E0FCA3E0FD7F00121F367D097F00123623 +:10232B00A09001E8E0FCA3E0FD7F00121F367D09C1 +:10233B007F001236A07D7C7F001236A07D097F00C6 +:10234B001236A0900223120543AD07AC067F001294 +:10235B001F367D097F001236A07F0012203B7BFFCA +:10236B007A2F79FC90023EE0FEA3E0FF9002ABEEE9 +:10237B00F0A3EFF090023EE0FEA3E0FF9002ADEE83 +:10238B00F0A3EFF01212387F0012203B7BFF7A3064 +:10239B007906900242E0FEA3E0FF9002ABEEF0A3C1 +:1023AB00EFF0900242E0FEA3E0FF9002ADEEF0A34F +:1023BB00EFF01212382290031FE4F090031FE0FF9E +:1023CB00EFC39404400302245990031FE0FF7E08DF +:1023DB00EF8EF0A4FFAEF0742E2FF974013EFA7B52 +:1023EB0001C003C002C00190031FE0FF7E08EF8E07 +:1023FB00F0A4FFAEF074762FF974023EFA7B0190D5 +:10240B00038C12065790038FE4F0A37408F0D001ED +:10241B00D002D00312307490031FE0FF7E08EF8EC2 +:10242B00F0A4FFAEF0742E2FF974013EFA7B0190ED +:10243B00031FE0FFEF75F02EA42454F582E4340162 +:10244B00F58312065790031FE004F00223C67B01AD +:10245B007A027906C003C002C0017B017A02799629 +:10246B0090038C12065790038FE4F0A37410F0D0F6 +:10247B0001D002D0031230747B017A0279069002EC +:10248B001C12065722900513E4F07B017A02797631 +:10249B0090045A743AF07F007E0012312F7F0012A5 +:1024AB00203B7BFF7A367958900513E0FF7E009036 +:1024BB0002ABEEF0A3EFF01212387B017A027976C1 +:1024CB0090036FE4F0A3743AF07F0012175690025A +:1024DB00A6E0FEA3E0FFEFB4551DEEB4AA1912233C +:1024EB00C17F0012203B7BFF7A367966121238903F +:1024FB000513E0FF22803E9002A674AAF0A3745548 +:10250B00F07F0012203B7BFF7A3679729002A6E0B7 +:10251B00FEA3E0FF9002ABEEF0A3EFF01212381225 +:10252B0028987B017A027976900453743AF07F00F5 +:10253B007E00122E87900513E0FF04F0EFC3940288 +:10254B0050030224957F64229004E7740CF09004EE +:10255B00E87412F090024474AAF09002457402F0F1 +:10256B009002467410F09004E7E0FF7F00EF54FFF9 +:10257B00FF900247EFF09004E7E0FFEF54FFFF906E +:10258B000248EFF090015EE0FEA3E0FF900249EEFF +:10259B00F0A3EFF090018CE0FEA3E0FF90024BEE76 +:1025AB00F0A3EFF09001BAE0FEA3E0FF90024DEE36 +:1025BB00F0A3EFF09001E8E0FEA3E0FF90024FEEF6 +:1025CB00F0A3EFF0900242E0FEA3E0FF900251EE89 +:1025DB00F0A3EFF0900223120543900253EEF0A309 +:1025EB00EFF09002557433F07B017A02794490043A +:1025FB00E8E0FF7E009003ECEEF0A3EFF07F00121B +:10260B001CCF22C0E0C0F0C083C082C0D075D00008 +:10261B00C000C001C002C003C004C005C006C00793 +:10262B00309817C298900000E599F0900002E4F002 +:10263B00900001E4F07F0012196830995FC2999005 +:10264B000117E0FEA3E0FF900119E0FCA3E0FDED14 +:10265B006F7002EC6E602490012112063790011707 +:10266B00E0FEA3E0FF8F828E83120135FF8F9990DE +:10267B000117E475F00112026680219001207401AC +:10268B00F0900119E4F0A3E4F0900117E4F0A3E457 +:10269B00F043BA8053C9DF53CADFC2CDD007D0068F +:1026AB00D005D004D003D002D001D000D0D0D0823E +:1026BB00D083D0F0D0E0329003CDEFF09003CE1268 +:1026CB0006579003D1E4F09003D21205EC00000002 +:1026DB00009003D1E4F09003D1E0FFEFC3941850C6 +:1026EB00549003CDE0FF7D01122B479003D21205CE +:1026FB004378011204A29003D21205E09003CDE0BF +:10270B00FF7D00122B479003CDE0FF12318BEF6062 +:10271B001C9003D2120543EF2401FFEE3400FEEDB3 +:10272B003400FDEC3400FC9003D21205E09003D191 +:10273B00E004F080A19003CDE0FF7D01122B4790C8 +:10274B0003CDE0FF7D00122B479003D2120543907F +:10275B0003CE12063712050522787FE4F6D8FD90DA +:10276B0000007F207E04E4F0A3DFFCDEFA750D0091 +:10277B00750E007581210227BF022804E493A3F88C +:10278B00E493A34003F68001F208DFF48029E4937D +:10279B00A3F85407240CC8C333C4540F4420C88374 +:1027AB004004F456800146F6DFE4800B0102040876 +:1027BB0010204080902CC2E47E019360BCA3FF5498 +:1027CB003F30E509541FFEE493A360010ECF54C0C4 +:1027DB0025E060A840B8E493A3FAE493A3F8E4934C +:1027EB00A3C8C582C8CAC583CAF0A3C8C582C8CA54 +:1027FB00C583CADFE9DEE780BE90034BE4F0A3E4B8 +:10280B00F07BFF7A327924C003C002C0017B017ACE +:10281B0003794DA801AC02AD03D001D002D0037EE9 +:10282B00007F091200F6122E1B12000E9002D0121E +:10283B000543EF240AFFEE3400FEED3400FDEC34CB +:10284B0000FC9002D81205E07F0012203B7BFF7A40 +:10285B003279121212389002DCE0FFEFB4011790BC +:10286B0002DCE4F07D2E7F001236A043BA80539138 +:10287B00FB5392FBB2921235D7EF60057FAA12156C +:10288B00327B017A027916120E3D80CA2290031F09 +:10289B00E4F090031FE0FFEFC39404505690031F26 +:1028AB00E0FF7E08EF8EF0A4FFAEF074762FF97484 +:1028BB00023EFA7B01C003C002C00190031FE0FF80 +:1028CB007E08EF8EF0A4FFAEF0742E2FF974013E4C +:1028DB00FA7B0190038C12065790038FE4F0A374DC +:1028EB0008F0D001D002D00312307490031FE00423 +:1028FB00F0809F7B017A027996C003C002C0017BF6 +:10290B00017A02790690038C12065790038FE4F03C +:10291B00A37410F0D001D002D003123074220D0A30 +:10292B004144435F53414D504C4520696E697420BF +:10293B00636828256429202020000D0A20445F416C +:10294B0044435F4A49545445525F7A65726F2D2D4B +:10295B002D000D0A20636828256429206164633DDE +:10296B00253564092D3E6F666673657420253564C5 +:10297B002077616E746C696E652025356420000DBF +:10298B000A20636828256429206164633D25355836 +:10299B00092D3E6F66667365742025355820776167 +:1029AB006E746C696E652025355820009004E974AF +:1029BB000CF09004EA7412F090025874AAF0900292 +:1029CB00597402F090025A7420F09004E9E0FF7FF2 +:1029DB0000EF54FFFF90025BEFF09004E9E0FFEF94 +:1029EB0054FFFF90025CEFF07B017A02795DC0032C +:1029FB00C002C0017B017A02799890038C120657B2 +:102A0B0090038FE4F0A3740CF0D001D002D003122A +:102A1B0030749002697433F07B017A027958900418 +:102A2B00EAE0FF7E009003ECEEF0A3EFF07F0012E4 +:102A3B001CCF22900522EFF043BA8053C9DF53CA53 +:102A4B00DF43BA8053917F53927FC2977F02123636 +:102A5B007C43BA804391405392BF43BA8053B1FB3E +:102A6B0053B2FBC2B27F0212367C43BA8043B10829 +:102A7B0053B2F743BA8053B1EF53B2EFC2B47F02F4 +:102A8B0012367C43BA8043B12053B2DF43BA805332 +:102A9B00B1BF53B2BFC2B67F0212367C43BA80437A +:102AAB00B18053B27F43BA8053C9EF53CAEFD2CC34 +:102ABB00900522E0FF122DAC229004EB7402F090F3 +:102ACB0004EC7408F090026C74AAF090026D74021E +:102ADB00F090026E7430F09004EBE0FF7F00EF5447 +:102AEB00FFFF90026FEFF09004EBE0FFEF54FFFF5E +:102AFB00900270EFF0900240E0FEA3E0FFEEFF7E4D +:102B0B0000EF54FFFF900271EFF0900240E0FEA344 +:102B1B00E0FFEF54FFFF900272EFF09002737433FB +:102B2B00F07B017A02796C9004ECE0FF7E0090035D +:102B3B00ECEEF0A3EFF07F00121CCF2290050BEF11 +:102B4B00F090050CEDF090050BE0FFEF1206902BCB +:102B5B006A002B82012B9A022BB20300002BC99027 +:102B6B00050CE0FFEF6008D2977F0112367C22C282 +:102B7B00977F0212367C2290050CE0FFEF6008D2A3 +:102B8B00B27F0112367C22C2B27F0212367C2290B7 +:102B9B00050CE0FFEF6008D2B47F0112367C22C235 +:102BAB00B47F0212367C2290050CE0FFEF6008D256 +:102BBB00B67F0112367C22C2B67F0212367C22907F +:102BCB000469EEF0A3EFF090046BECF0A3EDF09042 +:102BDB00046BE0FEA3E0FFEE30E73A90046BE0FEFF +:102BEB00A3E0FFC374FF9FFF74FF9EFE90046BEE88 +:102BFB00F0A3EFF090046BE0FEA3E0FF900469E01C +:102C0B00FCA3E0FDC3ED9FFFEC9EFE90046DEEF088 +:102C1B00A3EFF0801E900469E0FEA3E0FF90046B2D +:102C2B00E0FCA3E0FDED2FFFEC3EFE90046DEEF01B +:102C3B00A3EFF090046DE0FEA3E0FF22900514EFEC +:102C4B00F0900514E0FF7E2EEF8EF0A4FFAEF07433 +:102C5B004E2FF974013EFA7B0112356F900514E08B +:102C6B00FFEF75F02EA42452F582E43401F5837442 +:102C7B00E0F0900514E0FF7E08EF8EF0A4FFAEF0BD +:102C8B00742E2FF974013EFA7B01900514E0FFEFCF +:102C9B0075F02EA42454F582E43401F58312065703 +:102CAB00900514E0FFEF75F02EA42457F582E43461 +:102CBB0001F5837401F0225002065745000018D924 +:102CCB0000C81C2C035226F941096020012E41003B +:102CDB0018DA19630205410118DA192702054102B6 +:102CEB0018DA18360205410318DA18F002055901F3 +:102CFB0015000000000000000000000000000000B4 +:102D0B00000000000000000000004E00000000006A +:102D1B00000000000000000000000046032000003F +:102D2B000000000043048100000043048400000005 +:102D3B000090046FEEF0A3EFF0900471ECF0A3EDB4 +:102D4B00F0900471E0FEA3E0FFEE30E72C900471ED +:102D5B00E0FEA3E0FFC374FF9FFF74FF9EFE900491 +:102D6B0073EEF0A3EFF090046FE0FEA3E0FF90048E +:102D7B0073EE8FF0120266801F900471E0FEA3E0E9 +:102D8B00FF90046FE0FCA3E0FDC3ED9FFFEC9EFE04 +:102D9B00900473EEF0A3EFF0900473E0FEA3E0FF5A +:102DAB0022900521EFF0900521E0FFEF1206902D08 +:102DBB00C7002E12012E154000002E1843BA804377 +:102DCB00918053927F43BA804391405392BF43BA51 +:102DDB008043B10453B2FB43BA8043B10853B2F7FB +:102DEB0043BA8043B11053B2EF43BA8043B120537F +:102DFB00B2DF43BA8043B14053B2BF43BA8043B151 +:102E0B008053B27FC2CC22D2CD22C2CD22C2CD22E0 +:102E1B009004EDE4F0A3E4F07FC87E001234971227 +:102E2B0034D190FE01E4F01236EE1237201200037B +:102E3B0012322D1236FFD2A97F0012203B7BFF7A74 +:102E4B003179EF9002AB1205EC0151800012123870 +:102E5B001224907E009004EDEEF0A3EFF07F0012B1 +:102E6B00203B7BFF7A3279039004EDE0FEA3E0FF79 +:102E7B009002ABEEF0A3EFF01212382290044EEE5C +:102E8B00F0A3EFF0900450120657900454E4F09026 +:102E9B00044EE0FEA3E0FF12353B900454E4F090A7 +:102EAB000453E0FF900454E0FEEEC39F50349004B3 +:102EBB0054E0FF7E0090044EE0FCA3E0FDEF2DFFFD +:102ECB00EE3CFE900450120637900454E0FD8D82C8 +:102EDB00758300120135FD123418900454E004F090 +:102EEB0080BD229002D01205437B017A00790078D5 +:102EFB00001203229002D01205E07B507A00790079 +:102F0B0078009002D01205431203C8AC00AD01AE9D +:102F1B0002AF037B007A0079007800C312047E7045 +:102F2B001D9002D41205437B017A007900780012C0 +:102F3B0003229002D41205E09002DC7401F090029F +:102F4B00DE1206371206B6229004FBEFF09004FC5B +:102F5B00EDF09004FCE0FFEF702A9004FBE0FFEF34 +:102F6B001206902F7E002FB3012FB3022FB3030055 +:102F7B00002FB343BA8053C9DF53CADFC2CD22221D +:102F8B00222222229004FBE0FFEF1206902FA800D2 +:102F9B002FB3012FB3022FB30300002FB343BA801B +:102FAB0053C9DF53CADFD2CD22204C335F74617318 +:102FBB006B5F7765696768745F68616E646C657277 +:102FCB0020000D0A25643A20253478282534642006 +:102FDB00292025347828253664290D0A000D0A206E +:102FEB0009090900207070206572726F720D0A203A +:102FFB0000202825642925347820006F757420283B +:10300B002564292534780D0A009004E4E4F090043B +:10301B00E5E4F09004E6E4F090000B1206371201A1 +:10302B001CFF9004E4EFF090000B12063775820141 +:10303B00758300120135FF9004E5EFF090000B1241 +:10304B000637758202758300120135FF9004E6EF97 +:10305B00F09004E4E0FFEFB4AA0C9004E5E0FFEF7E +:10306B00B402037F01227F0022900389120657903E +:10307B000391E4F0A3E4F090038FE0FEA3E0FF9054 +:10308B000391E0FCA3E0FDC3ED9FEC9E5038900351 +:10309B008C120637900391E0FEA3E0FF8F828E83A4 +:1030AB00120135FF900389120637900391E0FCA3C0 +:1030BB00E0FD8D828C83EF1201A7900391E475F0F4 +:1030CB000112026680B122900523EFF0900523E0F8 +:1030DB00FFEF75F00EA42406F582E43400F583E4CB +:1030EB00F0900523E0FFEF75F00EA42407F582E4C2 +:1030FB003400F583E4F0900523E0FFEF75F00EA4A8 +:10310B002403F582E43400F583E4F0900523E0FF1B +:10311B00EF75F00EA42404F582E43400F583E4F09B +:10312B00A3E4F022900455EEF0A3EFF090045712B5 +:10313B00065790045BE4F090045BE4F090045AE0D3 +:10314B00FF90045BE0FEEEC39F503490045BE0FF06 +:10315B007E00900455E0FCA3E0FDEF2DFFEE3CFE5E +:10316B0012345890045712063790045BE0FE8E829F +:10317B00758300EF1201A790045BE004F080BD2281 +:10318B0090050DEFF090050E7409F090050DE0FF22 +:10319B00EF12069031AF0031BB0131C70231D303BF +:1031AB00000031DDA296E433FF90050EEFF0802294 +:1031BB00A2B3E433FF90050EEFF08016A2B5E43313 +:1031CB00FF90050EEFF0800AA2B7E433FF90050ED7 +:1031DB00EFF090050EE0FF220D0A20255820255810 +:1031EB003A2558000D0A445F7379735F4D61696E20 +:1031FB0046726509256C64000D0A4C335F535F6999 +:10320B006E6974092564000D03206D61696E20776A +:10321B0068696C6531330D0A00AB000000000000DB +:10322B0000007BFF7A3379069002DE1206577BFF94 +:10323B007A3379069002E11206577BFF7A337906CF +:10324B009002E11206579002D41205EC0000000028 +:10325B009002D01205EC000000009002DCE4F07B41 +:10326B00FF7A3379069002DE120657227F00121E78 +:10327B002E7B017A00790E90000B120657900008F6 +:10328B00E4F0A37480F07F001230D243BA8053B1C4 +:10329B00FD53B2FD43BA8053B1FE53B2FE1236C298 +:1032AB00C298C299D29CD2AC43BA8053C9DF53CADD +:1032BB00DFC2CD220D0A756172743120636C6F739E +:1032CB0065000D0A7561727431206F70656E000DAB +:1032DB000A7561727432206F70656E0032323A205B +:1032EB006D6F746F3D282558290020707020657212 +:1032FB00726F720D0A200033333300900002E0FF2F +:10330B00EF703E900001E0FFEFC39402402D900060 +:10331B00027401F0900003E4F090000AE0FFEFD399 +:10332B009400401790000AE4F09000067401F07BC3 +:10333B00017A00790E90000B120657900001E00401 +:10334B00F0229004631205E09004631205437808A1 +:10335B0012048F9004631205E090046312054390EE +:10336B000467EEF0A3EFF0900467E0FEA3E0FF7CB0 +:10337B00FF7DFF1201C9900467EEF0A3EFF09004FC +:10338B0067E0FEA3E0FF229004F9EFF09004FAED62 +:10339B00F09004F9E0FFEF12069033B50033BD0156 +:1033AB0033C50233CD03000033D49004FAE0FF8F12 +:1033BB0099229004FAE0FF8F9B229004FAE0FF8F92 +:1033CB00AD229004FAE0FF8F8522C0E0C0F0C083ED +:1033DB00C082C0D075D000C000C001C002C003C005 +:1033EB0004C005C006C007000000C28D122EEE00FF +:1033FB000000D007D006D005D004D003D002D001F6 +:10340B00D000D0D0D082D083D0F0D0E0329004D88E +:10341B00EEF0A3EFF09004DAEDF075C78075F50CC4 +:10342B0075C5029004D8E0FEA3E0FF8FC49004D8CA +:10343B00E0FEA3E0FFEEFF7E008FC39004DAE0FF17 +:10344B008FC275C65A75C6A500123710229004D5C7 +:10345B00EEF0A3EFF075C78075F50C75C501900400 +:10346B00D5E0FEA3E0FF8FC49004D5E0FEA3E0FF00 +:10347B00EEFF7E008FC375C65A75C6A5009004D7A4 +:10348B00E5C2F01237109004D7E0FF229004BCEE97 +:10349B00F0A3EFF09004BCE0FEA3E0FF9004BEEEBF +:1034AB00F0A3EFF09004BEE0FEA3E0FFD3EF940097 +:1034BB00EE940040101236319004BE74FF75F0FF8D +:1034CB0012026680DF2243BA805391FB5392FBD2E8 +:1034DB009290031FE4F090031FE0FFEFC39406509C +:1034EB001A43BA805391FB5392FBB2927F2C7E010D +:1034FB0012349790031FE004F080DB22900511EF4C +:10350B00F0900511E0FFEF601A7F01122A3E7F0059 +:10351B00122C477F01122C477F02122C477F03127C +:10352B002C47227B017A02790690021C1206572245 +:10353B00900509EEF0A3EFF075C78075F50C75C516 +:10354B0003900509E0FEA3E0FF8FC4900509E0FEA0 +:10355B00A3E0FFEEFF7E008FC375C65A75C6A500AC +:10356B00123710229004DB1206579004DB12063739 +:10357B00758204758300E41201A79004DB120637F1 +:10358B00758205758300E41201A79004DB120637E0 +:10359B0012061D000000002290049612065790049C +:1035AB0099E4F0A3E4F0900496E475F00112064060 +:1035BB0012011CFFEF600C900499E475F0011202EC +:1035CB006680E3900499E0FEA3E0FF22900007E001 +:1035DB00FFEFB40105900007E4F0900006E0FFEF69 +:1035EB00B40115900006E4F07B017A00790E90048B +:1035FB0084120657123014227F00229004A0EFF0A1 +:10360B009004A11206579004A11206371235A3900D +:10361B0003ECEEF0A3EFF09004A0E0FF9004A112F6 +:10362B000637121CCF229004F3741DF09004F37430 +:10363B000AF09004F47434F09004F4E014FFF0EF0B +:10364B0070F69004F3E014FFF0EF70EC220D0A72A9 +:10365B0065616420533A20256409000D0A5370619B +:10366B007261096F6B09000D0A50726F6720257824 +:10367B00009004F1EFF09004F1E0FF9004F2EFF012 +:10368B009004F2E0FFEFD394004009009004F2E0C5 +:10369B0014F080EC229004FDEFF09004FEEDF0901E +:1036AB0004FDE0FF7B017A0479FE9003ECE4F0A3C8 +:1036BB007401F0121CCF22759850438E40538EFE2E +:1036CB0053890F758BC0758DFDC2ABD28E229005C1 +:1036DB002BEFF090052BE0FD7F001236A090052B11 +:1036EB00E0FF22123277D2AF7BFF7A3279CD7F00A7 +:1036FB0012360622538E7F5389F0758A00758CA67D +:10370B00C28DD28C2275C70075C50075C60075C3F6 +:10371B008075C40022D2AF7BFF7A3279DA7F001238 +:10372B003606220001000A006403E827100000009F +:10373B00010000000A00000064000003E8000027FD +:10374B0010000186A0000F42400098968005F5E11D +:10375B00003B9ACA000030013102320333043405B6 +:10376B003506360737083809390A410B420C430D29 +:0D377B00440E450F460080000100010001D2 +:00000001FF diff --git a/out/stcweight.lnp b/out/stcweight.lnp new file mode 100644 index 0000000..4708571 --- /dev/null +++ b/out/stcweight.lnp @@ -0,0 +1,26 @@ +"..\out\app_weight.obj", +"..\out\main.obj", +"..\out\app_config.obj", +"..\out\asp_schain.obj", +"..\out\asp_lowpower.obj", +"..\out\STARTUP.obj", +"..\out\stc_8_delay.obj", +"..\out\msp_uartN.obj", +"..\out\msp_time2.obj", +"..\out\msp_uart1.obj", +"..\out\msp_iicMx.obj", +"..\out\msp_eeprom.obj", +"..\out\msp_adc.obj", +"..\out\bsp_config.obj", +"..\out\bsp_led.obj", +"..\out\bsp_cs1232.obj", +"..\out\TTSS_task.obj", +"..\out\TTSS_tick.obj", +"..\out\TTSS_time_stc.obj", +"..\out\tpc_road.obj", +"..\out\c_lib.obj", +"..\out\c_delay.obj", +"..\out\debug_drv.obj" +TO "..\out\stcweight" + +PRINT("..\out\stcweight.map") REMOVEUNUSED diff --git a/out/stcweight.map b/out/stcweight.map new file mode 100644 index 0000000..25664f5 --- /dev/null +++ b/out/stcweight.map @@ -0,0 +1,7680 @@ +LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 1 + + +LX51 LINKER/LOCATER V4.66.41.0, INVOKED BY: +E:\KEILC51\C51\BIN\LX51.EXE ..\out\app_weight.obj, ..\out\main.obj, ..\out\app_config.obj, ..\out\asp_schain.obj, ..\out +>> \asp_lowpower.obj, ..\out\STARTUP.obj, ..\out\stc_8_delay.obj, ..\out\msp_uartN.obj, ..\out\msp_time2.obj, ..\out\msp +>> _uart1.obj, ..\out\msp_iicMx.obj, ..\out\msp_eeprom.obj, ..\out\msp_adc.obj, ..\out\bsp_config.obj, ..\out\bsp_led.ob +>> j, ..\out\bsp_cs1232.obj, ..\out\TTSS_task.obj, ..\out\TTSS_tick.obj, ..\out\TTSS_time_stc.obj, ..\out\tpc_road.obj, +>> ..\out\c_lib.obj, ..\out\c_delay.obj, ..\out\debug_drv.obj TO ..\out\stcweight PRINT (..\out\stcweight.map) REMOVEUNU +>> SED + + +CPU MODE: 8051 MODE +MEMORY MODEL: LARGE + + +INPUT MODULES INCLUDED: + ..\out\app_weight.obj (APP_WEIGHT) + COMMENT TYPE 0: C51 V9.54 + ..\out\main.obj (MAIN) + COMMENT TYPE 0: C51 V9.54 + ..\out\app_config.obj (APP_CONFIG) + COMMENT TYPE 0: C51 V9.54 + ..\out\asp_schain.obj (ASP_SCHAIN) + COMMENT TYPE 0: C51 V9.54 + ..\out\asp_lowpower.obj (ASP_LOWPOWER) + COMMENT TYPE 0: C51 V9.54 + ..\out\STARTUP.obj (?C_STARTUP) + COMMENT TYPE 1: A51 / ASM51 Assembler + ..\out\stc_8_delay.obj (STC_8_DELAY) + COMMENT TYPE 0: C51 V9.54 + ..\out\msp_uartN.obj (MSP_UARTN) + COMMENT TYPE 0: C51 V9.54 + ..\out\msp_time2.obj (MSP_TIME2) + COMMENT TYPE 0: C51 V9.54 + ..\out\msp_uart1.obj (MSP_UART1) + COMMENT TYPE 0: C51 V9.54 + ..\out\msp_iicMx.obj (MSP_IICMX) + COMMENT TYPE 0: C51 V9.54 + ..\out\msp_eeprom.obj (MSP_EEPROM) + COMMENT TYPE 0: C51 V9.54 + ..\out\msp_adc.obj (MSP_ADC) + COMMENT TYPE 0: C51 V9.54 + ..\out\bsp_config.obj (BSP_CONFIG) + COMMENT TYPE 0: C51 V9.54 + ..\out\bsp_led.obj (BSP_LED) + COMMENT TYPE 0: C51 V9.54 + ..\out\bsp_cs1232.obj (BSP_CS1232) + COMMENT TYPE 0: C51 V9.54 + ..\out\TTSS_task.obj (TTSS_TASK) + COMMENT TYPE 0: C51 V9.54 + ..\out\TTSS_tick.obj (TTSS_TICK) + COMMENT TYPE 0: C51 V9.54 + ..\out\TTSS_time_stc.obj (TTSS_TIME_STC) + COMMENT TYPE 0: C51 V9.54 + ..\out\tpc_road.obj (TPC_ROAD) + COMMENT TYPE 0: C51 V9.54 + ..\out\c_lib.obj (C_LIB) + COMMENT TYPE 0: C51 V9.54 + ..\out\c_delay.obj (C_DELAY) + COMMENT TYPE 0: C51 V9.54 + ..\out\debug_drv.obj (DEBUG_DRV) + COMMENT TYPE 0: C51 V9.54 + E:\KEILC51\C51\LIB\C51L.LIB (?C_INIT) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?COPY) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?CLDPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 2 + + + E:\KEILC51\C51\LIB\C51L.LIB (?C?CLDOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?CILDOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?CSTPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?CSTOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?IMUL) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?UIDIV) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?SIDIV) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?IILDX) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ILDIX) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ILDPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ILDOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ISTOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LADD) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSUB) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LMUL) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ULDIV) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LNEG) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?SLCMP) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ULCMP) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ULSHR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSHL) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDXDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDCODE) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDXDATA0) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDCODE0) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDOPTR0) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDIXDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTXDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTKXDATA) + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 3 + + + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTKPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PLDXDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PLDIXDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PSTXDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PLDOPTR) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?CCASE) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?ICALL) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C_XBP) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LIMUL) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (PRINTF) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDIDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDPDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDIDATA0) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LLDPDATA0) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTIDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTPDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTKIDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?LSTKPDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PLDIDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PLDPDATA) + COMMENT TYPE 1: A51 / ASM51 Assembler + E:\KEILC51\C51\LIB\C51L.LIB (?C?PLDCODE) + COMMENT TYPE 1: A51 / ASM51 Assembler + + +ACTIVE MEMORY CLASSES OF MODULE: ..\out\stcweight (APP_WEIGHT) + +BASE START END USED MEMORY CLASS +========================================================== +C:000000H C:000000H C:00FFFFH 003727H CODE +X:000000H X:000000H X:00FFFFH 00052CH XDATA +I:000000H I:000000H I:0000FFH 000001H IDATA +C:000000H C:000000H C:00FFFFH 00005AH CONST +I:000000H I:000000H I:00007FH 00000FH DATA +I:000020H.0 I:000020H.0 I:00002FH.7 000001H.1 BIT + + +MEMORY MAP OF MODULE: ..\out\stcweight (APP_WEIGHT) + + +START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME +========================================================================= + +* * * * * * * * * * * D A T A M E M O R Y * * * * * * * * * * * * * +000000H 000007H 000008H --- AT.. DATA "REG BANK 0" + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 4 + + +000008H 00000CH 000005H BYTE UNIT DATA _DATA_GROUP_ +00000DH 00000EH 000002H BYTE UNIT DATA ?C?LIB_DATA +00000FH.0 00001FH.7 000011H.0 --- --- **GAP** +000020H.0 000021H.0 000001H.1 BIT UNIT BIT _BIT_GROUP_ +000021H.1 000021H 000000H.7 --- --- **GAP** +000022H 000022H 000001H BYTE UNIT IDATA ?STACK + +* * * * * * * * * * * C O D E M E M O R Y * * * * * * * * * * * * * +000000H 000002H 000003H --- OFFS.. CODE ?CO??C_STARTUP?0 +000003H 000003H 000001H BYTE UNIT CODE ?PR?L3_DEBUG_DRV_INIT?DEBUG_DRV +000004H 00000AH 000007H --- --- **GAP** +00000BH 00000DH 000003H BYTE OFFS.. CODE ?TTSS_TIME_STC?0000B +00000EH 000022H 000015H BYTE UNIT CODE ?PR?L3_TASK_WEIGHT_INIT?APP_WEIGHT +000023H 000025H 000003H BYTE OFFS.. CODE ?MSP_UART1?00023 +000026H 000782H 00075DH BYTE UNIT CODE ?C?LIB_CODE +000783H 000E3CH 0006BAH BYTE UNIT CODE ?PR?_L2_TASK_ADC_SAMPLE?ASP_SCHAIN +000E3DH 0011CCH 000390H BYTE UNIT CODE ?PR?_L3_TASK_WEIGHT_HANDLER?APP_WEIGHT +0011CDH 001531H 000365H BYTE UNIT CODE ?PR?PRINTF?PRINTF +001532H 001755H 000224H BYTE UNIT CODE ?PR?_L3_WEIGHT_ONDEBUG?APP_WEIGHT +001756H 001967H 000212H BYTE UNIT CODE ?PR?_L0_UARTN_ARRAYHEX_WITHOUTBUF?MSP_UARTN +001968H 001B68H 000201H BYTE UNIT CODE ?PR?_L1_S2B_ROAD?TPC_ROAD +001B69H 001CCEH 000166H BYTE UNIT CODE ?PR?L3_TASK_WEIGHT_CAL?APP_WEIGHT +001CCFH 001E2DH 00015FH BYTE UNIT CODE ?PR?_L0_UARTN_ARRAY?MSP_UARTN +001E2EH 001F35H 000108H BYTE UNIT CODE ?PR?_L0_UARTN_SBUF?MSP_UARTN +001F36H 00203AH 000105H BYTE UNIT CODE ?PR?_L0_UARTN_USHEX?MSP_UARTN +00203BH 002136H 0000FCH BYTE UNIT CODE ?PR?_L0_WAITFREE_UARTN?MSP_UARTN +002137H 00221DH 0000E7H BYTE UNIT CODE ?PR?_LC_DESPIKING_SHIFT3_U16?C_LIB +00221EH 0022EFH 0000D2H BYTE UNIT CODE ?PR?_L0_UARTN_ARRAY_WITHOUTBUF?MSP_UARTN +0022F0H 0023C0H 0000D1H BYTE UNIT CODE ?PR?L4_WEIGHT_PRINT?APP_WEIGHT +0023C1H 00248FH 0000CFH BYTE UNIT CODE ?PR?L3_S_2_R?APP_CONFIG +002490H 002552H 0000C3H BYTE UNIT CODE ?PR?L3_S_INIT?APP_CONFIG +002553H 00260DH 0000BBH BYTE UNIT CODE ?PR?L4_WEIGHT_OUT?APP_WEIGHT +00260EH 0026C1H 0000B4H BYTE UNIT CODE ?PR?INTERRUPT_UART?MSP_UART1 +0026C2H 002763H 0000A2H BYTE UNIT CODE ?PR?_L0_ADS1231_READCH2?BSP_CS1232 +002764H 002803H 0000A0H BYTE UNIT CODE ?C_C51STARTUP +002804H 002897H 000094H BYTE UNIT CODE ?PR?MAIN?MAIN +002898H 002928H 000091H BYTE UNIT CODE ?PR?L3_R_2_S?APP_CONFIG +002929H 0029B6H 00008EH BYTE UNIT CODE ?CO?ASP_SCHAIN +0029B7H 002A3DH 000087H BYTE UNIT CODE ?PR?L4_WPOINT_OUT?APP_WEIGHT +002A3EH 002AC3H 000086H BYTE UNIT CODE ?PR?_L0_ADS1213_INIT?BSP_CS1232 +002AC4H 002B46H 000083H BYTE UNIT CODE ?PR?L4_KGX10ZERO_OUT?APP_WEIGHT +002B47H 002BC9H 000083H BYTE UNIT CODE ?PR?_L0_ADC_SCLK?BSP_CS1232 +002BCAH 002C46H 00007DH BYTE UNIT CODE ?PR?_L3_ADC_OUT_OFFSET?ASP_SCHAIN +002C47H 002CC1H 00007BH BYTE UNIT CODE ?PR?_L2_TASK_ADC_INIT?ASP_SCHAIN +002CC2H 002D3BH 00007AH BYTE UNIT CODE ?C_INITSEG +002D3CH 002DABH 000070H BYTE UNIT CODE ?PR?_L3_ADC_GET_OFFSET?ASP_SCHAIN +002DACH 002E1AH 00006FH BYTE UNIT CODE ?PR?_L0_ADS1213_MODE?BSP_CS1232 +002E1BH 002E86H 00006CH BYTE UNIT CODE ?PR?L0_MAIN_INIT?MAIN +002E87H 002EEDH 000067H BYTE UNIT CODE ?PR?_L0_IAP_PROGRAM_ARRAY?MSP_EEPROM +002EEEH 002F52H 000065H BYTE UNIT CODE ?PR?L1_TASK_TICK_CALLBACK?TTSS_TICK +002F53H 002FB3H 000061H BYTE UNIT CODE ?PR?_L0_UARTN_485?MSP_UARTN +002FB4H 003013H 000060H BYTE UNIT CODE ?CO?APP_WEIGHT +003014H 003073H 000060H BYTE UNIT CODE ?PR?L3_TPC_HEX?DEBUG_DRV +003074H 0030D1H 00005EH BYTE UNIT CODE ?PR?_LC_BUF_FROM_CONST_UC?C_LIB +0030D2H 00312EH 00005DH BYTE UNIT CODE ?PR?_L1_S2B_ROAD_INIT?TPC_ROAD +00312FH 00318AH 00005CH BYTE UNIT CODE ?PR?_L0_IAP_READ_ARRAY?MSP_EEPROM +00318BH 0031E2H 000058H BYTE UNIT CODE ?PR?_L0_ADC_DOUT_AT?BSP_CS1232 +0031E3H 00322CH 00004AH BYTE UNIT CODE ?CO?MAIN +00322DH 003276H 00004AH BYTE UNIT CODE ?PR?L1_TASK_TICK_INIT?TTSS_TICK +003277H 0032BEH 000048H BYTE UNIT CODE ?PR?L0_UART1_BUF_INIT?MSP_UART1 +0032BFH 003305H 000047H BYTE UNIT CODE ?CO?ASP_LOWPOWER +003306H 00334CH 000047H BYTE UNIT CODE ?PR?L2_UART1_OVERTIME_CALLBACK?MSP_UART1 +00334DH 003391H 000045H BYTE UNIT CODE ?PR?_L3_OUT_TRAN?ASP_SCHAIN +003392H 0033D4H 000043H BYTE UNIT CODE ?PR?_L0_UARTN_SET?MSP_UARTN +0033D5H 003417H 000043H BYTE UNIT CODE ?PR?TIMER0_ISRHANDLE?TTSS_TIME_STC + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 5 + + +003418H 003457H 000040H BYTE UNIT CODE ?PR?_L0_IAP_PROGRAM?MSP_EEPROM +003458H 003496H 00003FH BYTE UNIT CODE ?PR?_L0_IAP_READ?MSP_EEPROM +003497H 0034D0H 00003AH BYTE UNIT CODE ?PR?_LC_DELAY_MS?C_DELAY +0034D1H 003506H 000036H BYTE UNIT CODE ?PR?L0_MAIN_INITLED?MAIN +003507H 00353AH 000034H BYTE UNIT CODE ?PR?_L2_TASK_WEIGHT_INIT?APP_WEIGHT +00353BH 00356EH 000034H BYTE UNIT CODE ?PR?_L0_IAP_ERASE?MSP_EEPROM +00356FH 0035A2H 000034H BYTE UNIT CODE ?PR?_L1_TASK_REG_CLEAR?TTSS_TASK +0035A3H 0035D6H 000034H BYTE UNIT CODE ?PR?_LC_STRLEN?C_LIB +0035D7H 003605H 00002FH BYTE UNIT CODE ?PR?L2_DEBUG_ONCOMAND?DEBUG_DRV +003606H 003630H 00002BH BYTE UNIT CODE ?PR?_L0_UARTN_STR?MSP_UARTN +003631H 003657H 000027H BYTE UNIT CODE ?PR?DELAY1MS?STC_8_DELAY +003658H 00367BH 000024H BYTE UNIT CODE ?CO?APP_CONFIG +00367CH 00369FH 000024H BYTE UNIT CODE ?PR?_LC_DELAY_NOP?STC_8_DELAY +0036A0H 0036C1H 000022H BYTE UNIT CODE ?PR?_L0_UARTN_UC?MSP_UARTN +0036C2H 0036D8H 000017H BYTE UNIT CODE ?PR?L0_UART1_INIT?MSP_UART1 +0036D9H 0036EDH 000015H BYTE UNIT CODE ?PR?_PUTCHAR?DEBUG_DRV +0036EEH 0036FEH 000011H BYTE UNIT CODE ?PR?L0_UART1_OPEN?ASP_LOWPOWER +0036FFH 00370FH 000011H BYTE UNIT CODE ?PR?L0_TIMER0_INIT?TTSS_TIME_STC +003710H 00371FH 000010H BYTE UNIT CODE ?PR?L0_IAP_IDLE?MSP_EEPROM +003720H 00372DH 00000EH BYTE UNIT CODE ?PR?L0_UART2_OPEN?ASP_LOWPOWER +00372EH 00377FH 000052H BYTE UNIT CONST ?CO?C_LIB +003780H 003787H 000008H BYTE UNIT CONST ?CO?MSP_UARTN + +* * * * * * * * * * * X D A T A M E M O R Y * * * * * * * * * * * * * +000000H 00012DH 00012EH BYTE UNIT XDATA ?XD?MSP_UARTN +00012EH 000205H 0000D8H BYTE UNIT XDATA ?XD?ASP_SCHAIN +000206H 000275H 000070H BYTE UNIT XDATA ?XD?APP_WEIGHT +000276H 0002A7H 000032H BYTE UNIT XDATA ?XD?APP_CONFIG +0002A8H 0002CFH 000028H BYTE UNIT XDATA _XDATA_GROUP_ +0002D0H 0002E9H 00001AH BYTE UNIT XDATA ?XD?TTSS_TICK +0002EAH 0002F9H 000010H BYTE UNIT XDATA ?XD?BSP_LED +0002FAH 000309H 000010H BYTE UNIT XDATA ?XD?_LC_ENCRYPT_ID?C_LIB +00030AH 000318H 00000FH BYTE UNIT XDATA ?XD?_LC_ARRAY_SORT?C_LIB +000319H 000325H 00000DH BYTE UNIT XDATA ?XD?TTSS_TASK +000326H 000332H 00000DH BYTE UNIT XDATA ?XD?_HEXTODEC?C_LIB +000333H 00033EH 00000CH BYTE UNIT XDATA ?XD?_LC_S32_MEDIA3?C_LIB +00033FH 00034AH 00000CH BYTE UNIT XDATA ?XD?_LC_HEX2ASCII?C_LIB +00034BH 000355H 00000BH BYTE UNIT XDATA ?XD?MAIN?MAIN +000356H 000360H 00000BH BYTE UNIT XDATA ?XD?_LC_ENCRYPT_ID1?C_LIB +000361H 00036AH 00000AH BYTE UNIT XDATA ?XD?_L0_UARTN_ARRAYLONG?MSP_UARTN +00036BH 000374H 00000AH BYTE UNIT XDATA ?XD?_L0_UARTN_ARRAYHEX_WITHOUTBUF?MSP_UARTN +000375H 00037EH 00000AH BYTE UNIT XDATA ?XD?_L1_ADC_READX?MSP_ADC +00037FH 000388H 00000AH BYTE UNIT XDATA ?XD?_LC_BUF_COPY_US?C_LIB +000389H 000392H 00000AH BYTE UNIT XDATA ?XD?_LC_BUF_FROM_CONST_UC?C_LIB +000393H 00039CH 00000AH BYTE UNIT XDATA ?XD?_LC_BUF_COPY_UC?C_LIB +00039DH 0003A6H 00000AH BYTE UNIT XDATA ?XD?_LC_VS32_MEDIA?C_LIB +0003A7H 0003B0H 00000AH BYTE UNIT XDATA ?XD?_LC_SINT2STR_3?C_LIB +0003B1H 0003BAH 00000AH BYTE UNIT XDATA ?XD?_LC_SINT2STR_2_1?C_LIB +0003BBH 0003C3H 000009H BYTE UNIT XDATA ?XD?_L0_UARTN_UL?MSP_UARTN +0003C4H 0003CCH 000009H BYTE UNIT XDATA ?XD?_L0_UARTN_ULHEX?MSP_UARTN +0003CDH 0003D5H 000009H BYTE UNIT XDATA ?XD?_L0_ADS1231_READCH2?BSP_CS1232 +0003D6H 0003DEH 000009H BYTE UNIT XDATA ?XD?_LC_STRCPY?C_LIB +0003DFH 0003E7H 000009H BYTE UNIT XDATA ?XD?_LC_VU32_AVG?C_LIB +0003E8H 0003EFH 000008H BYTE UNIT XDATA ?XD?_L0_UARTN_ARRAY?MSP_UARTN +0003F0H 0003F7H 000008H BYTE UNIT XDATA ?XD?_L0_UARTN_UCHEXARRAY?MSP_UARTN +0003F8H 0003FFH 000008H BYTE UNIT XDATA ?XD?_L0_UARTN_USHEXARRAY?MSP_UARTN +000400H 000407H 000008H BYTE UNIT XDATA ?XD?MSP_IICMX +000408H 00040FH 000008H BYTE UNIT XDATA ?XD?_LC_ABS?C_LIB +000410H 000417H 000008H BYTE UNIT XDATA ?XD?_LC_MEMSET?C_LIB +000418H 00041FH 000008H BYTE UNIT XDATA ?XD?_LC_INT2STR_2_2?C_LIB +000420H 000427H 000008H BYTE UNIT XDATA ?XD?_LC_INT2STR_3?C_LIB +000428H 00042FH 000008H BYTE UNIT XDATA ?XD?_LC_INT2STR_2?C_LIB +000430H 000437H 000008H BYTE UNIT XDATA ?XD?_LC_INT2STR_3_1?C_LIB +000438H 00043FH 000008H BYTE UNIT XDATA ?XD?_LC_INT2STR_5?C_LIB +000440H 000446H 000007H BYTE UNIT XDATA ?XD?_L1_IICMX_READNBYTE?MSP_IICMX + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 6 + + +000447H 00044DH 000007H BYTE UNIT XDATA ?XD?_L2_IICMX_READREG?MSP_IICMX +00044EH 000454H 000007H BYTE UNIT XDATA ?XD?_L0_IAP_PROGRAM_ARRAY?MSP_EEPROM +000455H 00045BH 000007H BYTE UNIT XDATA ?XD?_L0_IAP_READ_ARRAY?MSP_EEPROM +00045CH 000462H 000007H BYTE UNIT XDATA ?XD?_LC_OCR8?C_LIB +000463H 000468H 000006H BYTE UNIT XDATA ?XD?_L3_OUT_TRAN?ASP_SCHAIN +000469H 00046EH 000006H BYTE UNIT XDATA ?XD?_L3_ADC_OUT_OFFSET?ASP_SCHAIN +00046FH 000474H 000006H BYTE UNIT XDATA ?XD?_L3_ADC_GET_OFFSET?ASP_SCHAIN +000475H 00047AH 000006H BYTE UNIT XDATA ?XD?_LIBC_STRLEN?C_LIB +00047BH 000480H 000006H BYTE UNIT XDATA ?XD?_LC_STRSTARTSWITH?C_LIB +000481H 000486H 000006H BYTE UNIT XDATA ?XD?DEBUG_DRV +000487H 00048BH 000005H BYTE UNIT XDATA ?XD?_L0_UARTN_US?MSP_UARTN +00048CH 000490H 000005H BYTE UNIT XDATA ?XD?_L0_UARTN_USHEX?MSP_UARTN +000491H 000495H 000005H BYTE UNIT XDATA ?XD?_LC_S32_MEDIA?C_LIB +000496H 00049AH 000005H BYTE UNIT XDATA ?XD?_LC_STRLEN?C_LIB +00049BH 00049FH 000005H BYTE UNIT XDATA ?XD?_LC_UC2STR_2?C_LIB +0004A0H 0004A3H 000004H BYTE UNIT XDATA ?XD?_L0_UARTN_STR?MSP_UARTN +0004A4H 0004A7H 000004H BYTE UNIT XDATA ?XD?_L0_IICMX_SENDDATA?MSP_IICMX +0004A8H 0004ABH 000004H BYTE UNIT XDATA ?XD?_L2_IICMX_WRITECMD?MSP_IICMX +0004ACH 0004AFH 000004H BYTE UNIT XDATA ?XD?_L2_IICMX_READ1REG1D?MSP_IICMX +0004B0H 0004B3H 000004H BYTE UNIT XDATA ?XD?_ABS2?C_LIB +0004B4H 0004B7H 000004H BYTE UNIT XDATA ?XD?_LC_FOR_INT16?C_LIB +0004B8H 0004BBH 000004H BYTE UNIT XDATA ?XD?_LC_DELAY_US?C_DELAY +0004BCH 0004BFH 000004H BYTE UNIT XDATA ?XD?_LC_DELAY_MS?C_DELAY +0004C0H 0004C2H 000003H BYTE UNIT XDATA ?XD?_L3_TASK_WEIGHT_HANDLER?APP_WEIGHT +0004C3H 0004C5H 000003H BYTE UNIT XDATA ?XD?_L2_PARA_2_S?APP_CONFIG +0004C6H 0004C8H 000003H BYTE UNIT XDATA ?XD?_L2_TASK_ADC_SAMPLE?ASP_SCHAIN +0004C9H 0004CBH 000003H BYTE UNIT XDATA ?XD?_L0_UARTN_ARRAY_WITHOUTBUF?MSP_UARTN +0004CCH 0004CEH 000003H BYTE UNIT XDATA ?XD?_L0_IICMX_RECEIVEDATA?MSP_IICMX +0004CFH 0004D1H 000003H BYTE UNIT XDATA ?XD?_L1_IICMX_WRITEREG?MSP_IICMX +0004D2H 0004D4H 000003H BYTE UNIT XDATA ?XD?_L2_IICMX_WRITE1REG?MSP_IICMX +0004D5H 0004D7H 000003H BYTE UNIT XDATA ?XD?_L0_IAP_READ?MSP_EEPROM +0004D8H 0004DAH 000003H BYTE UNIT XDATA ?XD?_L0_IAP_PROGRAM?MSP_EEPROM +0004DBH 0004DDH 000003H BYTE UNIT XDATA ?XD?_L1_TASK_REG_CLEAR?TTSS_TASK +0004DEH 0004E0H 000003H BYTE UNIT XDATA ?XD?_LC_DESPIKING_SHIFT3_U16?C_LIB +0004E1H 0004E3H 000003H BYTE UNIT XDATA ?XD?_LC_U8_MEDIA3?C_LIB +0004E4H 0004E6H 000003H BYTE UNIT XDATA ?XD?L3_TPC_HEX?DEBUG_DRV +0004E7H 0004E8H 000002H BYTE UNIT XDATA ?XD?L4_WEIGHT_OUT?APP_WEIGHT +0004E9H 0004EAH 000002H BYTE UNIT XDATA ?XD?L4_WPOINT_OUT?APP_WEIGHT +0004EBH 0004ECH 000002H BYTE UNIT XDATA ?XD?L4_KGX10ZERO_OUT?APP_WEIGHT +0004EDH 0004EEH 000002H BYTE UNIT XDATA ?XD?L0_MAIN_INIT?MAIN +0004EFH 0004F0H 000002H BYTE UNIT XDATA ?XD?_L0_SETWAKEUPTIME?ASP_LOWPOWER +0004F1H 0004F2H 000002H BYTE UNIT XDATA ?XD?_LC_DELAY_NOP?STC_8_DELAY +0004F3H 0004F4H 000002H BYTE UNIT XDATA ?XD?DELAY1MS?STC_8_DELAY +0004F5H 0004F6H 000002H BYTE UNIT XDATA ?XD?DELAY100US?STC_8_DELAY +0004F7H 0004F8H 000002H BYTE UNIT XDATA ?XD?DELAY500US?STC_8_DELAY +0004F9H 0004FAH 000002H BYTE UNIT XDATA ?XD?_L0_UARTN_SET?MSP_UARTN +0004FBH 0004FCH 000002H BYTE UNIT XDATA ?XD?_L0_UARTN_485?MSP_UARTN +0004FDH 0004FEH 000002H BYTE UNIT XDATA ?XD?_L0_UARTN_UC?MSP_UARTN +0004FFH 000500H 000002H BYTE UNIT XDATA ?XD?_L0_UARTN_UCHEX?MSP_UARTN +000501H 000502H 000002H BYTE UNIT XDATA ?XD?_L0_IICMX_SDA_OUTIN?MSP_IICMX +000503H 000504H 000002H BYTE UNIT XDATA ?XD?_L0_IICMX_SDA?MSP_IICMX +000505H 000506H 000002H BYTE UNIT XDATA ?XD?_L0_IICMX_SCL?MSP_IICMX +000507H 000508H 000002H BYTE UNIT XDATA ?XD?_L0_IICMX_INIT?MSP_IICMX +000509H 00050AH 000002H BYTE UNIT XDATA ?XD?_L0_IAP_ERASE?MSP_EEPROM +00050BH 00050CH 000002H BYTE UNIT XDATA ?XD?_L0_ADC_SCLK?BSP_CS1232 +00050DH 00050EH 000002H BYTE UNIT XDATA ?XD?_L0_ADC_DOUT_AT?BSP_CS1232 +00050FH 000510H 000002H BYTE UNIT XDATA ?XD?_L3_TPC_D2UART?DEBUG_DRV +000511H 000511H 000001H BYTE UNIT XDATA ?XD?_L2_TASK_WEIGHT_INIT?APP_WEIGHT +000512H 000512H 000001H BYTE UNIT XDATA ?XD?_L3_WEIGHT_ONDEBUG?APP_WEIGHT +000513H 000513H 000001H BYTE UNIT XDATA ?XD?L3_S_INIT?APP_CONFIG +000514H 000514H 000001H BYTE UNIT XDATA ?XD?_L2_TASK_ADC_INIT?ASP_SCHAIN +000515H 000515H 000001H BYTE UNIT XDATA ?XD?_L3_TEST_LP?ASP_LOWPOWER +000516H 000516H 000001H BYTE UNIT XDATA ?XD?DELAY1US?STC_8_DELAY +000517H 000517H 000001H BYTE UNIT XDATA ?XD?_L0_WAITFREE_UARTN?MSP_UARTN +000518H 000518H 000001H BYTE UNIT XDATA ?XD?_L0_UARTN_0D0A?MSP_UARTN + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 7 + + +000519H 000519H 000001H BYTE UNIT XDATA ?XD?_L0_UARTN_SBUF?MSP_UARTN +00051AH 00051AH 000001H BYTE UNIT XDATA ?XD?_L0_IICMX_SDA_GET?MSP_IICMX +00051BH 00051BH 000001H BYTE UNIT XDATA ?XD?_L0_IICMX_START?MSP_IICMX +00051CH 00051CH 000001H BYTE UNIT XDATA ?XD?_L0_IICMX_STOP?MSP_IICMX +00051DH 00051DH 000001H BYTE UNIT XDATA ?XD?_L0_IICMX_ACK?MSP_IICMX +00051EH 00051EH 000001H BYTE UNIT XDATA ?XD?_L0_IICMX_NOACK?MSP_IICMX +00051FH 00051FH 000001H BYTE UNIT XDATA ?XD?_L0_ADC_INIT?MSP_ADC +000520H 000520H 000001H BYTE UNIT XDATA ?XD?_L0_BOARD_INIT?BSP_LED +000521H 000521H 000001H BYTE UNIT XDATA ?XD?_L0_ADS1213_MODE?BSP_CS1232 +000522H 000522H 000001H BYTE UNIT XDATA ?XD?_L0_ADS1213_INIT?BSP_CS1232 +000523H 000523H 000001H BYTE UNIT XDATA ?XD?_L1_S2B_ROAD_INIT?TPC_ROAD +000524H 000524H 000001H BYTE UNIT XDATA ?XD?_L1_S2B_ROAD?TPC_ROAD +000525H 000525H 000001H BYTE UNIT XDATA ?XD?_L1_S2B_ROAD2?TPC_ROAD +000526H 000526H 000001H BYTE UNIT XDATA ?XD?_L1_S2B_ROAD3?TPC_ROAD +000527H 000527H 000001H BYTE UNIT XDATA ?XD?_L1_S2B_ROAD4?TPC_ROAD +000528H 000528H 000001H BYTE UNIT XDATA ?XD?_HEX_TO_CHAR?C_LIB +000529H 000529H 000001H BYTE UNIT XDATA ?XD?_GETINDEXOFSIGNS?C_LIB +00052AH 00052AH 000001H BYTE UNIT XDATA ?XD?_L3_TEST_ONDEBUG?DEBUG_DRV +00052BH 00052BH 000001H BYTE UNIT XDATA ?XD?_PUTCHAR?DEBUG_DRV + +* * * * * * * * * R E M O V E D S E G M E N T S * * * * * * * * + *DEL*: 00015BH BYTE UNIT CODE ?PR?L0_RTC_INIT?MAIN + *DEL*: 000001H BYTE UNIT CODE ?PR?L3_S?APP_CONFIG + *DEL*: 000007H BYTE UNIT CODE ?PR?_L2_PARA_2_S?APP_CONFIG + *DEL*: 000001H BYTE UNIT CODE ?PR?L3_IAP_2_REG?APP_CONFIG + *DEL*: 000150H BYTE UNIT CODE ?PR?L0_MAIN_LOWP?APP_CONFIG + *DEL*: 00001EH BYTE UNIT CODE ?PR?L0_UART_CLOSE?ASP_LOWPOWER + *DEL*: 000062H BYTE UNIT CODE ?PR?_L0_SETWAKEUPTIME?ASP_LOWPOWER + *DEL*: 000112H BYTE UNIT CODE ?PR?L0_MAIN_LOWP_SET?ASP_LOWPOWER + *DEL*: 000017H BYTE UNIT CODE ?PR?L1_MAIN_LOWP_TEST?ASP_LOWPOWER + *DEL*: 000086H BYTE UNIT CODE ?PR?_L3_TEST_LP?ASP_LOWPOWER + *DEL*: 000012H BYTE UNIT CODE ?PR?DELAY1US?STC_8_DELAY + *DEL*: 000021H BYTE UNIT CODE ?PR?DELAY100US?STC_8_DELAY + *DEL*: 000021H BYTE UNIT CODE ?PR?DELAY500US?STC_8_DELAY + *DEL*: 000061H BYTE UNIT CODE ?PR?_L0_UARTN_ARRAYLONG?MSP_UARTN + *DEL*: 00007BH BYTE UNIT CODE ?PR?_L0_UARTN_US?MSP_UARTN + *DEL*: 0000ABH BYTE UNIT CODE ?PR?_L0_UARTN_UL?MSP_UARTN + *DEL*: 000063H BYTE UNIT CODE ?PR?_L0_UARTN_0D0A?MSP_UARTN + *DEL*: 000097H BYTE UNIT CODE ?PR?_L0_UARTN_UCHEX?MSP_UARTN + *DEL*: 0001AFH BYTE UNIT CODE ?PR?_L0_UARTN_ULHEX?MSP_UARTN + *DEL*: 00005FH BYTE UNIT CODE ?PR?_L0_UARTN_UCHEXARRAY?MSP_UARTN + *DEL*: 00006CH BYTE UNIT CODE ?PR?_L0_UARTN_USHEXARRAY?MSP_UARTN + *DEL*: 00000DH BYTE UNIT CODE ?PR?L0_TIMER2_INIT?MSP_TIME2 + *DEL*: 000011H BYTE UNIT CODE ?PR?L1_UART1_OPEN?MSP_UART1 + *DEL*: 00000DH BYTE UNIT CODE ?CO?MSP_UART1 + *DEL*: 000061H BYTE UNIT CODE ?PR?_L0_IICMX_SDA_OUTIN?MSP_IICMX + *DEL*: 000046H BYTE UNIT CODE ?PR?_L0_IICMX_SDA?MSP_IICMX + *DEL*: 000078H BYTE UNIT CODE ?PR?_L0_IICMX_SCL?MSP_IICMX + *DEL*: 0000A1H BYTE UNIT CODE ?PR?_L0_IICMX_INIT?MSP_IICMX + *DEL*: 000027H BYTE UNIT CODE ?PR?_L0_IICMX_SDA_GET?MSP_IICMX + *DEL*: 00006AH BYTE UNIT CODE ?PR?_L0_IICMX_START?MSP_IICMX + *DEL*: 000024H BYTE UNIT CODE ?PR?_L0_IICMX_STOP?MSP_IICMX + *DEL*: 000038H BYTE UNIT CODE ?PR?_L0_IICMX_ACK?MSP_IICMX + *DEL*: 00002EH BYTE UNIT CODE ?PR?_L0_IICMX_NOACK?MSP_IICMX + *DEL*: 0000A4H BYTE UNIT CODE ?PR?_L0_IICMX_SENDDATA?MSP_IICMX + *DEL*: 00008AH BYTE UNIT CODE ?PR?_L0_IICMX_RECEIVEDATA?MSP_IICMX + *DEL*: 0000A4H BYTE UNIT CODE ?PR?_L1_IICMX_READNBYTE?MSP_IICMX + *DEL*: 000032H BYTE UNIT CODE ?PR?_L1_IICMX_WRITEREG?MSP_IICMX + *DEL*: 00002AH BYTE UNIT CODE ?PR?_L2_IICMX_WRITE1REG?MSP_IICMX + *DEL*: 000037H BYTE UNIT CODE ?PR?_L2_IICMX_WRITECMD?MSP_IICMX + *DEL*: 00003FH BYTE UNIT CODE ?PR?_L2_IICMX_READREG?MSP_IICMX + *DEL*: 000040H BYTE UNIT CODE ?PR?_L2_IICMX_READ1REG1D?MSP_IICMX + *DEL*: 00004EH BYTE UNIT CODE ?PR?_L0_ADC_INIT?MSP_ADC + *DEL*: 0000B1H BYTE UNIT CODE ?PR?_L1_ADC_READX?MSP_ADC + *DEL*: 000021H BYTE UNIT CODE ?CO?MSP_ADC + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 8 + + + *DEL*: 000006H BYTE UNIT CODE ?PR?_L0_BOARD_INIT?BSP_LED + *DEL*: 000010H BYTE UNIT CODE ?PR?L2_TASK_KEYLED_REGISTER?BSP_LED + *DEL*: 000006H BYTE UNIT CODE ?PR?L1_TIMER0_INIT?TTSS_TIME_STC + *DEL*: 0001D7H BYTE UNIT CODE ?PR?_L1_S2B_ROAD2?TPC_ROAD + *DEL*: 0001D7H BYTE UNIT CODE ?PR?_L1_S2B_ROAD3?TPC_ROAD + *DEL*: 0001D7H BYTE UNIT CODE ?PR?_L1_S2B_ROAD4?TPC_ROAD + *DEL*: 000030H BYTE UNIT CODE ?PR?_ABS2?C_LIB + *DEL*: 000047H BYTE UNIT CODE ?PR?_LIBC_STRLEN?C_LIB + *DEL*: 000039H BYTE UNIT CODE ?PR?_LC_STRCPY?C_LIB + *DEL*: 000059H BYTE UNIT CODE ?PR?_LC_STRSTARTSWITH?C_LIB + *DEL*: 0000AFH BYTE UNIT CODE ?PR?_HEXTODEC?C_LIB + *DEL*: 000074H BYTE UNIT CODE ?PR?_HEX_TO_CHAR?C_LIB + *DEL*: 00007CH BYTE UNIT CODE ?PR?_GETINDEXOFSIGNS?C_LIB + *DEL*: 000070H BYTE UNIT CODE ?PR?_LC_BUF_COPY_US?C_LIB + *DEL*: 00005EH BYTE UNIT CODE ?PR?_LC_BUF_COPY_UC?C_LIB + *DEL*: 000083H BYTE UNIT CODE ?PR?_LC_U8_MEDIA3?C_LIB + *DEL*: 00008FH BYTE UNIT CODE ?PR?_LC_S32_MEDIA3?C_LIB + *DEL*: 0001F4H BYTE UNIT CODE ?PR?_LC_ARRAY_SORT?C_LIB + *DEL*: 000065H BYTE UNIT CODE ?PR?_LC_S32_MEDIA?C_LIB + *DEL*: 0001D3H BYTE UNIT CODE ?PR?_LC_VS32_MEDIA?C_LIB + *DEL*: 000095H BYTE UNIT CODE ?PR?_LC_VU32_AVG?C_LIB + *DEL*: 000102H BYTE UNIT CODE ?PR?_LC_HEX2ASCII?C_LIB + *DEL*: 000037H BYTE UNIT CODE ?PR?_LC_FOR_INT16?C_LIB + *DEL*: 000038H BYTE UNIT CODE ?PR?_LC_ABS?C_LIB + *DEL*: 0000F3H BYTE UNIT CODE ?PR?_LC_ENCRYPT_ID?C_LIB + *DEL*: 00009AH BYTE UNIT CODE ?PR?_LC_ENCRYPT_ID1?C_LIB + *DEL*: 000060H BYTE UNIT CODE ?PR?_LC_OCR8?C_LIB + *DEL*: 000057H BYTE UNIT CODE ?PR?_LC_MEMSET?C_LIB + *DEL*: 00023DH BYTE UNIT CODE ?PR?_LC_INT2STR_2_2?C_LIB + *DEL*: 000154H BYTE UNIT CODE ?PR?_LC_INT2STR_3?C_LIB + *DEL*: 0000EBH BYTE UNIT CODE ?PR?_LC_INT2STR_2?C_LIB + *DEL*: 0000F2H BYTE UNIT CODE ?PR?_LC_UC2STR_2?C_LIB + *DEL*: 00023DH BYTE UNIT CODE ?PR?_LC_INT2STR_3_1?C_LIB + *DEL*: 0001ABH BYTE UNIT CODE ?PR?_LC_SINT2STR_3?C_LIB + *DEL*: 0001E2H BYTE UNIT CODE ?PR?_LC_SINT2STR_2_1?C_LIB + *DEL*: 000214H BYTE UNIT CODE ?PR?_LC_INT2STR_5?C_LIB + *DEL*: 00003AH BYTE UNIT CODE ?PR?_LC_DELAY_US?C_DELAY + *DEL*: 0000B2H BYTE UNIT CODE ?PR?_L3_TPC_D2UART?DEBUG_DRV + *DEL*: 000272H BYTE UNIT CODE ?PR?_L3_TEST_ONDEBUG?DEBUG_DRV + *DEL*: 00014DH BYTE UNIT CODE ?CO?DEBUG_DRV + + + +OVERLAY MAP OF MODULE: ..\out\stcweight (APP_WEIGHT) + + +FUNCTION/MODULE BIT_GROUP DATA_GROUP XDATA_GROUP +--> CALLED FUNCTION/MODULE START STOP START STOP START STOP +================================================================================== +?C_C51STARTUP ----- ----- ----- ----- ----- ----- + +--> MAIN/MAIN + +--> ?C_INITSEG + +MAIN/MAIN ----- ----- ----- ----- ----- ----- + +--> ?CO?MAIN + +--> L0_MAIN_INIT/MAIN + +--> L3_TASK_WEIGHT_INIT/APP_WEIGHT + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> PRINTF/PRINTF + +--> _L0_UARTN_UC/MSP_UARTN + +--> L2_DEBUG_ONCOMAND/DEBUG_DRV + +--> _L3_WEIGHT_ONDEBUG/APP_WEIGHT + +--> _L3_TASK_WEIGHT_HANDLER/APP_WEIGHT + +?CO?MAIN ----- ----- ----- ----- ----- ----- + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 9 + + + +L0_MAIN_INIT/MAIN ----- ----- ----- ----- ----- ----- + +--> _LC_DELAY_MS/C_DELAY + +--> L0_MAIN_INITLED/MAIN + +--> L0_UART1_OPEN/ASP_LOWPOWER + +--> L0_UART2_OPEN/ASP_LOWPOWER + +--> L3_DEBUG_DRV_INIT/DEBUG_DRV + +--> L1_TASK_TICK_INIT/TTSS_TICK + +--> L0_TIMER0_INIT/TTSS_TIME_STC + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?MAIN + +--> PRINTF/PRINTF + +--> L3_S_INIT/APP_CONFIG + +_LC_DELAY_MS/C_DELAY ----- ----- ----- ----- ----- ----- + +--> DELAY1MS/STC_8_DELAY + +DELAY1MS/STC_8_DELAY ----- ----- ----- ----- ----- ----- + +L0_MAIN_INITLED/MAIN ----- ----- ----- ----- ----- ----- + +--> _LC_DELAY_MS/C_DELAY + +L0_UART1_OPEN/ASP_LOWPOWER ----- ----- ----- ----- ----- ----- + +--> L0_UART1_BUF_INIT/MSP_UART1 + +--> ?CO?ASP_LOWPOWER + +--> _L0_UARTN_STR/MSP_UARTN + +L0_UART1_BUF_INIT/MSP_UART1 ----- ----- ----- ----- ----- ----- + +--> _L0_UARTN_SBUF/MSP_UARTN + +--> _L1_S2B_ROAD_INIT/TPC_ROAD + +--> L0_UART1_INIT/MSP_UART1 + +_L0_UARTN_SBUF/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> ?CO?MSP_UARTN + +?CO?MSP_UARTN ----- ----- ----- ----- ----- ----- + +_L1_S2B_ROAD_INIT/TPC_ROAD ----- ----- ----- ----- ----- ----- + +L0_UART1_INIT/MSP_UART1 ----- ----- ----- ----- ----- ----- + +?CO?ASP_LOWPOWER ----- ----- ----- ----- ----- ----- + +_L0_UARTN_STR/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> _LC_STRLEN/C_LIB + +--> _L0_UARTN_ARRAY/MSP_UARTN + +_LC_STRLEN/C_LIB ----- ----- ----- ----- ----- ----- + +_L0_UARTN_ARRAY/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> _L0_UARTN_485/MSP_UARTN + +--> _L0_UARTN_SET/MSP_UARTN + +_L0_WAITFREE_UARTN/MSP_UARTN ----- ----- ----- ----- ----- ----- + +_L0_UARTN_485/MSP_UARTN ----- ----- ----- ----- ----- ----- + +_L0_UARTN_SET/MSP_UARTN ----- ----- ----- ----- ----- ----- + +L0_UART2_OPEN/ASP_LOWPOWER ----- ----- ----- ----- ----- ----- + +--> ?CO?ASP_LOWPOWER + +--> _L0_UARTN_STR/MSP_UARTN + +L3_DEBUG_DRV_INIT/DEBUG_DRV ----- ----- ----- ----- ----- ----- + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 10 + + + +L1_TASK_TICK_INIT/TTSS_TICK ----- ----- ----- ----- ----- ----- + +--> L2_UART1_OVERTIME_CALLBACK/MSP_UART1 + +L2_UART1_OVERTIME_CALLBACK/MSP_UART1 ----- ----- ----- ----- ----- ----- + +L0_TIMER0_INIT/TTSS_TIME_STC ----- ----- ----- ----- ----- ----- + +PRINTF/PRINTF 20H.0 21H.0 0008H 000CH 02A8H 02CFH + +--> _PUTCHAR/DEBUG_DRV + +_PUTCHAR/DEBUG_DRV ----- ----- ----- ----- ----- ----- + +--> _L0_UARTN_UC/MSP_UARTN + +_L0_UARTN_UC/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> _L0_UARTN_ARRAY/MSP_UARTN + +L3_S_INIT/APP_CONFIG ----- ----- ----- ----- ----- ----- + +--> _L0_IAP_READ_ARRAY/MSP_EEPROM + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?APP_CONFIG + +--> PRINTF/PRINTF + +--> _L0_UARTN_ARRAYHEX_WITHOUTBUF/MSP_UARTN + +--> L3_S_2_R/APP_CONFIG + +--> L3_R_2_S/APP_CONFIG + +--> _L0_IAP_PROGRAM_ARRAY/MSP_EEPROM + +_L0_IAP_READ_ARRAY/MSP_EEPROM ----- ----- ----- ----- ----- ----- + +--> _L0_IAP_READ/MSP_EEPROM + +_L0_IAP_READ/MSP_EEPROM ----- ----- ----- ----- ----- ----- + +--> L0_IAP_IDLE/MSP_EEPROM + +L0_IAP_IDLE/MSP_EEPROM ----- ----- ----- ----- ----- ----- + +?CO?APP_CONFIG ----- ----- ----- ----- ----- ----- + +_L0_UARTN_ARRAYHEX_WITHOUTBUF/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> _L0_UARTN_SBUF/MSP_UARTN + +--> ?CO?C_LIB + +--> _L0_UARTN_ARRAY_WITHOUTBUF/MSP_UARTN + +?CO?C_LIB ----- ----- ----- ----- ----- ----- + +_L0_UARTN_ARRAY_WITHOUTBUF/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> _L0_UARTN_485/MSP_UARTN + +--> _L0_UARTN_SBUF/MSP_UARTN + +--> _L0_UARTN_SET/MSP_UARTN + +L3_S_2_R/APP_CONFIG ----- ----- ----- ----- ----- ----- + +--> _LC_BUF_FROM_CONST_UC/C_LIB + +_LC_BUF_FROM_CONST_UC/C_LIB ----- ----- ----- ----- ----- ----- + +L3_R_2_S/APP_CONFIG ----- ----- ----- ----- ----- ----- + +--> _LC_BUF_FROM_CONST_UC/C_LIB + +_L0_IAP_PROGRAM_ARRAY/MSP_EEPROM ----- ----- ----- ----- ----- ----- + +--> _L0_IAP_ERASE/MSP_EEPROM + +--> _L0_IAP_PROGRAM/MSP_EEPROM + +_L0_IAP_ERASE/MSP_EEPROM ----- ----- ----- ----- ----- ----- + +--> L0_IAP_IDLE/MSP_EEPROM + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 11 + + + +_L0_IAP_PROGRAM/MSP_EEPROM ----- ----- ----- ----- ----- ----- + +--> L0_IAP_IDLE/MSP_EEPROM + +L3_TASK_WEIGHT_INIT/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _L1_TASK_REG_CLEAR/TTSS_TASK + +--> _L2_TASK_WEIGHT_INIT/APP_WEIGHT + +_L1_TASK_REG_CLEAR/TTSS_TASK ----- ----- ----- ----- ----- ----- + +_L2_TASK_WEIGHT_INIT/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _L0_ADS1213_INIT/BSP_CS1232 + +--> _L2_TASK_ADC_INIT/ASP_SCHAIN + +_L0_ADS1213_INIT/BSP_CS1232 ----- ----- ----- ----- ----- ----- + +--> _LC_DELAY_NOP/STC_8_DELAY + +--> _L0_ADS1213_MODE/BSP_CS1232 + +_LC_DELAY_NOP/STC_8_DELAY ----- ----- ----- ----- ----- ----- + +_L0_ADS1213_MODE/BSP_CS1232 ----- ----- ----- ----- ----- ----- + +_L2_TASK_ADC_INIT/ASP_SCHAIN ----- ----- ----- ----- ----- ----- + +--> _L1_TASK_REG_CLEAR/TTSS_TASK + +L2_DEBUG_ONCOMAND/DEBUG_DRV ----- ----- ----- ----- ----- ----- + +--> L3_TPC_HEX/DEBUG_DRV + +L3_TPC_HEX/DEBUG_DRV ----- ----- ----- ----- ----- ----- + +_L3_WEIGHT_ONDEBUG/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> L4_WEIGHT_OUT/APP_WEIGHT + +--> L4_WPOINT_OUT/APP_WEIGHT + +--> L3_R_2_S/APP_CONFIG + +--> _L0_IAP_PROGRAM_ARRAY/MSP_EEPROM + +--> L4_KGX10ZERO_OUT/APP_WEIGHT + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?APP_WEIGHT + +--> PRINTF/PRINTF + +--> L4_WEIGHT_PRINT/APP_WEIGHT + +L4_WEIGHT_OUT/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _L0_UARTN_ARRAY/MSP_UARTN + +L4_WPOINT_OUT/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _LC_BUF_FROM_CONST_UC/C_LIB + +--> _L0_UARTN_ARRAY/MSP_UARTN + +L4_KGX10ZERO_OUT/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _L0_UARTN_ARRAY/MSP_UARTN + +?CO?APP_WEIGHT ----- ----- ----- ----- ----- ----- + +L4_WEIGHT_PRINT/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _L0_UARTN_USHEX/MSP_UARTN + +--> _L0_UARTN_UC/MSP_UARTN + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?APP_WEIGHT + +--> PRINTF/PRINTF + +_L0_UARTN_USHEX/MSP_UARTN ----- ----- ----- ----- ----- ----- + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?C_LIB + +--> _L0_UARTN_ARRAY/MSP_UARTN + + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 12 + + +_L3_TASK_WEIGHT_HANDLER/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +--> _L2_TASK_ADC_SAMPLE/ASP_SCHAIN + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?APP_WEIGHT + +--> PRINTF/PRINTF + +--> L3_TASK_WEIGHT_CAL/APP_WEIGHT + +_L2_TASK_ADC_SAMPLE/ASP_SCHAIN ----- ----- ----- ----- ----- ----- + +--> _L0_WAITFREE_UARTN/MSP_UARTN + +--> ?CO?ASP_SCHAIN + +--> PRINTF/PRINTF + +--> _L0_ADC_DOUT_AT/BSP_CS1232 + +--> _L0_ADS1231_READCH2/BSP_CS1232 + +--> _L3_OUT_TRAN/ASP_SCHAIN + +--> _L3_ADC_OUT_OFFSET/ASP_SCHAIN + +--> _LC_DESPIKING_SHIFT3_U16/C_LIB + +--> _L0_UARTN_UC/MSP_UARTN + +--> _L3_ADC_GET_OFFSET/ASP_SCHAIN + +?CO?ASP_SCHAIN ----- ----- ----- ----- ----- ----- + +_L0_ADC_DOUT_AT/BSP_CS1232 ----- ----- ----- ----- ----- ----- + +_L0_ADS1231_READCH2/BSP_CS1232 ----- ----- ----- ----- ----- ----- + +--> _L0_ADC_SCLK/BSP_CS1232 + +--> _L0_ADC_DOUT_AT/BSP_CS1232 + +_L0_ADC_SCLK/BSP_CS1232 ----- ----- ----- ----- ----- ----- + +--> _LC_DELAY_NOP/STC_8_DELAY + +_L3_OUT_TRAN/ASP_SCHAIN ----- ----- ----- ----- ----- ----- + +_L3_ADC_OUT_OFFSET/ASP_SCHAIN ----- ----- ----- ----- ----- ----- + +_LC_DESPIKING_SHIFT3_U16/C_LIB ----- ----- ----- ----- ----- ----- + +_L3_ADC_GET_OFFSET/ASP_SCHAIN ----- ----- ----- ----- ----- ----- + +L3_TASK_WEIGHT_CAL/APP_WEIGHT ----- ----- ----- ----- ----- ----- + +?C_INITSEG ----- ----- ----- ----- ----- ----- + +*** NEW ROOT ******************************* + +INTERRUPT_UART/MSP_UART1 ----- ----- ----- ----- ----- ----- + +--> _L1_S2B_ROAD/TPC_ROAD + +_L1_S2B_ROAD/TPC_ROAD ----- ----- ----- ----- ----- ----- + +*** NEW ROOT ******************************* + +TIMER0_ISRHANDLE/TTSS_TIME_STC ----- ----- ----- ----- ----- ----- + +--> L1_TASK_TICK_CALLBACK/TTSS_TICK + +L1_TASK_TICK_CALLBACK/TTSS_TICK ----- ----- ----- ----- ----- ----- + + + +PUBLIC SYMBOLS OF MODULE: ..\out\stcweight (APP_WEIGHT) + + + VALUE CLASS TYPE PUBLIC SYMBOL NAME + ================================================= + 0200044EH XDATA BYTE ?_L0_Iap_Program_array?BYTE + 02000455H XDATA BYTE ?_L0_Iap_Read_array?BYTE + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 13 + + + 020003E8H XDATA BYTE ?_L0_uartN_Array?BYTE + 0200036BH XDATA BYTE ?_L0_uartN_Arrayhex_withoutbuf?BYTE + 02000361H XDATA BYTE ?_L0_uartN_Arraylong?BYTE + 020003F0H XDATA BYTE ?_L0_uartN_uchexArray?BYTE + 020003BBH XDATA BYTE ?_L0_uartN_ul?BYTE + 020003C4H XDATA BYTE ?_L0_uartN_ulhex?BYTE + 020003F8H XDATA BYTE ?_L0_uartN_ushexArray?BYTE + 02000440H XDATA BYTE ?_L1_IICMx_ReadNByte?BYTE + 02000447H XDATA BYTE ?_L2_IICMx_ReadReg?BYTE + 020004A8H XDATA BYTE ?_L2_IICMx_WriteCmd?BYTE + 02000408H XDATA BYTE ?_Lc_abs?BYTE + 02000393H XDATA BYTE ?_Lc_buf_copy_uc?BYTE + 0200037FH XDATA BYTE ?_Lc_buf_copy_us?BYTE + 02000389H XDATA BYTE ?_Lc_buf_from_const_uc?BYTE + 02000356H XDATA BYTE ?_Lc_encrypt_id1?BYTE + 020002FAH XDATA BYTE ?_Lc_encrypt_id?BYTE + 0200033FH XDATA BYTE ?_Lc_hex2ascii?BYTE + 02000410H XDATA BYTE ?_Lc_memset?BYTE + 02000333H XDATA BYTE ?_Lc_S32_media3?BYTE + 020003D6H XDATA BYTE ?_Lc_strcpy?BYTE + 0200047BH XDATA BYTE ?_Lc_strStartsWith?BYTE + 020002A8H XDATA --- ?_PRINTF517?BYTE + 020002A8H XDATA --- ?_PRINTF?BYTE + 020002A8H XDATA --- ?_SPRINTF517?BYTE + 020002A8H XDATA --- ?_SPRINTF?BYTE + 01000690H CODE --- ?C?CCASE + 01000162H CODE --- ?C?CILDOPTR + 01000135H CODE --- ?C?CLDOPTR + 0100011CH CODE --- ?C?CLDPTR + 00000000H NUMBER --- ?C?CODESEG + 010000F6H CODE --- ?C?COPY + 010001A7H CODE --- ?C?CSTOPTR + 01000195H CODE --- ?C?CSTPTR + 010006B6H CODE --- ?C?ICALL + 010006BAH CODE --- ?C?ICALL2 + 01000266H CODE --- ?C?IILDX + 0100027CH CODE --- ?C?ILDIX + 010002BDH CODE --- ?C?ILDOPTR + 01000292H CODE --- ?C?ILDPTR + 010001C9H CODE --- ?C?IMUL + 010002F5H CODE --- ?C?ISTOPTR + 01000322H CODE --- ?C?LADD + 010006BCH CODE --- ?C?LIMUL + 0100054FH CODE --- ?C?LLDCODE + 0100056BH CODE --- ?C?LLDCODE0 + 010006E9H CODE --- ?C?LLDIDATA + 01000701H CODE --- ?C?LLDIDATA0 + 010005B4H CODE --- ?C?LLDIXDATA + 010005ABH CODE --- ?C?LLDIXDATA1 + 010005ADH CODE --- ?C?LLDIXDATA8 + 010004D5H CODE --- ?C?LLDOPTR + 0100057BH CODE --- ?C?LLDOPTR0 + 010006F5H CODE --- ?C?LLDPDATA + 0100070EH CODE --- ?C?LLDPDATA0 + 010004B5H CODE --- ?C?LLDPTR + 01000543H CODE --- ?C?LLDXDATA + 0100055FH CODE --- ?C?LLDXDATA0 + 0100033DH CODE --- ?C?LMUL + 0100045AH CODE --- ?C?LNEG + 010004A2H CODE --- ?C?LSHL + 0100071BH CODE --- ?C?LSTIDATA + 01000733H CODE --- ?C?LSTKIDATA + 0100074CH CODE --- ?C?LSTKPDATA + 0100061DH CODE --- ?C?LSTKPTR + 010005ECH CODE --- ?C?LSTKXDATA + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 14 + + + 0100051FH CODE --- ?C?LSTOPTR + 01000727H CODE --- ?C?LSTPDATA + 01000505H CODE --- ?C?LSTPTR + 010005E0H CODE --- ?C?LSTXDATA + 0100032FH CODE --- ?C?LSUB + 01000777H CODE --- ?C?PLDCODE + 01000765H CODE --- ?C?PLDIDATA + 01000640H CODE --- ?C?PLDIXDATA + 01000660H CODE --- ?C?PLDOPTR + 0100076EH CODE --- ?C?PLDPDATA + 01000637H CODE --- ?C?PLDXDATA + 01000657H CODE --- ?C?PSTXDATA + 01000230H CODE --- ?C?SIDIV + 01000468H CODE --- ?C?SLCMP + 010001DBH CODE --- ?C?UIDIV + 0100047EH CODE --- ?C?ULCMP + 010003C8H CODE --- ?C?ULDIV + 0100048FH CODE --- ?C?ULSHR + 00000000H NUMBER --- ?C?XDATASEG + 010027BFH CODE --- ?C_START + 01000000H CODE --- ?C_STARTUP + 0000000DH DATA --- ?C_XBP +*DEL*:00000000H CODE --- _Abs2 +*DEL*:00000000H CODE --- _getIndexOfSigns +*DEL*:00000000H CODE --- _hex_to_char +*DEL*:00000000H CODE --- _hexToDec + 0100318BH CODE --- _L0_adc_DOUT_AT +*DEL*:00000000H CODE --- _L0_ADC_init + 01002B47H CODE --- _L0_adc_SCLK + 01002A3EH CODE --- _L0_ADS1213_INIT + 01002DACH CODE --- _L0_ADS1213_mode + 010026C2H CODE --- _L0_ADS1231_readCH2 +*DEL*:00000000H CODE --- _L0_board_init + 0100353BH CODE --- _L0_Iap_Erase + 01003418H CODE --- _L0_Iap_Program + 01002E87H CODE --- _L0_Iap_Program_array + 01003458H CODE --- _L0_Iap_Read + 0100312FH CODE --- _L0_Iap_Read_array +*DEL*:00000000H CODE --- _L0_IICMx_Ack +*DEL*:00000000H CODE --- _L0_IICMx_INIT +*DEL*:00000000H CODE --- _L0_IICMx_NoAck +*DEL*:00000000H CODE --- _L0_IICMx_ReceiveData +*DEL*:00000000H CODE --- _L0_IICMx_SCL +*DEL*:00000000H CODE --- _L0_IICMx_SDA +*DEL*:00000000H CODE --- _L0_IICMx_SDA_get +*DEL*:00000000H CODE --- _L0_IICMx_SDA_outin +*DEL*:00000000H CODE --- _L0_IICMx_SendData +*DEL*:00000000H CODE --- _L0_IICMx_Start +*DEL*:00000000H CODE --- _L0_IICMx_Stop +*DEL*:00000000H CODE --- _L0_SetWakeUpTime +*DEL*:00000000H CODE --- _L0_uartN_0d0a + 01002F53H CODE --- _L0_uartN_485 + 01001CCFH CODE --- _L0_uartN_Array + 0100221EH CODE --- _L0_uartN_Array_withoutbuf + 01001756H CODE --- _L0_uartN_Arrayhex_withoutbuf +*DEL*:00000000H CODE --- _L0_uartN_Arraylong + 01001E2EH CODE --- _L0_uartN_sbuf + 01003392H CODE --- _L0_uartN_set + 01003606H CODE --- _L0_uartN_str + 010036A0H CODE --- _L0_uartN_uc +*DEL*:00000000H CODE --- _L0_uartN_uchex +*DEL*:00000000H CODE --- _L0_uartN_uchexArray +*DEL*:00000000H CODE --- _L0_uartN_ul +*DEL*:00000000H CODE --- _L0_uartN_ulhex +*DEL*:00000000H CODE --- _L0_uartN_us + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 15 + + + 01001F36H CODE --- _L0_uartN_ushex +*DEL*:00000000H CODE --- _L0_uartN_ushexArray + 0100203BH CODE --- _L0_waitFree_uartN +*DEL*:00000000H CODE --- _L1_ADC_Readx +*DEL*:00000000H CODE --- _L1_IICMx_ReadNByte +*DEL*:00000000H CODE --- _L1_IICMx_WriteReg + 01001968H CODE --- _L1_s2b_road +*DEL*:00000000H CODE --- _L1_s2b_road2 +*DEL*:00000000H CODE --- _L1_s2b_road3 +*DEL*:00000000H CODE --- _L1_s2b_road4 + 010030D2H CODE --- _L1_s2b_road_init + 0100356FH CODE --- _L1_task_reg_clear +*DEL*:00000000H CODE --- _L2_IICMx_Read1Reg1D +*DEL*:00000000H CODE --- _L2_IICMx_ReadReg +*DEL*:00000000H CODE --- _L2_IICMx_Write1Reg +*DEL*:00000000H CODE --- _L2_IICMx_WriteCmd +*DEL*:00000000H CODE --- _L2_para_2_S + 01002C47H CODE --- _L2_task_adc_init + 01000783H CODE --- _L2_task_adc_sample + 01003507H CODE --- _L2_task_weight_init + 01002D3CH CODE --- _L3_adc_get_offset + 01002BCAH CODE --- _L3_adc_out_offset + 0100334DH CODE --- _L3_out_tran + 01000E3DH CODE --- _L3_task_weight_handler +*DEL*:00000000H CODE --- _L3_test_lp +*DEL*:00000000H CODE --- _L3_test_ONdebug +*DEL*:00000000H CODE --- _L3_tpc_D2uart + 01001532H CODE --- _L3_weight_ONdebug +*DEL*:00000000H CODE --- _Lc_abs +*DEL*:00000000H CODE --- _Lc_array_sort +*DEL*:00000000H CODE --- _Lc_buf_copy_uc +*DEL*:00000000H CODE --- _Lc_buf_copy_us + 01003074H CODE --- _Lc_buf_from_const_uc + 01003497H CODE --- _Lc_delay_ms + 0100367CH CODE --- _Lc_delay_nop +*DEL*:00000000H CODE --- _Lc_delay_us + 01002137H CODE --- _Lc_despiking_shift3_U16 +*DEL*:00000000H CODE --- _Lc_encrypt_id +*DEL*:00000000H CODE --- _Lc_encrypt_id1 +*DEL*:00000000H CODE --- _Lc_for_int16 +*DEL*:00000000H CODE --- _Lc_hex2ascii +*DEL*:00000000H CODE --- _Lc_int2str_2 +*DEL*:00000000H CODE --- _Lc_int2str_2_2 +*DEL*:00000000H CODE --- _Lc_int2str_3 +*DEL*:00000000H CODE --- _Lc_int2str_3_1 +*DEL*:00000000H CODE --- _Lc_int2str_5 +*DEL*:00000000H CODE --- _Lc_memset +*DEL*:00000000H CODE --- _Lc_ocr8 +*DEL*:00000000H CODE --- _Lc_S32_media +*DEL*:00000000H CODE --- _Lc_S32_media3 +*DEL*:00000000H CODE --- _Lc_sint2str_2_1 +*DEL*:00000000H CODE --- _Lc_sint2str_3 +*DEL*:00000000H CODE --- _Lc_strcpy + 010035A3H CODE --- _Lc_strlen +*DEL*:00000000H CODE --- _Lc_strStartsWith +*DEL*:00000000H CODE --- _Lc_U8_media3 +*DEL*:00000000H CODE --- _Lc_uc2str_2 +*DEL*:00000000H CODE --- _Lc_vS32_media +*DEL*:00000000H CODE --- _Lc_vU32_avg +*DEL*:00000000H CODE --- _libc_strlen + 01001238H CODE --- _PRINTF + 01001238H CODE --- _PRINTF517 + 010036D9H CODE --- _putchar + 01001232H CODE --- _SPRINTF + 01001232H CODE --- _SPRINTF517 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 16 + + +*SFR* 000000D0H.6 DATA BIT AC +*SFR* 000000E0H DATA BYTE ACC +*SFR* 000000BCH DATA BYTE ADC_CONTR +*SFR* 000000BDH DATA BYTE ADC_RES +*SFR* 000000BEH DATA BYTE ADC_RESL +*SFR* 000000DEH DATA BYTE ADCCFG +*SFR* 000000EFH DATA BYTE AUXINTIF +*SFR* 0000008EH DATA BYTE AUXR +*SFR* 000000F0H DATA BYTE B + 01003760H CONST --- cguHex2Char +*SFR* 000000E6H DATA BYTE CMPCR1 +*SFR* 000000E7H DATA BYTE CMPCR2 +*SFR* 000000D0H.7 DATA BIT CY +*DEL*:00000000H CODE --- Delay100us + 01003631H CODE --- Delay1ms +*DEL*:00000000H CODE --- Delay1us +*DEL*:00000000H CODE --- Delay500us +*SFR* 00000083H DATA BYTE DPH +*SFR* 000000E5H DATA BYTE DPH1 +*SFR* 00000082H DATA BYTE DPL +*SFR* 000000E4H DATA BYTE DPL1 +*SFR* 000000E3H DATA BYTE DPS +*SFR* 000000A8H.7 DATA BIT EA +*SFR* 000000A8H.5 DATA BIT EADC +*SFR* 000000A8H.6 DATA BIT ELVD +*SFR* 000000A8H.4 DATA BIT ES +*SFR* 000000A8H.1 DATA BIT ET0 +*SFR* 000000A8H.3 DATA BIT ET1 +*SFR* 000000A8H DATA BIT EX0 +*SFR* 000000A8H.2 DATA BIT EX1 +*SFR* 000000D0H.5 DATA BIT F0 +*SFR* 000000D0H.1 DATA BIT F1 +*SFR* 000000C3H DATA BYTE IAP_ADDRH +*SFR* 000000C4H DATA BYTE IAP_ADDRL +*SFR* 000000C5H DATA BYTE IAP_CMD +*SFR* 000000C7H DATA BYTE IAP_CONTR +*SFR* 000000C2H DATA BYTE IAP_DATA +*SFR* 000000F5H DATA BYTE IAP_TPS +*SFR* 000000C6H DATA BYTE IAP_TRIG +*SFR* 000000A8H DATA BYTE IE +*SFR* 00000088H.1 DATA BIT IE0 +*SFR* 00000088H.3 DATA BIT IE1 +*SFR* 000000AFH DATA BYTE IE2 +*SFR* 000000B0H.2 DATA BIT INT0 +*SFR* 000000B0H.3 DATA BIT INT1 +*SFR* 0000008FH DATA BYTE INTCLKO + 0100260EH CODE --- INTERRUPT_UART +*SFR* 000000B8H DATA BYTE IP +*SFR* 000000B5H DATA BYTE IP2 +*SFR* 000000B6H DATA BYTE IP2H +*SFR* 000000DFH DATA BYTE IP3 +*SFR* 000000EEH DATA BYTE IP3H +*SFR* 000000B7H DATA BYTE IPH +*SFR* 0000009DH DATA BYTE IRCBAND +*SFR* 0000009FH DATA BYTE IRTRIM +*SFR* 00000088H DATA BIT IT0 +*SFR* 00000088H.2 DATA BIT IT1 + 01003710H CODE --- L0_Iap_Idle + 01002E1BH CODE --- L0_main_init + 010034D1H CODE --- L0_main_initled +*DEL*:00000000H CODE --- L0_main_lowp +*DEL*:00000000H CODE --- L0_main_lowp_set +*DEL*:00000000H CODE --- L0_RTC_init + 010036FFH CODE --- L0_timer0_Init +*DEL*:00000000H CODE --- L0_timer2_init + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 17 + + + 01003277H CODE --- L0_uart1_buf_init + 010036C2H CODE --- L0_uart1_init + 010036EEH CODE --- L0_uart1_open + 01003720H CODE --- L0_uart2_open +*DEL*:00000000H CODE --- L0_uart_close +*DEL*:00000000H CODE --- L1_main_lowp_test + 01002EEEH CODE --- L1_task_tick_callback + 0100322DH CODE --- L1_task_tick_init +*DEL*:00000000H CODE --- L1_timer0_Init +*DEL*:00000000H CODE --- L1_uart1_open + 010035D7H CODE --- L2_debug_ONcomand +*DEL*:00000000H CODE --- L2_task_keyled_register + 01003306H CODE --- L2_uart1_overtime_callback + 01000003H CODE --- L3_debug_drv_init +*DEL*:00000000H CODE --- L3_iap_2_reg + 01002898H CODE --- L3_R_2_S +*DEL*:00000000H CODE --- L3_S + 010023C1H CODE --- L3_S_2_R + 01002490H CODE --- L3_S_init + 01001B69H CODE --- L3_task_weight_cal + 0100000EH CODE --- L3_task_weight_init + 01003014H CODE --- L3_tpc_hex + 01002AC4H CODE --- L4_kgx10zero_out + 01002553H CODE --- L4_weight_out + 010022F0H CODE --- L4_weight_print + 010029B7H CODE --- L4_WPoint_out +*SFR* 0000009EH DATA BYTE LIRTRIM + 01002804H CODE --- main +*SFR* 000000D0H.2 DATA BIT OV +*SFR* 000000D0H DATA BIT P +*SFR* 00000080H DATA BYTE P0 +*SFR* 00000080H DATA BIT P00 +*SFR* 00000080H.1 DATA BIT P01 +*SFR* 00000080H.2 DATA BIT P02 +*SFR* 00000080H.3 DATA BIT P03 +*SFR* 00000080H.4 DATA BIT P04 +*SFR* 00000080H.5 DATA BIT P05 +*SFR* 00000080H.6 DATA BIT P06 +*SFR* 00000080H.7 DATA BIT P07 +*SFR* 00000094H DATA BYTE P0M0 +*SFR* 00000093H DATA BYTE P0M1 +*SFR* 00000090H DATA BYTE P1 +*SFR* 00000090H DATA BIT P10 +*SFR* 00000090H.1 DATA BIT P11 +*SFR* 00000090H.2 DATA BIT P12 +*SFR* 00000090H.3 DATA BIT P13 +*SFR* 00000090H.4 DATA BIT P14 +*SFR* 00000090H.5 DATA BIT P15 +*SFR* 00000090H.6 DATA BIT P16 +*SFR* 00000090H.7 DATA BIT P17 +*SFR* 00000092H DATA BYTE P1M0 +*SFR* 00000091H DATA BYTE P1M1 +*SFR* 000000A0H DATA BYTE P2 +*SFR* 000000A0H DATA BIT P20 +*SFR* 000000A0H.1 DATA BIT P21 +*SFR* 000000A0H.2 DATA BIT P22 +*SFR* 000000A0H.3 DATA BIT P23 +*SFR* 000000A0H.4 DATA BIT P24 +*SFR* 000000A0H.5 DATA BIT P25 +*SFR* 000000A0H.6 DATA BIT P26 +*SFR* 000000A0H.7 DATA BIT P27 +*SFR* 00000096H DATA BYTE P2M0 +*SFR* 00000095H DATA BYTE P2M1 +*SFR* 000000B0H DATA BYTE P3 +*SFR* 000000B0H DATA BIT P30 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 18 + + +*SFR* 000000B0H.1 DATA BIT P31 +*SFR* 000000B0H.2 DATA BIT P32 +*SFR* 000000B0H.3 DATA BIT P33 +*SFR* 000000B0H.4 DATA BIT P34 +*SFR* 000000B0H.5 DATA BIT P35 +*SFR* 000000B0H.6 DATA BIT P36 +*SFR* 000000B0H.7 DATA BIT P37 +*SFR* 000000B2H DATA BYTE P3M0 +*SFR* 000000B1H DATA BYTE P3M1 +*SFR* 000000C0H DATA BYTE P4 +*SFR* 000000C0H DATA BIT P40 +*SFR* 000000C0H.1 DATA BIT P41 +*SFR* 000000C0H.2 DATA BIT P42 +*SFR* 000000C0H.3 DATA BIT P43 +*SFR* 000000C0H.4 DATA BIT P44 +*SFR* 000000C0H.5 DATA BIT P45 +*SFR* 000000C0H.6 DATA BIT P46 +*SFR* 000000C0H.7 DATA BIT P47 +*SFR* 000000B4H DATA BYTE P4M0 +*SFR* 000000B3H DATA BYTE P4M1 +*SFR* 000000C8H DATA BYTE P5 +*SFR* 000000C8H DATA BIT P50 +*SFR* 000000C8H.1 DATA BIT P51 +*SFR* 000000C8H.2 DATA BIT P52 +*SFR* 000000C8H.3 DATA BIT P53 +*SFR* 000000C8H.4 DATA BIT P54 +*SFR* 000000C8H.5 DATA BIT P55 +*SFR* 000000C8H.6 DATA BIT P56 +*SFR* 000000C8H.7 DATA BIT P57 +*SFR* 000000CAH DATA BYTE P5M0 +*SFR* 000000C9H DATA BYTE P5M1 +*SFR* 000000E8H DATA BYTE P6 +*SFR* 000000E8H DATA BIT P60 +*SFR* 000000E8H.1 DATA BIT P61 +*SFR* 000000E8H.2 DATA BIT P62 +*SFR* 000000E8H.3 DATA BIT P63 +*SFR* 000000E8H.4 DATA BIT P64 +*SFR* 000000E8H.5 DATA BIT P65 +*SFR* 000000E8H.6 DATA BIT P66 +*SFR* 000000E8H.7 DATA BIT P67 +*SFR* 000000CCH DATA BYTE P6M0 +*SFR* 000000CBH DATA BYTE P6M1 +*SFR* 000000F8H DATA BYTE P7 +*SFR* 000000F8H DATA BIT P70 +*SFR* 000000F8H.1 DATA BIT P71 +*SFR* 000000F8H.2 DATA BIT P72 +*SFR* 000000F8H.3 DATA BIT P73 +*SFR* 000000F8H.4 DATA BIT P74 +*SFR* 000000F8H.5 DATA BIT P75 +*SFR* 000000F8H.6 DATA BIT P76 +*SFR* 000000F8H.7 DATA BIT P77 +*SFR* 000000E2H DATA BYTE P7M0 +*SFR* 000000E1H DATA BYTE P7M1 +*SFR* 000000A2H DATA BYTE P_SW1 +*SFR* 000000BAH DATA BYTE P_SW2 +*SFR* 000000B8H.5 DATA BIT PADC +*SFR* 00000087H DATA BYTE PCON + 02000481H XDATA --- pd + 02000484H XDATA --- pd485 +*SFR* 000000DCH DATA BYTE PLLCR +*SFR* 000000B8H.6 DATA BIT PLVD +*SFR* 000000B8H.7 DATA BIT PPCA +*SFR* 000000B8H.4 DATA BIT PS +*SFR* 000000D0H DATA BYTE PSW +*SFR* 000000B8H.1 DATA BIT PT0 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 19 + + +*SFR* 000000B8H.3 DATA BIT PT1 +*SFR* 000000B8H DATA BIT PX0 +*SFR* 000000B8H.2 DATA BIT PX1 +*SFR* 00000098H.2 DATA BIT RB8 +*SFR* 000000B0H.7 DATA BIT RD +*SFR* 00000098H.4 DATA BIT REN +*SFR* 00000098H DATA BIT RI +*SFR* 000000D0H.3 DATA BIT RS0 +*SFR* 000000D0H.4 DATA BIT RS1 +*SFR* 000000FFH DATA BYTE RSTCFG +*SFR* 000000B0H DATA BIT RXD + 02000276H XDATA --- S +*SFR* 0000009BH DATA BYTE S2BUF +*SFR* 0000009AH DATA BYTE S2CON +*SFR* 000000ADH DATA BYTE S3BUF +*SFR* 000000ACH DATA BYTE S3CON +*SFR* 00000085H DATA BYTE S4BUF +*SFR* 00000084H DATA BYTE S4CON + 020002D0H XDATA --- s_nos_tick + 01003780H CONST --- S_send_max +*SFR* 000000A9H DATA BYTE SADDR +*SFR* 000000B9H DATA BYTE SADEN +*SFR* 00000099H DATA BYTE SBUF +*SFR* 00000098H DATA BYTE SCON +*SFR* 00000098H.7 DATA BIT SM0 +*SFR* 00000098H.6 DATA BIT SM1 +*SFR* 00000098H.5 DATA BIT SM2 +*SFR* 00000081H DATA BYTE SP +*SFR* 000000CEH DATA BYTE SPCTL +*SFR* 000000CFH DATA BYTE SPDAT +*SFR* 000000CDH DATA BYTE SPSTAT +*SFR* 000000B0H.4 DATA BIT T0 +*SFR* 000000B0H.5 DATA BIT T1 +*SFR* 000000D6H DATA BYTE T2H +*SFR* 000000D7H DATA BYTE T2L +*SFR* 000000D4H DATA BYTE T3H +*SFR* 000000D5H DATA BYTE T3L +*SFR* 000000D2H DATA BYTE T4H +*SFR* 000000D3H DATA BYTE T4L +*SFR* 000000D1H DATA BYTE T4T3M +*SFR* 000000AEH DATA BYTE TA +*SFR* 00000098H.3 DATA BIT TB8 +*SFR* 00000088H DATA BYTE TCON +*SFR* 00000088H.5 DATA BIT TF0 +*SFR* 00000088H.7 DATA BIT TF1 +*SFR* 0000008CH DATA BYTE TH0 +*SFR* 0000008DH DATA BYTE TH1 +*SFR* 00000098H.1 DATA BIT TI + 010033D5H CODE --- timer0_isrHandle +*SFR* 0000008AH DATA BYTE TL0 +*SFR* 0000008BH DATA BYTE TL1 +*SFR* 00000089H DATA BYTE TMOD +*SFR* 00000088H.4 DATA BIT TR0 +*SFR* 00000088H.6 DATA BIT TR1 + 0200014EH XDATA --- ts_adc_samples + 0200012EH XDATA --- TS_adc_SPara + 02000400H XDATA --- ts_iicm + 020002EAH XDATA --- ts_key + 0200026CH XDATA --- ts_kgx10zero_out + 02000320H XDATA --- ts_task_init + 020002EDH XDATA --- ts_task_keyled + 02000000H XDATA --- ts_Urec + 0200000EH XDATA --- ts_Urecbuf + 02000115H XDATA --- ts_Usend + 02000092H XDATA --- ts_Usendbuf + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 20 + + + 02000244H XDATA --- ts_weight_out + 02000206H XDATA --- ts_weight_SPara + 02000258H XDATA --- ts_wpoint_out + 02000319H XDATA --- tst_v + 02000216H XDATA --- tst_weight +*SFR* 000000B0H.1 DATA BIT TXD + 01003738H CONST --- ul2fun2 + 0100372EH CONST --- us2fun2 +*SFR* 000000FCH DATA BYTE USBADR +*SFR* 000000DCH DATA BYTE USBCLK +*SFR* 000000F4H DATA BYTE USBCON +*SFR* 000000ECH DATA BYTE USBDAT +*SFR* 000000C1H DATA BYTE WDT_CONTR +*SFR* 000000ABH DATA BYTE WKTCH +*SFR* 000000AAH DATA BYTE WKTCL +*SFR* 000000B0H.6 DATA BIT WR + + + +SYMBOL TABLE OF MODULE: ..\out\stcweight (APP_WEIGHT) + + VALUE REP CLASS TYPE SYMBOL NAME + ==================================================== + --- MODULE --- --- APP_WEIGHT + 0200026CH PUBLIC XDATA --- ts_kgx10zero_out + 02000258H PUBLIC XDATA --- ts_wpoint_out + 02000244H PUBLIC XDATA --- ts_weight_out + 02000216H PUBLIC XDATA --- tst_weight + 02000206H PUBLIC XDATA --- ts_weight_SPara + 01002AC4H PUBLIC CODE --- L4_kgx10zero_out + 010029B7H PUBLIC CODE --- L4_WPoint_out + 01002553H PUBLIC CODE --- L4_weight_out + 010022F0H PUBLIC CODE --- L4_weight_print + 01001532H PUBLIC CODE --- _L3_weight_ONdebug + 01001B69H PUBLIC CODE --- L3_task_weight_cal + 01000E3DH PUBLIC CODE --- _L3_task_weight_handler + 0100000EH PUBLIC CODE --- L3_task_weight_init + 01003507H PUBLIC CODE --- _L2_task_weight_init + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 21 + + + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 22 + + + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 23 + + + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 01003507H BLOCK CODE --- LVL=0 + 02000511H SYMBOL XDATA BYTE openclose + 01003507H LINE CODE --- #72 + 0100350CH LINE CODE --- #73 + 0100350CH LINE CODE --- #74 + 01003514H LINE CODE --- #75 + 01003514H LINE CODE --- #76 + 01003519H LINE CODE --- #77 + 0100351EH LINE CODE --- #78 + 01003523H LINE CODE --- #79 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 24 + + + 01003528H LINE CODE --- #80 + 0100352DH LINE CODE --- #82 + 0100352EH LINE CODE --- #83 + 0100352EH LINE CODE --- #84 + 0100353AH LINE CODE --- #85 + 0100353AH LINE CODE --- #104 + --- BLOCKEND --- --- LVL=0 + + 0100000EH BLOCK CODE --- LVL=0 + 0100000EH LINE CODE --- #106 + 0100000EH LINE CODE --- #107 + 0100000EH LINE CODE --- #109 + 01000017H LINE CODE --- #110 + 0100001DH LINE CODE --- #111 + 01000022H LINE CODE --- #114 + --- BLOCKEND --- --- LVL=0 + + 01000E3DH BLOCK CODE --- LVL=0 + 020004C0H SYMBOL XDATA --- s + 01000E3DH LINE CODE --- #118 + 01000E43H LINE CODE --- #119 + 01000E43H LINE CODE --- #120 + 01000E4CH LINE CODE --- #122 + 01000E55H LINE CODE --- #124 + 01000E5EH LINE CODE --- #126 + 01000E67H LINE CODE --- #128 + 01000E9AH LINE CODE --- #129 + 01000E9FH LINE CODE --- #140 + 01000EAFH LINE CODE --- #141 + 01000ED2H LINE CODE --- #142 + 01000EE0H LINE CODE --- #144 + 01000EF1H LINE CODE --- #145 + 01000EF2H LINE CODE --- #146 + 01000EFFH LINE CODE --- #147 + 01000EFFH LINE CODE --- #148 + 01000F04H LINE CODE --- #149 + 01000F09H LINE CODE --- #150 + 01000F0EH LINE CODE --- #151 + 01000F13H LINE CODE --- #152 + 01000F24H LINE CODE --- #154 + 01000F35H LINE CODE --- #155 + 01000F35H LINE CODE --- #156 + 01000F36H LINE CODE --- #157 + 01000F4CH LINE CODE --- #158 + 01000F5CH LINE CODE --- #163 + 01000F6CH LINE CODE --- #164 + 01000F7CH LINE CODE --- #165 + 01000F8CH LINE CODE --- #166 + 01000F9CH LINE CODE --- #168 + 01000FADH LINE CODE --- #169 + 01000FAEH LINE CODE --- #170 + 01000FAEH LINE CODE --- #171 + 01000FBFH LINE CODE --- #172 + 01000FBFH LINE CODE --- #174 + 01000FC0H LINE CODE --- #178 + 01000FD1H LINE CODE --- #179 + 01000FEBH LINE CODE --- #180 + 01001005H LINE CODE --- #181 + 0100101FH LINE CODE --- #183 + 01001030H LINE CODE --- #185 + 01001041H LINE CODE --- #186 + 01001042H LINE CODE --- #188 + 0100104EH LINE CODE --- #190 + 01001051H LINE CODE --- #192 + 01001062H LINE CODE --- #193 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 25 + + + 01001063H LINE CODE --- #194 + 0100107AH LINE CODE --- #195 + 0100107AH LINE CODE --- #196 + 010010B7H LINE CODE --- #197 + 010010B9H LINE CODE --- #198 + 010010B9H LINE CODE --- #199 + 010010CCH LINE CODE --- #200 + 010010CCH LINE CODE --- #206 + 0100111FH LINE CODE --- #208 + 01001120H LINE CODE --- #211 + 01001131H LINE CODE --- #212 + 010011CCH LINE CODE --- #213 + --- BLOCKEND --- --- LVL=0 + + 01001B69H BLOCK CODE --- LVL=0 + 01001B69H LINE CODE --- #216 + 01001B69H LINE CODE --- #217 + 01001B69H LINE CODE --- #218 + 01001B83H LINE CODE --- #219 + 01001B83H LINE CODE --- #220 + 01001B9AH LINE CODE --- #221 + 01001B9AH LINE CODE --- #222 + 01001BABH LINE CODE --- #223 + 01001BABH LINE CODE --- #225 + 01001BC9H LINE CODE --- #226 + 01001BE9H LINE CODE --- #227 + 01001C12H LINE CODE --- #228 + 01001C27H LINE CODE --- #230 + 01001C2AH LINE CODE --- #231 + 01001C2AH LINE CODE --- #232 + 01001C48H LINE CODE --- #233 + 01001C68H LINE CODE --- #234 + 01001C91H LINE CODE --- #235 + 01001CA6H LINE CODE --- #236 + 01001CC0H LINE CODE --- #238 + 01001CC0H LINE CODE --- #239 + 01001CCEH LINE CODE --- #240 + --- BLOCKEND --- --- LVL=0 + + 01001532H BLOCK CODE --- LVL=0 + 02000512H SYMBOL XDATA BYTE filter + 01001532H LINE CODE --- #357 + 01001537H LINE CODE --- #358 + 01001537H LINE CODE --- #362 + 0100154DH LINE CODE --- #363 + 0100154DH LINE CODE --- #365 + 01001574H LINE CODE --- #366 + 01001574H LINE CODE --- #367 + 01001574H LINE CODE --- #369 + 0100157FH LINE CODE --- #370 + 01001582H LINE CODE --- #371 + 0100158DH LINE CODE --- #372 + 0100158EH LINE CODE --- #374 + 0100158EH LINE CODE --- #390 + 010015A7H LINE CODE --- #391 + 010015A7H LINE CODE --- #392 + 010015F8H LINE CODE --- #393 + 01001621H LINE CODE --- #398 + 0100162CH LINE CODE --- #399 + 0100162FH LINE CODE --- #400 + 0100163AH LINE CODE --- #403 + 0100163DH LINE CODE --- #404 + 01001650H LINE CODE --- #405 + 01001650H LINE CODE --- #407 + 01001651H LINE CODE --- #409 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 26 + + + 01001651H LINE CODE --- #413 + 01001661H LINE CODE --- #416 + 0100166CH LINE CODE --- #417 + 0100166FH LINE CODE --- #418 + 0100167AH LINE CODE --- #420 + 0100167BH LINE CODE --- #422 + 0100167BH LINE CODE --- #424 + 0100168EH LINE CODE --- #425 + 0100168EH LINE CODE --- #428 + 0100172BH LINE CODE --- #429 + 01001734H LINE CODE --- #430 + 01001735H LINE CODE --- #432 + 01001735H LINE CODE --- #434 + 01001743H LINE CODE --- #435 + 01001746H LINE CODE --- #436 + 01001747H LINE CODE --- #438 + 01001747H LINE CODE --- #439 + 01001755H LINE CODE --- #440 + 01001755H LINE CODE --- #441 + 01001755H LINE CODE --- #442 + 01001755H LINE CODE --- #443 + --- BLOCKEND --- --- LVL=0 + + 010022F0H BLOCK CODE --- LVL=0 + 010022F0H LINE CODE --- #447 + 010022F0H LINE CODE --- #448 + 010022F0H LINE CODE --- #449 + 01002304H LINE CODE --- #450 + 01002318H LINE CODE --- #451 + 0100232CH LINE CODE --- #452 + 01002340H LINE CODE --- #467 + 0100234EH LINE CODE --- #468 + 01002364H LINE CODE --- #469 + 01002392H LINE CODE --- #470 + 010023C0H LINE CODE --- #471 + --- BLOCKEND --- --- LVL=0 + + 01002553H BLOCK CODE --- LVL=0 + 01002553H BLOCK CODE NEAR LAB LVL=1 + 020004E7H SYMBOL XDATA BYTE dnum + 020004E8H SYMBOL XDATA BYTE total + --- BLOCKEND --- --- LVL=1 + 01002553H LINE CODE --- #503 + 01002553H LINE CODE --- #504 + 01002553H LINE CODE --- #505 + 0100255FH LINE CODE --- #506 + 01002565H LINE CODE --- #507 + 0100256BH LINE CODE --- #508 + 01002571H LINE CODE --- #509 + 01002581H LINE CODE --- #510 + 0100258FH LINE CODE --- #511 + 0100259FH LINE CODE --- #512 + 010025AFH LINE CODE --- #513 + 010025BFH LINE CODE --- #514 + 010025CFH LINE CODE --- #515 + 010025DFH LINE CODE --- #516 + 010025EDH LINE CODE --- #517 + 010025F3H LINE CODE --- #518 + 0100260DH LINE CODE --- #519 + --- BLOCKEND --- --- LVL=0 + + 010029B7H BLOCK CODE --- LVL=0 + 010029B7H BLOCK CODE NEAR LAB LVL=1 + 020004E9H SYMBOL XDATA BYTE dnum + 020004EAH SYMBOL XDATA BYTE total + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 27 + + + --- BLOCKEND --- --- LVL=1 + 010029B7H LINE CODE --- #522 + 010029B7H LINE CODE --- #523 + 010029B7H LINE CODE --- #524 + 010029C3H LINE CODE --- #525 + 010029C9H LINE CODE --- #526 + 010029CFH LINE CODE --- #527 + 010029D5H LINE CODE --- #528 + 010029E5H LINE CODE --- #529 + 010029F3H LINE CODE --- #530 + 01002A1DH LINE CODE --- #531 + 01002A23H LINE CODE --- #532 + 01002A3DH LINE CODE --- #533 + --- BLOCKEND --- --- LVL=0 + + 01002AC4H BLOCK CODE --- LVL=0 + 01002AC4H BLOCK CODE NEAR LAB LVL=1 + 020004EBH SYMBOL XDATA BYTE dnum + 020004ECH SYMBOL XDATA BYTE total + --- BLOCKEND --- --- LVL=1 + 01002AC4H LINE CODE --- #537 + 01002AC4H LINE CODE --- #538 + 01002AC4H LINE CODE --- #539 + 01002AD0H LINE CODE --- #540 + 01002AD6H LINE CODE --- #541 + 01002ADCH LINE CODE --- #542 + 01002AE2H LINE CODE --- #543 + 01002AF2H LINE CODE --- #544 + 01002B00H LINE CODE --- #545 + 01002B15H LINE CODE --- #546 + 01002B26H LINE CODE --- #547 + 01002B2CH LINE CODE --- #548 + 01002B46H LINE CODE --- #549 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- MAIN + 01002804H PUBLIC CODE --- main + 01002E1BH PUBLIC CODE --- L0_main_init + 010034D1H PUBLIC CODE --- L0_main_initled + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 28 + + + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 29 + + + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 30 + + + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + 01003224H SYMBOL CODE --- _?ix1000 + + 010034D1H BLOCK CODE --- LVL=0 + 010034D1H LINE CODE --- #57 + 010034D1H LINE CODE --- #58 + 010034D1H LINE CODE --- #59 + 010034DCH LINE CODE --- #61 + 010034ECH LINE CODE --- #62 + 010034ECH LINE CODE --- #63 + 010034F7H LINE CODE --- #64 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 31 + + + 010034FEH LINE CODE --- #65 + 01003506H LINE CODE --- #66 + --- BLOCKEND --- --- LVL=0 + + 01002E1BH BLOCK CODE --- LVL=0 + 01002E1BH BLOCK CODE NEAR LAB LVL=1 + 020004EDH SYMBOL XDATA INT r + --- BLOCKEND --- --- LVL=1 + 01002E1BH LINE CODE --- #68 + 01002E1BH LINE CODE --- #69 + 01002E1BH LINE CODE --- #70 + 01002E23H LINE CODE --- #71 + 01002E2AH LINE CODE --- #72 + 01002E2DH LINE CODE --- #73 + 01002E32H LINE CODE --- #75 + 01002E35H LINE CODE --- #76 + 01002E38H LINE CODE --- #78 + 01002E3BH LINE CODE --- #79 + 01002E3EH LINE CODE --- #80 + 01002E41H LINE CODE --- #81 + 01002E43H LINE CODE --- #83 + 01002E5BH LINE CODE --- #85 + 01002E68H LINE CODE --- #86 + 01002E86H LINE CODE --- #87 + --- BLOCKEND --- --- LVL=0 + + 01002804H BLOCK CODE --- LVL=0 + 01002804H BLOCK CODE NEAR LAB LVL=1 + 0200034BH SYMBOL XDATA WORD a + 0200034DH SYMBOL XDATA --- d + --- BLOCKEND --- --- LVL=1 + 01002804H LINE CODE --- #92 + 01002804H LINE CODE --- #93 + 01002804H LINE CODE --- #94 + 0100280CH LINE CODE --- #95 + 01002831H LINE CODE --- #97 + 01002834H LINE CODE --- #98 + 01002837H LINE CODE --- #100 + 01002853H LINE CODE --- #102 + 01002861H LINE CODE --- #104 + 01002861H LINE CODE --- #105 + 01002861H LINE CODE --- #106 + 0100286AH LINE CODE --- #107 + 0100286AH LINE CODE --- #108 + 0100286FH LINE CODE --- #109 + 01002876H LINE CODE --- #112 + 01002881H LINE CODE --- #113 + 01002881H LINE CODE --- #121 + 01002887H LINE CODE --- #122 + 01002887H LINE CODE --- #123 + 0100288CH LINE CODE --- #124 + 0100288CH LINE CODE --- #125 + 01002895H LINE CODE --- #126 + 01002897H LINE CODE --- #127 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- APP_CONFIG + 02000276H PUBLIC XDATA --- S + 01002490H PUBLIC CODE --- L3_S_init + 010023C1H PUBLIC CODE --- L3_S_2_R + 01002898H PUBLIC CODE --- L3_R_2_S + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 32 + + + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 33 + + + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 34 + + + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 35 + + + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 01002898H BLOCK CODE --- LVL=0 + 01002898H LINE CODE --- #12 + 01002898H LINE CODE --- #13 + 01002898H LINE CODE --- #14 + 010028A8H LINE CODE --- #15 + 010028A8H LINE CODE --- #16 + 010028F6H LINE CODE --- #17 + 010028FEH LINE CODE --- #19 + 01002928H LINE CODE --- #20 + --- BLOCKEND --- --- LVL=0 + + 010023C1H BLOCK CODE --- LVL=0 + 010023C1H LINE CODE --- #21 + 010023C1H LINE CODE --- #22 + 010023C1H LINE CODE --- #23 + 010023D4H LINE CODE --- #24 + 010023D4H LINE CODE --- #25 + 01002422H LINE CODE --- #26 + 01002450H LINE CODE --- #27 + 01002459H LINE CODE --- #29 + 01002483H LINE CODE --- #30 + 0100248FH LINE CODE --- #31 + --- BLOCKEND --- --- LVL=0 + + 01002490H BLOCK CODE --- LVL=0 + 01002490H BLOCK CODE NEAR LAB LVL=1 + 02000513H SYMBOL XDATA BYTE ovt + --- BLOCKEND --- --- LVL=1 + 01002490H LINE CODE --- #38 + 01002490H LINE CODE --- #39 + 01002490H LINE CODE --- #40 + 01002495H LINE CODE --- #63 + 01002495H LINE CODE --- #64 + 010024A8H LINE CODE --- #65 + 010024C5H LINE CODE --- #66 + 010024D9H LINE CODE --- #68 + 010024E9H LINE CODE --- #69 + 010024E9H LINE CODE --- #70 + 010024ECH LINE CODE --- #72 + 010024FAH LINE CODE --- #73 + 01002500H LINE CODE --- #74 + 01002502H LINE CODE --- #75 + 01002502H LINE CODE --- #76 + 0100250CH LINE CODE --- #77 + 0100252AH LINE CODE --- #78 + 0100252DH LINE CODE --- #79 + 01002540H LINE CODE --- #80 + 01002540H LINE CODE --- #81 + 01002550H LINE CODE --- #82 + 01002552H LINE CODE --- #83 + --- BLOCKEND --- --- LVL=0 + 020004C3H SYMBOL XDATA --- t + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 36 + + + + --- MODULE --- --- ASP_SCHAIN + 0200014EH PUBLIC XDATA --- ts_adc_samples + 0200012EH PUBLIC XDATA --- TS_adc_SPara + 01000783H PUBLIC CODE --- _L2_task_adc_sample + 01002D3CH PUBLIC CODE --- _L3_adc_get_offset + 01002BCAH PUBLIC CODE --- _L3_adc_out_offset + 0100334DH PUBLIC CODE --- _L3_out_tran + 01002C47H PUBLIC CODE --- _L2_task_adc_init + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 37 + + + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 38 + + + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 39 + + + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 01002C47H BLOCK CODE --- LVL=0 + 02000514H SYMBOL XDATA BYTE ch + 01002C47H LINE CODE --- #89 + 01002C4CH LINE CODE --- #90 + 01002C4CH LINE CODE --- #92 + 01002C67H LINE CODE --- #93 + 01002C7DH LINE CODE --- #96 + 01002CABH LINE CODE --- #97 + 01002CC1H LINE CODE --- #100 + --- BLOCKEND --- --- LVL=0 + + 0100334DH BLOCK CODE --- LVL=0 + 02000463H SYMBOL XDATA DWORD rdata + 01003353H BLOCK CODE NEAR LAB LVL=1 + 02000467H SYMBOL XDATA INT t16 + --- BLOCKEND --- --- LVL=1 + 0100334DH LINE CODE --- #127 + 01003353H LINE CODE --- #128 + 01003353H LINE CODE --- #131 + 01003364H LINE CODE --- #132 + 01003372H LINE CODE --- #135 + 01003389H LINE CODE --- #139 + 01003391H LINE CODE --- #140 + --- BLOCKEND --- --- LVL=0 + + 01002BCAH BLOCK CODE --- LVL=0 + 02000469H SYMBOL XDATA WORD offset + 0200046BH SYMBOL XDATA WORD t16 + 01002BDAH BLOCK CODE NEAR LAB LVL=1 + 0200046DH SYMBOL XDATA WORD out + --- BLOCKEND --- --- LVL=1 + 01002BCAH LINE CODE --- #142 + 01002BDAH LINE CODE --- #143 + 01002BDAH LINE CODE --- #147 + 01002BE6H LINE CODE --- #148 + 01002BE6H LINE CODE --- #149 + 01002BFFH LINE CODE --- #151 + 01002C1EH LINE CODE --- #153 + 01002C20H LINE CODE --- #154 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 40 + + + 01002C20H LINE CODE --- #155 + 01002C3EH LINE CODE --- #156 + 01002C3EH LINE CODE --- #158 + 01002C46H LINE CODE --- #159 + --- BLOCKEND --- --- LVL=0 + + 01002D3CH BLOCK CODE --- LVL=0 + 0200046FH SYMBOL XDATA WORD wantline + 02000471H SYMBOL XDATA WORD adcv + 01002D4CH BLOCK CODE NEAR LAB LVL=1 + 02000473H SYMBOL XDATA WORD out + --- BLOCKEND --- --- LVL=1 + 01002D3CH LINE CODE --- #186 + 01002D4CH LINE CODE --- #187 + 01002D4CH LINE CODE --- #191 + 01002D58H LINE CODE --- #192 + 01002D58H LINE CODE --- #193 + 01002D71H LINE CODE --- #194 + 01002D82H LINE CODE --- #195 + 01002D84H LINE CODE --- #196 + 01002D84H LINE CODE --- #197 + 01002DA3H LINE CODE --- #198 + 01002DA3H LINE CODE --- #199 + 01002DABH LINE CODE --- #200 + --- BLOCKEND --- --- LVL=0 + + 01000783H BLOCK CODE --- LVL=0 + 020004C6H SYMBOL XDATA --- s + 01000783H LINE CODE --- #264 + 01000789H LINE CODE --- #265 + 01000789H LINE CODE --- #266 + 010007BFH LINE CODE --- #268 + 010007DFH LINE CODE --- #276 + 0100081CH LINE CODE --- #277 + 01000821H LINE CODE --- #279 + 01000832H LINE CODE --- #282 + 01000885H LINE CODE --- #284 + 01000886H LINE CODE --- #285 + 010008A8H LINE CODE --- #286 + 010008A8H LINE CODE --- #288 + 010008D2H LINE CODE --- #289 + 010008E3H LINE CODE --- #290 + 010008E3H LINE CODE --- #291 + 010008E4H LINE CODE --- #292 + 01000908H LINE CODE --- #293 + 0100094AH LINE CODE --- #294 + 0100095BH LINE CODE --- #295 + 0100095CH LINE CODE --- #296 + 01000980H LINE CODE --- #297 + 010009A4H LINE CODE --- #298 + 010009C8H LINE CODE --- #300 + 010009D9H LINE CODE --- #301 + 010009FDH LINE CODE --- #305 + 01000A10H LINE CODE --- #306 + 01000A10H LINE CODE --- #307 + 01000A21H LINE CODE --- #308 + 01000A22H LINE CODE --- #309 + 01000A22H LINE CODE --- #310 + 01000A33H LINE CODE --- #311 + 01000A33H LINE CODE --- #312 + 01000A34H LINE CODE --- #315 + 01000A4AH LINE CODE --- #316 + 01000A4AH LINE CODE --- #318 + 01000A51H LINE CODE --- #319 + 01000A62H LINE CODE --- #320 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 41 + + + 01000A73H LINE CODE --- #321 + 01000A74H LINE CODE --- #322 + 01000A74H LINE CODE --- #326 + 01000ABFH LINE CODE --- #329 + 01000ACDH LINE CODE --- #332 + 01000B6AH LINE CODE --- #333 + 01000C07H LINE CODE --- #335 + 01000C2BH LINE CODE --- #336 + 01000C6BH LINE CODE --- #342 + 01000C7BH LINE CODE --- #344 + 01000C8CH LINE CODE --- #345 + 01000C8CH LINE CODE --- #346 + 01000C8DH LINE CODE --- #348 + 01000CBFH LINE CODE --- #349 + 01000D0BH LINE CODE --- #350 + 01000D4BH LINE CODE --- #352 + 01000D6CH LINE CODE --- #355 + 01000D7DH LINE CODE --- #356 + 01000D7EH LINE CODE --- #359 + 01000D8FH LINE CODE --- #360 + 01000DA0H LINE CODE --- #363 + 01000DA1H LINE CODE --- #378 + 01000E3CH LINE CODE --- #379 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- ASP_LOWPOWER + 01003720H PUBLIC CODE --- L0_uart2_open + 010036EEH PUBLIC CODE --- L0_uart1_open + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 42 + + + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 43 + + + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 44 + + + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 010036EEH BLOCK CODE --- LVL=0 + 010036EEH LINE CODE --- #44 + 010036EEH LINE CODE --- #45 + 010036EEH LINE CODE --- #46 + 010036F1H LINE CODE --- #48 + 010036F3H LINE CODE --- #49 + 010036FEH LINE CODE --- #50 + --- BLOCKEND --- --- LVL=0 + + 01003720H BLOCK CODE --- LVL=0 + 01003720H LINE CODE --- #51 + 01003720H LINE CODE --- #52 + 01003720H LINE CODE --- #55 + 01003722H LINE CODE --- #56 + 0100372DH LINE CODE --- #57 + --- BLOCKEND --- --- LVL=0 + 020004EFH SYMBOL XDATA WORD SetTime + 02000515H SYMBOL XDATA BYTE filter + + --- MODULE --- --- ?C_STARTUP + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 45 + + + 01000000H PUBLIC CODE --- ?C_STARTUP + 000000E0H SYMBOL DATA --- ACC + 000000F0H SYMBOL DATA --- B + 00000083H SYMBOL DATA --- DPH + 00000082H SYMBOL DATA --- DPL + 00000000H SYMBOL NUMBER --- IBPSTACK + 00000100H SYMBOL NUMBER --- IBPSTACKTOP + 00000080H SYMBOL NUMBER --- IDATALEN + 01002767H SYMBOL CODE --- IDATALOOP + 00000000H SYMBOL NUMBER --- PBPSTACK + 00000100H SYMBOL NUMBER --- PBPSTACKTOP + 00000000H SYMBOL NUMBER --- PDATALEN + 00000000H SYMBOL NUMBER --- PDATASTART + 00000000H SYMBOL NUMBER --- PPAGE + 00000000H SYMBOL NUMBER --- PPAGEENABLE + 000000A0H SYMBOL DATA --- PPAGE_SFR + 00000081H SYMBOL DATA --- SP + 01002764H SYMBOL CODE --- STARTUP1 + 00000001H SYMBOL NUMBER --- XBPSTACK + 00000000H SYMBOL NUMBER --- XBPSTACKTOP + 00000320H SYMBOL NUMBER --- XDATALEN + 01002772H SYMBOL CODE --- XDATALOOP + 00000000H SYMBOL NUMBER --- XDATASTART + 01000000H LINE CODE --- #126 + 01002764H LINE CODE --- #133 + 01002766H LINE CODE --- #134 + 01002767H LINE CODE --- #135 + 01002768H LINE CODE --- #136 + 0100276AH LINE CODE --- #140 + 0100276DH LINE CODE --- #141 + 0100276FH LINE CODE --- #143 + 01002771H LINE CODE --- #147 + 01002772H LINE CODE --- #148 + 01002773H LINE CODE --- #149 + 01002774H LINE CODE --- #150 + 01002776H LINE CODE --- #151 + 01002778H LINE CODE --- #176 + 0100277BH LINE CODE --- #177 + 0100277EH LINE CODE --- #185 + 01002781H LINE CODE --- #196 + + --- MODULE --- --- STC_8_DELAY + 01003631H PUBLIC CODE --- Delay1ms + 0100367CH PUBLIC CODE --- _Lc_delay_nop + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 46 + + + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 47 + + + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 48 + + + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 0100367CH BLOCK CODE --- LVL=0 + 020004F1H SYMBOL XDATA BYTE i + 01003681H BLOCK CODE NEAR LAB LVL=1 + 020004F2H SYMBOL XDATA BYTE m + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 49 + + + --- BLOCKEND --- --- LVL=1 + 0100367CH LINE CODE --- #6 + 01003681H LINE CODE --- #7 + 01003681H LINE CODE --- #9 + 01003696H LINE CODE --- #10 + 01003696H LINE CODE --- #11 + 01003697H LINE CODE --- #12 + 0100369FH LINE CODE --- #13 + --- BLOCKEND --- --- LVL=0 + + 01003631H BLOCK CODE --- LVL=0 + 01003631H BLOCK CODE NEAR LAB LVL=1 + 020004F3H SYMBOL XDATA BYTE i + 020004F4H SYMBOL XDATA BYTE j + --- BLOCKEND --- --- LVL=1 + 01003631H LINE CODE --- #78 + 01003631H LINE CODE --- #79 + 01003631H LINE CODE --- #82 + 01003637H LINE CODE --- #83 + 0100363DH LINE CODE --- #85 + 01003643H LINE CODE --- #87 + 01003643H LINE CODE --- #88 + 0100364DH LINE CODE --- #89 + 01003657H LINE CODE --- #90 + --- BLOCKEND --- --- LVL=0 + 02000516H SYMBOL XDATA BYTE i + 020004F5H SYMBOL XDATA BYTE i + 020004F6H SYMBOL XDATA BYTE j + 020004F7H SYMBOL XDATA BYTE i + 020004F8H SYMBOL XDATA BYTE j + + --- MODULE --- --- MSP_UARTN + 02000115H PUBLIC XDATA --- ts_Usend + 02000092H PUBLIC XDATA --- ts_Usendbuf + 0200000EH PUBLIC XDATA --- ts_Urecbuf + 02000000H PUBLIC XDATA --- ts_Urec + 01003780H PUBLIC CONST --- S_send_max + 0200036BH PUBLIC XDATA BYTE ?_L0_uartN_Arrayhex_withoutbuf?BYTE + 01001756H PUBLIC CODE --- _L0_uartN_Arrayhex_withoutbuf + 0100221EH PUBLIC CODE --- _L0_uartN_Array_withoutbuf + 01001E2EH PUBLIC CODE --- _L0_uartN_sbuf + 020003F8H PUBLIC XDATA BYTE ?_L0_uartN_ushexArray?BYTE + 020003F0H PUBLIC XDATA BYTE ?_L0_uartN_uchexArray?BYTE + 01003606H PUBLIC CODE --- _L0_uartN_str + 020003C4H PUBLIC XDATA BYTE ?_L0_uartN_ulhex?BYTE + 01001F36H PUBLIC CODE --- _L0_uartN_ushex + 020003BBH PUBLIC XDATA BYTE ?_L0_uartN_ul?BYTE + 010036A0H PUBLIC CODE --- _L0_uartN_uc + 02000361H PUBLIC XDATA BYTE ?_L0_uartN_Arraylong?BYTE + 020003E8H PUBLIC XDATA BYTE ?_L0_uartN_Array?BYTE + 01001CCFH PUBLIC CODE --- _L0_uartN_Array + 01002F53H PUBLIC CODE --- _L0_uartN_485 + 0100203BH PUBLIC CODE --- _L0_waitFree_uartN + 01003392H PUBLIC CODE --- _L0_uartN_set + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 50 + + + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 51 + + + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 52 + + + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 53 + + + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 01003392H BLOCK CODE --- LVL=0 + 020004F9H SYMBOL XDATA BYTE uartx + 020004FAH SYMBOL XDATA BYTE x + 01003392H LINE CODE --- #82 + 0100339CH LINE CODE --- #83 + 0100339CH LINE CODE --- #84 + 010033B5H LINE CODE --- #85 + 010033B5H LINE CODE --- #86 + 010033B5H LINE CODE --- #87 + 010033BCH LINE CODE --- #88 + 010033BDH LINE CODE --- #89 + 010033BDH LINE CODE --- #90 + 010033C4H LINE CODE --- #91 + 010033C5H LINE CODE --- #92 + 010033C5H LINE CODE --- #93 + 010033CCH LINE CODE --- #94 + 010033CDH LINE CODE --- #95 + 010033CDH LINE CODE --- #96 + 010033D4H LINE CODE --- #97 + 010033D4H LINE CODE --- #98 + 010033D4H LINE CODE --- #99 + 010033D4H LINE CODE --- #100 + --- BLOCKEND --- --- LVL=0 + + 0100203BH BLOCK CODE --- LVL=0 + 02000517H SYMBOL XDATA BYTE uartx + 0100203BH LINE CODE --- #120 + 01002040H LINE CODE --- #121 + 01002040H LINE CODE --- #122 + 0100205AH LINE CODE --- #123 + 01002079H LINE CODE --- #124 + 01002079H LINE CODE --- #127 + 010020B0H LINE CODE --- #128 + 010020D4H LINE CODE --- #129 + 010020D4H LINE CODE --- #130 + 01002104H LINE CODE --- #131 + 0100211AH LINE CODE --- #134 + 01002132H LINE CODE --- #135 + 01002133H LINE CODE --- #136 + 01002133H LINE CODE --- #138 + 01002136H LINE CODE --- #139 + --- BLOCKEND --- --- LVL=0 + + 01002F53H BLOCK CODE --- LVL=0 + 020004FBH SYMBOL XDATA BYTE uartx + 020004FCH SYMBOL XDATA BYTE x + 01002F53H LINE CODE --- #145 + 01002F5DH LINE CODE --- #146 + 01002F5DH LINE CODE --- #147 + 01002F65H LINE CODE --- #148 + 01002F65H LINE CODE --- #149 + 01002F7EH LINE CODE --- #150 + 01002F7EH LINE CODE --- #151 + 01002F7EH LINE CODE --- #152 + 01002F89H LINE CODE --- #153 + 01002F8AH LINE CODE --- #154 + 01002F8AH LINE CODE --- #155 + 01002F8BH LINE CODE --- #156 + 01002F8BH LINE CODE --- #157 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 54 + + + 01002F8CH LINE CODE --- #158 + 01002F8CH LINE CODE --- #160 + 01002F8DH LINE CODE --- #161 + 01002F8EH LINE CODE --- #162 + 01002F8EH LINE CODE --- #163 + 01002F8FH LINE CODE --- #164 + 01002F8FH LINE CODE --- #165 + 01002FA8H LINE CODE --- #166 + 01002FA8H LINE CODE --- #167 + 01002FA8H LINE CODE --- #168 + 01002FB3H LINE CODE --- #169 + 01002FB3H LINE CODE --- #170 + 01002FB3H LINE CODE --- #171 + 01002FB3H LINE CODE --- #172 + 01002FB3H LINE CODE --- #173 + 01002FB3H LINE CODE --- #174 + 01002FB3H LINE CODE --- #176 + 01002FB3H LINE CODE --- #177 + 01002FB3H LINE CODE --- #178 + 01002FB3H LINE CODE --- #179 + 01002FB3H LINE CODE --- #181 + --- BLOCKEND --- --- LVL=0 + + 01001CCFH BLOCK CODE --- LVL=0 + 020003E8H SYMBOL XDATA BYTE uartx + 020003E9H SYMBOL XDATA --- buf + 020003ECH SYMBOL XDATA WORD len + 01001CDAH BLOCK CODE NEAR LAB LVL=1 + 020003EEH SYMBOL XDATA WORD i + --- BLOCKEND --- --- LVL=1 + 01001CCFH LINE CODE --- #183 + 01001CDAH LINE CODE --- #184 + 01001CDAH LINE CODE --- #187 + 01001CE2H LINE CODE --- #189 + 01001CECH LINE CODE --- #190 + 01001D02H LINE CODE --- #191 + 01001D1CH LINE CODE --- #192 + 01001D35H LINE CODE --- #193 + 01001D5CH LINE CODE --- #194 + 01001D5CH LINE CODE --- #195 + 01001D84H LINE CODE --- #196 + 01001D84H LINE CODE --- #197 + 01001DA4H LINE CODE --- #199 + 01001DC3H LINE CODE --- #200 + 01001DC3H LINE CODE --- #201 + 01001DFFH LINE CODE --- #202 + 01001E0BH LINE CODE --- #203 + 01001E2DH LINE CODE --- #204 + --- BLOCKEND --- --- LVL=0 + 02000361H SYMBOL XDATA BYTE uartx + 02000362H SYMBOL XDATA --- buf + 02000365H SYMBOL XDATA WORD usStart + 02000367H SYMBOL XDATA WORD usEnd + 02000369H SYMBOL XDATA WORD t + + 010036A0H BLOCK CODE --- LVL=0 + 020004FDH SYMBOL XDATA BYTE uartx + 020004FEH SYMBOL XDATA BYTE ww + 010036A0H LINE CODE --- #217 + 010036AAH LINE CODE --- #218 + 010036AAH LINE CODE --- #219 + 010036C1H LINE CODE --- #220 + --- BLOCKEND --- --- LVL=0 + 02000487H SYMBOL XDATA BYTE uartx + 02000488H SYMBOL XDATA WORD ww + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 55 + + + 0200048AH SYMBOL XDATA --- uStemp + 020003BBH SYMBOL XDATA BYTE uartx + 020003BCH SYMBOL XDATA DWORD ww + 020003C0H SYMBOL XDATA --- uStemp + 02000518H SYMBOL XDATA BYTE uartx + 020004FFH SYMBOL XDATA BYTE uartx + 02000500H SYMBOL XDATA BYTE ww + + 01001F36H BLOCK CODE --- LVL=0 + 0200048CH SYMBOL XDATA BYTE uartx + 0200048DH SYMBOL XDATA WORD ww + 01001F43H BLOCK CODE NEAR LAB LVL=1 + 0200048FH SYMBOL XDATA --- k + --- BLOCKEND --- --- LVL=1 + 01001F36H LINE CODE --- #259 + 01001F43H LINE CODE --- #260 + 01001F43H LINE CODE --- #262 + 01001F4BH LINE CODE --- #263 + 01001F5BH LINE CODE --- #264 + 01001F89H LINE CODE --- #265 + 01001FB6H LINE CODE --- #266 + 01001FE4H LINE CODE --- #267 + 01002011H LINE CODE --- #268 + 0100203AH LINE CODE --- #269 + --- BLOCKEND --- --- LVL=0 + 020003C4H SYMBOL XDATA BYTE uartx + 020003C5H SYMBOL XDATA DWORD ww + 020003C9H SYMBOL XDATA --- k + + 01003606H BLOCK CODE --- LVL=0 + 020004A0H SYMBOL XDATA BYTE uartx + 020004A1H SYMBOL XDATA --- str + 01003606H LINE CODE --- #287 + 01003611H LINE CODE --- #288 + 01003611H LINE CODE --- #289 + 01003630H LINE CODE --- #290 + --- BLOCKEND --- --- LVL=0 + 020003F0H SYMBOL XDATA BYTE uartx + 020003F1H SYMBOL XDATA --- buf + 020003F4H SYMBOL XDATA WORD n + 020003F6H SYMBOL XDATA INT i + 020003F8H SYMBOL XDATA BYTE uartx + 020003F9H SYMBOL XDATA --- buf + 020003FCH SYMBOL XDATA WORD n + 020003FEH SYMBOL XDATA INT i + + 01001E2EH BLOCK CODE --- LVL=0 + 02000519H SYMBOL XDATA BYTE uartx + 01001E2EH LINE CODE --- #320 + 01001E33H LINE CODE --- #321 + 01001E33H LINE CODE --- #322 + 01001E4BH LINE CODE --- #323 + 01001E63H LINE CODE --- #324 + 01001E79H LINE CODE --- #325 + 01001EA9H LINE CODE --- #326 + 01001EC2H LINE CODE --- #327 + 01001EC2H LINE CODE --- #328 + 01001EC2H LINE CODE --- #329 + 01001EDEH LINE CODE --- #330 + 01001EDFH LINE CODE --- #331 + 01001EDFH LINE CODE --- #332 + 01001EFBH LINE CODE --- #333 + 01001EFCH LINE CODE --- #334 + 01001EFCH LINE CODE --- #335 + 01001F18H LINE CODE --- #336 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 56 + + + 01001F19H LINE CODE --- #337 + 01001F19H LINE CODE --- #338 + 01001F35H LINE CODE --- #339 + 01001F35H LINE CODE --- #340 + 01001F35H LINE CODE --- #341 + 01001F35H LINE CODE --- #342 + --- BLOCKEND --- --- LVL=0 + + 0100221EH BLOCK CODE --- LVL=0 + 020004C9H SYMBOL XDATA BYTE uartx + 020004CAH SYMBOL XDATA WORD len + 0100221EH LINE CODE --- #345 + 0100222BH LINE CODE --- #346 + 0100222BH LINE CODE --- #348 + 01002233H LINE CODE --- #350 + 0100223DH LINE CODE --- #351 + 01002245H LINE CODE --- #353 + 0100226CH LINE CODE --- #354 + 0100226CH LINE CODE --- #355 + 01002294H LINE CODE --- #356 + 01002294H LINE CODE --- #357 + 010022B4H LINE CODE --- #358 + 010022CDH LINE CODE --- #359 + 010022EFH LINE CODE --- #360 + --- BLOCKEND --- --- LVL=0 + + 01001756H BLOCK CODE --- LVL=0 + 0200036BH SYMBOL XDATA BYTE uartx + 0200036CH SYMBOL XDATA --- buf + 0200036FH SYMBOL XDATA WORD len + 01001761H BLOCK CODE NEAR LAB LVL=1 + 02000371H SYMBOL XDATA WORD i + 02000373H SYMBOL XDATA WORD t + --- BLOCKEND --- --- LVL=1 + 01001756H LINE CODE --- #363 + 01001761H LINE CODE --- #364 + 01001761H LINE CODE --- #367 + 01001769H LINE CODE --- #368 + 01001771H LINE CODE --- #369 + 0100179FH LINE CODE --- #370 + 0100179FH LINE CODE --- #371 + 010017CEH LINE CODE --- #372 + 010017CEH LINE CODE --- #373 + 010017F0H LINE CODE --- #374 + 010017F0H LINE CODE --- #376 + 01001807H LINE CODE --- #377 + 01001857H LINE CODE --- #378 + 01001861H LINE CODE --- #379 + 010018B0H LINE CODE --- #380 + 010018BAH LINE CODE --- #381 + 010018E1H LINE CODE --- #382 + 010018EBH LINE CODE --- #384 + 010018F8H LINE CODE --- #386 + 0100191FH LINE CODE --- #387 + 01001929H LINE CODE --- #388 + 0100194FH LINE CODE --- #389 + 01001967H LINE CODE --- #391 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- MSP_TIME2 + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 57 + + + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 58 + + + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 59 + + + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 60 + + + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + --- MODULE --- --- MSP_UART1 + 0100260EH PUBLIC CODE --- INTERRUPT_UART + 01003306H PUBLIC CODE --- L2_uart1_overtime_callback + 01003277H PUBLIC CODE --- L0_uart1_buf_init + 010036C2H PUBLIC CODE --- L0_uart1_init + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 61 + + + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 62 + + + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 63 + + + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 010036C2H BLOCK CODE --- LVL=0 + 010036C2H LINE CODE --- #51 + 010036C2H LINE CODE --- #52 + 010036C2H LINE CODE --- #53 + 010036C5H LINE CODE --- #54 + 010036C8H LINE CODE --- #55 + 010036CBH LINE CODE --- #56 + 010036CEH LINE CODE --- #57 + 010036D1H LINE CODE --- #58 + 010036D4H LINE CODE --- #59 + 010036D6H LINE CODE --- #60 + 010036D8H LINE CODE --- #61 + --- BLOCKEND --- --- LVL=0 + + 01003277H BLOCK CODE --- LVL=0 + 01003277H LINE CODE --- #147 + 01003277H LINE CODE --- #148 + 01003277H LINE CODE --- #149 + 0100327CH LINE CODE --- #150 + 01003296H LINE CODE --- #152 + 0100329FH LINE CODE --- #153 + 010032A8H LINE CODE --- #155 + 010032ABH LINE CODE --- #156 + 010032ADH LINE CODE --- #157 + 010032AFH LINE CODE --- #158 + 010032B1H LINE CODE --- #159 + 010032B3H LINE CODE --- #162 + 010032BEH LINE CODE --- #164 + --- BLOCKEND --- --- LVL=0 + + 01003306H BLOCK CODE --- LVL=0 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 64 + + + 01003306H LINE CODE --- #183 + 01003306H LINE CODE --- #184 + 01003306H LINE CODE --- #185 + 0100330EH LINE CODE --- #186 + 0100330EH LINE CODE --- #187 + 01003319H LINE CODE --- #188 + 01003319H LINE CODE --- #189 + 0100331FH LINE CODE --- #190 + 01003324H LINE CODE --- #193 + 0100332FH LINE CODE --- #194 + 01003334H LINE CODE --- #195 + 0100333AH LINE CODE --- #196 + 01003346H LINE CODE --- #209 + 01003346H LINE CODE --- #210 + 01003346H LINE CODE --- #211 + 0100334CH LINE CODE --- #212 + 0100334CH LINE CODE --- #213 + --- BLOCKEND --- --- LVL=0 + + 0100260EH BLOCK CODE --- LVL=0 + 0100260EH LINE CODE --- #219 + 0100262BH LINE CODE --- #221 + 0100262EH LINE CODE --- #222 + 0100262EH LINE CODE --- #223 + 01002630H LINE CODE --- #227 + 01002636H LINE CODE --- #228 + 0100263BH LINE CODE --- #229 + 01002640H LINE CODE --- #232 + 01002645H LINE CODE --- #234 + 01002645H LINE CODE --- #235 + 01002648H LINE CODE --- #236 + 01002648H LINE CODE --- #237 + 0100264AH LINE CODE --- #238 + 01002662H LINE CODE --- #239 + 01002662H LINE CODE --- #241 + 0100267AH LINE CODE --- #242 + 01002684H LINE CODE --- #243 + 01002686H LINE CODE --- #245 + 01002686H LINE CODE --- #246 + 0100268CH LINE CODE --- #247 + 01002694H LINE CODE --- #248 + 0100269CH LINE CODE --- #250 + 010026A7H LINE CODE --- #253 + 010026A7H LINE CODE --- #254 + 010026A7H LINE CODE --- #256 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- MSP_IICMX + 02000400H PUBLIC XDATA --- ts_iicm + 02000447H PUBLIC XDATA BYTE ?_L2_IICMx_ReadReg?BYTE + 020004A8H PUBLIC XDATA BYTE ?_L2_IICMx_WriteCmd?BYTE + 02000440H PUBLIC XDATA BYTE ?_L1_IICMx_ReadNByte?BYTE + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 65 + + + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 66 + + + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 67 + + + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 68 + + + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + 02000501H SYMBOL XDATA BYTE ch + 02000502H SYMBOL XDATA BYTE v + 02000503H SYMBOL XDATA BYTE ch + 02000504H SYMBOL XDATA BYTE v + 02000505H SYMBOL XDATA BYTE ch + 02000506H SYMBOL XDATA BYTE v + 02000507H SYMBOL XDATA BYTE ch + 02000508H SYMBOL XDATA BYTE v + 0200051AH SYMBOL XDATA BYTE ch + 0200051BH SYMBOL XDATA BYTE ch + 0200051CH SYMBOL XDATA BYTE ch + 0200051DH SYMBOL XDATA BYTE ch + 0200051EH SYMBOL XDATA BYTE ch + 020004A4H SYMBOL XDATA BYTE ch + 020004A5H SYMBOL XDATA BYTE c + 020004A6H SYMBOL XDATA BYTE ack + 020004A7H SYMBOL XDATA BYTE BitCnt + 020004CCH SYMBOL XDATA BYTE ch + 020004CDH SYMBOL XDATA BYTE BitCnt + 020004CEH SYMBOL XDATA BYTE IIC_RX_Data + 02000440H SYMBOL XDATA BYTE ch + 02000441H SYMBOL XDATA BYTE Sal + 02000442H SYMBOL XDATA --- p + 02000445H SYMBOL XDATA BYTE n + 02000446H SYMBOL XDATA BYTE i + 020004CFH SYMBOL XDATA BYTE ch + 020004D0H SYMBOL XDATA BYTE sla + 020004D1H SYMBOL XDATA BYTE reg + 020004D2H SYMBOL XDATA BYTE ch + 020004D3H SYMBOL XDATA BYTE sla + 020004D4H SYMBOL XDATA BYTE reg + 020004A8H SYMBOL XDATA BYTE ch + 020004A9H SYMBOL XDATA BYTE sla + 020004AAH SYMBOL XDATA BYTE reg + 020004ABH SYMBOL XDATA BYTE cmd + 02000447H SYMBOL XDATA BYTE ch + 02000448H SYMBOL XDATA BYTE sla + 02000449H SYMBOL XDATA BYTE reg + 0200044AH SYMBOL XDATA --- r + 0200044DH SYMBOL XDATA BYTE n + 020004ACH SYMBOL XDATA BYTE ch + 020004ADH SYMBOL XDATA BYTE sla + 020004AEH SYMBOL XDATA BYTE reg + 020004AFH SYMBOL XDATA BYTE d + + --- MODULE --- --- MSP_EEPROM + 02000455H PUBLIC XDATA BYTE ?_L0_Iap_Read_array?BYTE + 0100312FH PUBLIC CODE --- _L0_Iap_Read_array + 0200044EH PUBLIC XDATA BYTE ?_L0_Iap_Program_array?BYTE + 01002E87H PUBLIC CODE --- _L0_Iap_Program_array + 0100353BH PUBLIC CODE --- _L0_Iap_Erase + 01003418H PUBLIC CODE --- _L0_Iap_Program + 01003458H PUBLIC CODE --- _L0_Iap_Read + 01003710H PUBLIC CODE --- L0_Iap_Idle + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 69 + + + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 70 + + + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 71 + + + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 72 + + + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 01003710H BLOCK CODE --- LVL=0 + 01003710H LINE CODE --- #99 + 01003710H LINE CODE --- #100 + 01003710H LINE CODE --- #101 + 01003713H LINE CODE --- #102 + 01003716H LINE CODE --- #103 + 01003719H LINE CODE --- #104 + 0100371CH LINE CODE --- #105 + 0100371FH LINE CODE --- #106 + --- BLOCKEND --- --- LVL=0 + + 01003458H BLOCK CODE --- LVL=0 + 020004D5H SYMBOL XDATA WORD addr + 01003460H BLOCK CODE NEAR LAB LVL=1 + 020004D7H SYMBOL XDATA CHAR dat + --- BLOCKEND --- --- LVL=1 + 01003458H LINE CODE --- #108 + 01003460H LINE CODE --- #109 + 01003460H LINE CODE --- #112 + 01003463H LINE CODE --- #113 + 01003466H LINE CODE --- #114 + 01003469H LINE CODE --- #115 + 01003473H LINE CODE --- #116 + 01003481H LINE CODE --- #117 + 01003484H LINE CODE --- #118 + 01003487H LINE CODE --- #119 + 01003488H LINE CODE --- #120 + 0100348EH LINE CODE --- #121 + 01003491H LINE CODE --- #123 + 01003496H LINE CODE --- #124 + --- BLOCKEND --- --- LVL=0 + + 01003418H BLOCK CODE --- LVL=0 + 020004D8H SYMBOL XDATA WORD addr + 020004DAH SYMBOL XDATA CHAR dat + 01003418H LINE CODE --- #126 + 01003425H LINE CODE --- #127 + 01003425H LINE CODE --- #128 + 01003428H LINE CODE --- #129 + 0100342BH LINE CODE --- #130 + 0100342EH LINE CODE --- #131 + 01003438H LINE CODE --- #132 + 01003446H LINE CODE --- #133 + 0100344DH LINE CODE --- #134 + 01003450H LINE CODE --- #135 + 01003453H LINE CODE --- #136 + 01003454H LINE CODE --- #137 + 01003457H LINE CODE --- #138 + --- BLOCKEND --- --- LVL=0 + + 0100353BH BLOCK CODE --- LVL=0 + 02000509H SYMBOL XDATA WORD addr + 0100353BH LINE CODE --- #142 + 01003543H LINE CODE --- #143 + 01003543H LINE CODE --- #144 + 01003546H LINE CODE --- #145 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 73 + + + 01003549H LINE CODE --- #146 + 0100354CH LINE CODE --- #147 + 01003556H LINE CODE --- #148 + 01003564H LINE CODE --- #149 + 01003567H LINE CODE --- #150 + 0100356AH LINE CODE --- #151 + 0100356BH LINE CODE --- #152 + 0100356EH LINE CODE --- #153 + --- BLOCKEND --- --- LVL=0 + + 01002E87H BLOCK CODE --- LVL=0 + 0200044EH SYMBOL XDATA WORD addr + 02000450H SYMBOL XDATA --- buf + 02000453H SYMBOL XDATA BYTE len + 01002E95H BLOCK CODE NEAR LAB LVL=1 + 02000454H SYMBOL XDATA BYTE i + --- BLOCKEND --- --- LVL=1 + 01002E87H LINE CODE --- #157 + 01002E95H LINE CODE --- #158 + 01002E95H LINE CODE --- #159 + 01002E9AH LINE CODE --- #160 + 01002EA5H LINE CODE --- #161 + 01002EB9H LINE CODE --- #162 + 01002EB9H LINE CODE --- #163 + 01002EE5H LINE CODE --- #164 + 01002EEDH LINE CODE --- #165 + --- BLOCKEND --- --- LVL=0 + + 0100312FH BLOCK CODE --- LVL=0 + 02000455H SYMBOL XDATA WORD addr + 02000457H SYMBOL XDATA --- buf + 0200045AH SYMBOL XDATA BYTE len + 0100313DH BLOCK CODE NEAR LAB LVL=1 + 0200045BH SYMBOL XDATA BYTE i + --- BLOCKEND --- --- LVL=1 + 0100312FH LINE CODE --- #167 + 0100313DH LINE CODE --- #168 + 0100313DH LINE CODE --- #169 + 01003142H LINE CODE --- #170 + 01003156H LINE CODE --- #171 + 01003156H LINE CODE --- #172 + 01003182H LINE CODE --- #173 + 0100318AH LINE CODE --- #175 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- MSP_ADC + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 74 + + + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 75 + + + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 76 + + + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + 0200051FH SYMBOL XDATA BYTE onf + 02000375H SYMBOL XDATA BYTE CHA + 02000376H SYMBOL XDATA WORD adc_data + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 77 + + + 02000378H SYMBOL XDATA DWORD overtimes + 0200037CH SYMBOL XDATA --- BGV + + --- MODULE --- --- BSP_CONFIG + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 78 + + + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 79 + + + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 80 + + + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + --- MODULE --- --- BSP_LED + 020002EDH PUBLIC XDATA --- ts_task_keyled + 020002EAH PUBLIC XDATA --- ts_key + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 81 + + + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 82 + + + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 83 + + + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + 02000520H SYMBOL XDATA BYTE onf + + --- MODULE --- --- BSP_CS1232 + 010026C2H PUBLIC CODE --- _L0_ADS1231_readCH2 + 0100318BH PUBLIC CODE --- _L0_adc_DOUT_AT + 01002B47H PUBLIC CODE --- _L0_adc_SCLK + 01002A3EH PUBLIC CODE --- _L0_ADS1213_INIT + 01002DACH PUBLIC CODE --- _L0_ADS1213_mode + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 84 + + + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 85 + + + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 86 + + + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 87 + + + 01002DACH BLOCK CODE --- LVL=0 + 02000521H SYMBOL XDATA BYTE mode + 01002DACH LINE CODE --- #20 + 01002DB1H LINE CODE --- #21 + 01002DB1H LINE CODE --- #22 + 01002DC7H LINE CODE --- #23 + 01002DC7H LINE CODE --- #24 + 01002DC7H LINE CODE --- #25 + 01002DD0H LINE CODE --- #26 + 01002DD9H LINE CODE --- #27 + 01002DE2H LINE CODE --- #28 + 01002DEBH LINE CODE --- #29 + 01002DF4H LINE CODE --- #30 + 01002DFDH LINE CODE --- #31 + 01002E06H LINE CODE --- #32 + 01002E0FH LINE CODE --- #33 + 01002E11H LINE CODE --- #35 + 01002E12H LINE CODE --- #36 + 01002E12H LINE CODE --- #37 + 01002E14H LINE CODE --- #39 + 01002E15H LINE CODE --- #40 + 01002E15H LINE CODE --- #41 + 01002E17H LINE CODE --- #43 + 01002E18H LINE CODE --- #44 + 01002E18H LINE CODE --- #45 + 01002E1AH LINE CODE --- #47 + 01002E1AH LINE CODE --- #48 + 01002E1AH LINE CODE --- #49 + --- BLOCKEND --- --- LVL=0 + + 01002A3EH BLOCK CODE --- LVL=0 + 02000522H SYMBOL XDATA BYTE mode + 01002A3EH LINE CODE --- #51 + 01002A43H LINE CODE --- #52 + 01002A43H LINE CODE --- #53 + 01002A4CH LINE CODE --- #54 + 01002A5CH LINE CODE --- #55 + 01002A65H LINE CODE --- #56 + 01002A75H LINE CODE --- #57 + 01002A7EH LINE CODE --- #58 + 01002A8EH LINE CODE --- #59 + 01002A97H LINE CODE --- #60 + 01002AA7H LINE CODE --- #61 + 01002AB0H LINE CODE --- #62 + 01002AB9H LINE CODE --- #63 + 01002ABBH LINE CODE --- #64 + 01002AC3H LINE CODE --- #65 + --- BLOCKEND --- --- LVL=0 + + 01002B47H BLOCK CODE --- LVL=0 + 0200050BH SYMBOL XDATA BYTE ch + 0200050CH SYMBOL XDATA BYTE onf + 01002B47H LINE CODE --- #69 + 01002B51H LINE CODE --- #70 + 01002B51H LINE CODE --- #71 + 01002B6AH LINE CODE --- #72 + 01002B6AH LINE CODE --- #73 + 01002B6AH LINE CODE --- #74 + 01002B81H LINE CODE --- #75 + 01002B82H LINE CODE --- #76 + 01002B82H LINE CODE --- #77 + 01002B99H LINE CODE --- #78 + 01002B9AH LINE CODE --- #79 + 01002B9AH LINE CODE --- #80 + 01002BB1H LINE CODE --- #81 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 88 + + + 01002BB2H LINE CODE --- #82 + 01002BB2H LINE CODE --- #83 + 01002BC9H LINE CODE --- #84 + 01002BC9H LINE CODE --- #85 + 01002BC9H LINE CODE --- #86 + 01002BC9H LINE CODE --- #87 + 01002BC9H LINE CODE --- #88 + --- BLOCKEND --- --- LVL=0 + + 0100318BH BLOCK CODE --- LVL=0 + 0200050DH SYMBOL XDATA BYTE ch + 01003190H BLOCK CODE NEAR LAB LVL=1 + 0200050EH SYMBOL XDATA BYTE r + --- BLOCKEND --- --- LVL=1 + 0100318BH LINE CODE --- #90 + 01003190H LINE CODE --- #91 + 01003190H LINE CODE --- #92 + 01003196H LINE CODE --- #94 + 010031AFH LINE CODE --- #95 + 010031AFH LINE CODE --- #96 + 010031AFH LINE CODE --- #97 + 010031B9H LINE CODE --- #98 + 010031BBH LINE CODE --- #99 + 010031BBH LINE CODE --- #100 + 010031C5H LINE CODE --- #101 + 010031C7H LINE CODE --- #102 + 010031C7H LINE CODE --- #103 + 010031D1H LINE CODE --- #104 + 010031D3H LINE CODE --- #105 + 010031D3H LINE CODE --- #106 + 010031DDH LINE CODE --- #107 + 010031DDH LINE CODE --- #108 + 010031DDH LINE CODE --- #109 + 010031DDH LINE CODE --- #110 + 010031DDH LINE CODE --- #111 + 010031E2H LINE CODE --- #112 + --- BLOCKEND --- --- LVL=0 + + 010026C2H BLOCK CODE --- LVL=0 + 020003CDH SYMBOL XDATA BYTE ch + 020003CEH SYMBOL XDATA --- d + 010026CDH BLOCK CODE NEAR LAB LVL=1 + 020003D1H SYMBOL XDATA BYTE i + 020003D2H SYMBOL XDATA DWORD rdata + --- BLOCKEND --- --- LVL=1 + 010026C2H LINE CODE --- #116 + 010026CDH LINE CODE --- #117 + 010026CDH LINE CODE --- #118 + 010026D2H LINE CODE --- #121 + 010026DCH LINE CODE --- #123 + 010026ECH LINE CODE --- #124 + 010026ECH LINE CODE --- #125 + 010026F6H LINE CODE --- #126 + 01002707H LINE CODE --- #127 + 01002711H LINE CODE --- #128 + 0100271CH LINE CODE --- #129 + 0100271CH LINE CODE --- #130 + 01002738H LINE CODE --- #131 + 01002738H LINE CODE --- #132 + 01002740H LINE CODE --- #134 + 0100274AH LINE CODE --- #136 + 01002754H LINE CODE --- #137 + 01002763H LINE CODE --- #138 + --- BLOCKEND --- --- LVL=0 + + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 89 + + + --- MODULE --- --- TTSS_TASK + 02000320H PUBLIC XDATA --- ts_task_init + 02000319H PUBLIC XDATA --- tst_v + 0100356FH PUBLIC CODE --- _L1_task_reg_clear + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 90 + + + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 91 + + + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 92 + + + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 0100356FH BLOCK CODE --- LVL=0 + 020004DBH SYMBOL XDATA --- s + 0100356FH LINE CODE --- #36 + 01003575H LINE CODE --- #37 + 01003575H LINE CODE --- #40 + 01003585H LINE CODE --- #41 + 01003595H LINE CODE --- #43 + 010035A2H LINE CODE --- #44 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- TTSS_TICK + 020002D0H PUBLIC XDATA --- s_nos_tick + 01002EEEH PUBLIC CODE --- L1_task_tick_callback + 0100322DH PUBLIC CODE --- L1_task_tick_init + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 93 + + + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 94 + + + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 95 + + + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 0100322DH BLOCK CODE --- LVL=0 + 0100322DH LINE CODE --- #30 + 0100322DH LINE CODE --- #31 + 0100322DH LINE CODE --- #32 + 01003239H LINE CODE --- #33 + 01003245H LINE CODE --- #34 + 01003251H LINE CODE --- #36 + 0100325BH LINE CODE --- #37 + 01003265H LINE CODE --- #38 + 0100326AH LINE CODE --- #40 + 01003276H LINE CODE --- #66 + --- BLOCKEND --- --- LVL=0 + + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 96 + + + 01002EEEH BLOCK CODE --- LVL=0 + 01002EEEH LINE CODE --- #68 + 01002EEEH LINE CODE --- #69 + 01002EEEH LINE CODE --- #74 + 01002F05H LINE CODE --- #75 + 01002F2CH LINE CODE --- #76 + 01002F2CH LINE CODE --- #78 + 01002F43H LINE CODE --- #79 + 01002F49H LINE CODE --- #80 + 01002F49H LINE CODE --- #81 + 01002F52H LINE CODE --- #85 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- TTSS_TIME_STC + 010033D5H PUBLIC CODE --- timer0_isrHandle + 010036FFH PUBLIC CODE --- L0_timer0_Init + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 97 + + + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 98 + + + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 99 + + + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 010036FFH BLOCK CODE --- LVL=0 + 010036FFH LINE CODE --- #11 + 010036FFH LINE CODE --- #12 + 010036FFH LINE CODE --- #13 + 01003702H LINE CODE --- #14 + 01003705H LINE CODE --- #15 + 01003708H LINE CODE --- #16 + 0100370BH LINE CODE --- #17 + 0100370DH LINE CODE --- #18 + 0100370FH LINE CODE --- #19 + --- BLOCKEND --- --- LVL=0 + + 010033D5H BLOCK CODE --- LVL=0 + 010033D5H LINE CODE --- #72 + 010033F2H LINE CODE --- #74 + 010033F5H LINE CODE --- #75 + 010033F7H LINE CODE --- #76 + 010033FAH LINE CODE --- #78 + 010033FDH LINE CODE --- #79 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- TPC_ROAD + 01001968H PUBLIC CODE --- _L1_s2b_road + 010030D2H PUBLIC CODE --- _L1_s2b_road_init + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 100 + + + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 101 + + + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 102 + + + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 103 + + + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + + 010030D2H BLOCK CODE --- LVL=0 + 02000523H SYMBOL XDATA BYTE ch + 010030D2H LINE CODE --- #38 + 010030D7H LINE CODE --- #39 + 010030D7H LINE CODE --- #40 + 010030ECH LINE CODE --- #41 + 01003101H LINE CODE --- #42 + 01003116H LINE CODE --- #43 + 0100312EH LINE CODE --- #45 + --- BLOCKEND --- --- LVL=0 + + 01001968H BLOCK CODE --- LVL=0 + 02000524H SYMBOL XDATA BYTE ch + 01001968H LINE CODE --- #49 + 0100196DH LINE CODE --- #50 + 0100196DH LINE CODE --- #52 + 01001988H LINE CODE --- #53 + 01001988H LINE CODE --- #54 + 01001988H LINE CODE --- #55 + 0100199EH LINE CODE --- #56 + 010019B6H LINE CODE --- #57 + 010019CBH LINE CODE --- #58 + 010019E0H LINE CODE --- #59 + 01001A2BH LINE CODE --- #61 + 01001A45H LINE CODE --- #62 + 01001A45H LINE CODE --- #63 + 01001A46H LINE CODE --- #65 + 01001A46H LINE CODE --- #66 + 01001A91H LINE CODE --- #67 + 01001AABH LINE CODE --- #69 + 01001AD8H LINE CODE --- #70 + 01001B0FH LINE CODE --- #71 + 01001B0FH LINE CODE --- #72 + 01001B0FH LINE CODE --- #73 + 01001B0FH LINE CODE --- #74 + 01001B25H LINE CODE --- #75 + 01001B3BH LINE CODE --- #76 + 01001B50H LINE CODE --- #77 + 01001B68H LINE CODE --- #78 + 01001B68H LINE CODE --- #79 + 01001B68H LINE CODE --- #80 + --- BLOCKEND --- --- LVL=0 + 02000525H SYMBOL XDATA BYTE ch + 02000526H SYMBOL XDATA BYTE ch + 02000527H SYMBOL XDATA BYTE ch + + --- MODULE --- --- C_LIB + 01003760H PUBLIC CONST --- cguHex2Char + 01003738H PUBLIC CONST --- ul2fun2 + 0100372EH PUBLIC CONST --- us2fun2 + 02000410H PUBLIC XDATA BYTE ?_Lc_memset?BYTE + 010035A3H PUBLIC CODE --- _Lc_strlen + 02000356H PUBLIC XDATA BYTE ?_Lc_encrypt_id1?BYTE + 020002FAH PUBLIC XDATA BYTE ?_Lc_encrypt_id?BYTE + 02000408H PUBLIC XDATA BYTE ?_Lc_abs?BYTE + 0200033FH PUBLIC XDATA BYTE ?_Lc_hex2ascii?BYTE + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 104 + + + 02000333H PUBLIC XDATA BYTE ?_Lc_S32_media3?BYTE + 02000393H PUBLIC XDATA BYTE ?_Lc_buf_copy_uc?BYTE + 02000389H PUBLIC XDATA BYTE ?_Lc_buf_from_const_uc?BYTE + 01003074H PUBLIC CODE --- _Lc_buf_from_const_uc + 0200037FH PUBLIC XDATA BYTE ?_Lc_buf_copy_us?BYTE + 0200047BH PUBLIC XDATA BYTE ?_Lc_strStartsWith?BYTE + 020003D6H PUBLIC XDATA BYTE ?_Lc_strcpy?BYTE + 01002137H PUBLIC CODE --- _Lc_despiking_shift3_U16 + 020004B0H SYMBOL XDATA LONG a + + 01002137H BLOCK CODE --- LVL=0 + 020004DEH SYMBOL XDATA --- m + 01002137H LINE CODE --- #135 + 0100213DH LINE CODE --- #136 + 0100213DH LINE CODE --- #137 + 01002162H LINE CODE --- #138 + 01002162H LINE CODE --- #139 + 01002190H LINE CODE --- #140 + 01002190H LINE CODE --- #141 + 010021AEH LINE CODE --- #142 + 010021AEH LINE CODE --- #143 + 010021D4H LINE CODE --- #144 + 010021D4H LINE CODE --- #145 + 010021FFH LINE CODE --- #146 + 010021FFH LINE CODE --- #147 + 0100221DH LINE CODE --- #148 + 0100221DH LINE CODE --- #149 + 0100221DH LINE CODE --- #150 + 0100221DH LINE CODE --- #152 + 0100221DH LINE CODE --- #153 + --- BLOCKEND --- --- LVL=0 + 02000475H SYMBOL XDATA --- str + 02000478H SYMBOL XDATA --- tmp + 020003D6H SYMBOL XDATA --- dst + 020003D9H SYMBOL XDATA --- str + 020003DCH SYMBOL XDATA --- p + 0200047BH SYMBOL XDATA --- s1 + 0200047EH SYMBOL XDATA --- s2 + 02000326H SYMBOL XDATA --- source + 02000329H SYMBOL XDATA INT sum + 0200032BH SYMBOL XDATA LONG t + 0200032FH SYMBOL XDATA INT i + 02000331H SYMBOL XDATA INT len + 02000528H SYMBOL XDATA BYTE hex + 02000529H SYMBOL XDATA CHAR ch + 0200037FH SYMBOL XDATA --- d + 02000382H SYMBOL XDATA --- s + 02000385H SYMBOL XDATA WORD num + 02000387H SYMBOL XDATA WORD i + + 01003074H BLOCK CODE --- LVL=0 + 02000389H SYMBOL XDATA --- d + 0200038CH SYMBOL XDATA --- s + 0200038FH SYMBOL XDATA WORD num + 0100307AH BLOCK CODE NEAR LAB LVL=1 + 02000391H SYMBOL XDATA WORD i + --- BLOCKEND --- --- LVL=1 + 01003074H LINE CODE --- #239 + 0100307AH LINE CODE --- #240 + 0100307AH LINE CODE --- #242 + 01003099H LINE CODE --- #243 + 01003099H LINE CODE --- #244 + 010030C5H LINE CODE --- #245 + 010030D1H LINE CODE --- #247 + --- BLOCKEND --- --- LVL=0 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 105 + + + 02000393H SYMBOL XDATA --- d + 02000396H SYMBOL XDATA --- s + 02000399H SYMBOL XDATA WORD num + 0200039BH SYMBOL XDATA WORD i + 020004E1H SYMBOL XDATA BYTE a + 020004E2H SYMBOL XDATA BYTE b + 020004E3H SYMBOL XDATA BYTE c + 02000333H SYMBOL XDATA LONG a + 02000337H SYMBOL XDATA LONG b + 0200033BH SYMBOL XDATA LONG c + 0200030AH SYMBOL XDATA --- arr + 0200030DH SYMBOL XDATA INT n + 0200030FH SYMBOL XDATA INT i + 02000311H SYMBOL XDATA INT j + 02000313H SYMBOL XDATA INT ok + 02000315H SYMBOL XDATA LONG tmp + 02000491H SYMBOL XDATA --- val + 02000494H SYMBOL XDATA INT num + 0200039DH SYMBOL XDATA --- d + 020003A0H SYMBOL XDATA BYTE n + 020003A1H SYMBOL XDATA BYTE i + 020003A2H SYMBOL XDATA BYTE j + 020003A3H SYMBOL XDATA DWORD h + 020003DFH SYMBOL XDATA --- d + 020003E2H SYMBOL XDATA BYTE n + 020003E3H SYMBOL XDATA BYTE i + 020003E4H SYMBOL XDATA DWORD sum + 0200033FH SYMBOL XDATA --- buf + 02000342H SYMBOL XDATA WORD len + 02000344H SYMBOL XDATA --- ascii + 02000347H SYMBOL XDATA WORD t + 02000349H SYMBOL XDATA WORD m + 020004B4H SYMBOL XDATA WORD i + 020004B6H SYMBOL XDATA WORD m + 02000408H SYMBOL XDATA LONG a + 0200040CH SYMBOL XDATA LONG b + 020002FAH SYMBOL XDATA --- enc_dst + 020002FDH SYMBOL XDATA --- enc_src + 02000300H SYMBOL XDATA DWORD enc_key + 02000304H SYMBOL XDATA BYTE src_len + 02000305H SYMBOL XDATA BYTE i + 02000306H SYMBOL XDATA BYTE key0 + 02000307H SYMBOL XDATA BYTE key1 + 02000308H SYMBOL XDATA BYTE key2 + 02000309H SYMBOL XDATA BYTE key3 + 02000356H SYMBOL XDATA --- enc_dst + 02000359H SYMBOL XDATA --- enc_src + 0200035CH SYMBOL XDATA --- enc_key + 0200035FH SYMBOL XDATA BYTE src_len + 02000360H SYMBOL XDATA BYTE i + + 010035A3H BLOCK CODE --- LVL=0 + 02000496H SYMBOL XDATA --- str + 010035A9H BLOCK CODE NEAR LAB LVL=1 + 02000499H SYMBOL XDATA INT i + --- BLOCKEND --- --- LVL=1 + 010035A3H LINE CODE --- #507 + 010035A9H LINE CODE --- #508 + 010035A9H LINE CODE --- #510 + 010035B1H LINE CODE --- #511 + 010035C2H LINE CODE --- #512 + 010035C2H LINE CODE --- #513 + 010035CCH LINE CODE --- #514 + 010035CEH LINE CODE --- #515 + 010035D6H LINE CODE --- #516 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 106 + + + --- BLOCKEND --- --- LVL=0 + 0200045CH SYMBOL XDATA --- d + 0200045FH SYMBOL XDATA BYTE len + 02000460H SYMBOL XDATA BYTE i + 02000461H SYMBOL XDATA WORD sum + 02000410H SYMBOL XDATA --- buf + 02000413H SYMBOL XDATA BYTE c + 02000414H SYMBOL XDATA WORD len + 02000416H SYMBOL XDATA WORD i + 02000418H SYMBOL XDATA DWORD ui_in + 0200041CH SYMBOL XDATA --- d + 0200041FH SYMBOL XDATA BYTE m + 02000420H SYMBOL XDATA DWORD ui_in + 02000424H SYMBOL XDATA --- d + 02000427H SYMBOL XDATA BYTE m + 02000428H SYMBOL XDATA DWORD ui_in + 0200042CH SYMBOL XDATA --- d + 0200042FH SYMBOL XDATA BYTE m + 0200049BH SYMBOL XDATA BYTE ui_in + 0200049CH SYMBOL XDATA --- d + 0200049FH SYMBOL XDATA BYTE m + 02000430H SYMBOL XDATA DWORD ui_in + 02000434H SYMBOL XDATA --- d + 02000437H SYMBOL XDATA BYTE m + 020003A7H SYMBOL XDATA INT i_in + 020003A9H SYMBOL XDATA --- d + 020003ACH SYMBOL XDATA BYTE m + 020003ADH SYMBOL XDATA DWORD ui_in + 020003B1H SYMBOL XDATA INT i_in + 020003B3H SYMBOL XDATA --- d + 020003B6H SYMBOL XDATA BYTE m + 020003B7H SYMBOL XDATA DWORD ui_in + 02000438H SYMBOL XDATA DWORD ui_in + 0200043CH SYMBOL XDATA --- d + 0200043FH SYMBOL XDATA BYTE m + + --- MODULE --- --- C_DELAY + 01003497H PUBLIC CODE --- _Lc_delay_ms + 020004B8H SYMBOL XDATA WORD i + 020004BAH SYMBOL XDATA WORD m + + 01003497H BLOCK CODE --- LVL=0 + 020004BCH SYMBOL XDATA WORD i + 0100349FH BLOCK CODE NEAR LAB LVL=1 + 020004BEH SYMBOL XDATA WORD m + --- BLOCKEND --- --- LVL=1 + 01003497H LINE CODE --- #34 + 0100349FH LINE CODE --- #35 + 0100349FH LINE CODE --- #37 + 010034C0H LINE CODE --- #38 + 010034C0H LINE CODE --- #39 + 010034C3H LINE CODE --- #40 + 010034D0H LINE CODE --- #41 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- DEBUG_DRV + 02000484H PUBLIC XDATA --- pd485 + 02000481H PUBLIC XDATA --- pd + 010036D9H PUBLIC CODE --- _putchar + 01000003H PUBLIC CODE --- L3_debug_drv_init + 010035D7H PUBLIC CODE --- L2_debug_ONcomand + 01003014H PUBLIC CODE --- L3_tpc_hex + 00000080H SFRSYM DATA BYTE P0 + 00000080H SFRSYM DATA BIT P00 + 00000080H.1 SFRSYM DATA BIT P01 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 107 + + + 00000080H.2 SFRSYM DATA BIT P02 + 00000080H.3 SFRSYM DATA BIT P03 + 00000080H.4 SFRSYM DATA BIT P04 + 00000080H.5 SFRSYM DATA BIT P05 + 00000080H.6 SFRSYM DATA BIT P06 + 00000080H.7 SFRSYM DATA BIT P07 + 00000081H SFRSYM DATA BYTE SP + 00000082H SFRSYM DATA BYTE DPL + 00000083H SFRSYM DATA BYTE DPH + 00000084H SFRSYM DATA BYTE S4CON + 00000085H SFRSYM DATA BYTE S4BUF + 00000087H SFRSYM DATA BYTE PCON + 00000088H SFRSYM DATA BYTE TCON + 00000088H.7 SFRSYM DATA BIT TF1 + 00000088H.6 SFRSYM DATA BIT TR1 + 00000088H.5 SFRSYM DATA BIT TF0 + 00000088H.4 SFRSYM DATA BIT TR0 + 00000088H.3 SFRSYM DATA BIT IE1 + 00000088H.2 SFRSYM DATA BIT IT1 + 00000088H.1 SFRSYM DATA BIT IE0 + 00000088H SFRSYM DATA BIT IT0 + 00000089H SFRSYM DATA BYTE TMOD + 0000008AH SFRSYM DATA BYTE TL0 + 0000008BH SFRSYM DATA BYTE TL1 + 0000008CH SFRSYM DATA BYTE TH0 + 0000008DH SFRSYM DATA BYTE TH1 + 0000008EH SFRSYM DATA BYTE AUXR + 0000008FH SFRSYM DATA BYTE INTCLKO + 00000090H SFRSYM DATA BYTE P1 + 00000090H SFRSYM DATA BIT P10 + 00000090H.1 SFRSYM DATA BIT P11 + 00000090H.2 SFRSYM DATA BIT P12 + 00000090H.3 SFRSYM DATA BIT P13 + 00000090H.4 SFRSYM DATA BIT P14 + 00000090H.5 SFRSYM DATA BIT P15 + 00000090H.6 SFRSYM DATA BIT P16 + 00000090H.7 SFRSYM DATA BIT P17 + 00000091H SFRSYM DATA BYTE P1M1 + 00000092H SFRSYM DATA BYTE P1M0 + 00000093H SFRSYM DATA BYTE P0M1 + 00000094H SFRSYM DATA BYTE P0M0 + 00000095H SFRSYM DATA BYTE P2M1 + 00000096H SFRSYM DATA BYTE P2M0 + 00000098H SFRSYM DATA BYTE SCON + 00000098H.7 SFRSYM DATA BIT SM0 + 00000098H.6 SFRSYM DATA BIT SM1 + 00000098H.5 SFRSYM DATA BIT SM2 + 00000098H.4 SFRSYM DATA BIT REN + 00000098H.3 SFRSYM DATA BIT TB8 + 00000098H.2 SFRSYM DATA BIT RB8 + 00000098H.1 SFRSYM DATA BIT TI + 00000098H SFRSYM DATA BIT RI + 00000099H SFRSYM DATA BYTE SBUF + 0000009AH SFRSYM DATA BYTE S2CON + 0000009BH SFRSYM DATA BYTE S2BUF + 0000009DH SFRSYM DATA BYTE IRCBAND + 0000009EH SFRSYM DATA BYTE LIRTRIM + 0000009FH SFRSYM DATA BYTE IRTRIM + 000000A0H SFRSYM DATA BYTE P2 + 000000A0H SFRSYM DATA BIT P20 + 000000A0H.1 SFRSYM DATA BIT P21 + 000000A0H.2 SFRSYM DATA BIT P22 + 000000A0H.3 SFRSYM DATA BIT P23 + 000000A0H.4 SFRSYM DATA BIT P24 + 000000A0H.5 SFRSYM DATA BIT P25 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 108 + + + 000000A0H.6 SFRSYM DATA BIT P26 + 000000A0H.7 SFRSYM DATA BIT P27 + 000000A2H SFRSYM DATA BYTE P_SW1 + 000000A8H SFRSYM DATA BYTE IE + 000000A8H.7 SFRSYM DATA BIT EA + 000000A8H.6 SFRSYM DATA BIT ELVD + 000000A8H.5 SFRSYM DATA BIT EADC + 000000A8H.4 SFRSYM DATA BIT ES + 000000A8H.3 SFRSYM DATA BIT ET1 + 000000A8H.2 SFRSYM DATA BIT EX1 + 000000A8H.1 SFRSYM DATA BIT ET0 + 000000A8H SFRSYM DATA BIT EX0 + 000000A9H SFRSYM DATA BYTE SADDR + 000000AAH SFRSYM DATA BYTE WKTCL + 000000ABH SFRSYM DATA BYTE WKTCH + 000000ACH SFRSYM DATA BYTE S3CON + 000000ADH SFRSYM DATA BYTE S3BUF + 000000AEH SFRSYM DATA BYTE TA + 000000AFH SFRSYM DATA BYTE IE2 + 000000B0H SFRSYM DATA BYTE P3 + 000000B0H SFRSYM DATA BIT P30 + 000000B0H.1 SFRSYM DATA BIT P31 + 000000B0H.2 SFRSYM DATA BIT P32 + 000000B0H.3 SFRSYM DATA BIT P33 + 000000B0H.4 SFRSYM DATA BIT P34 + 000000B0H.5 SFRSYM DATA BIT P35 + 000000B0H.6 SFRSYM DATA BIT P36 + 000000B0H.7 SFRSYM DATA BIT P37 + 000000B1H SFRSYM DATA BYTE P3M1 + 000000B2H SFRSYM DATA BYTE P3M0 + 000000B3H SFRSYM DATA BYTE P4M1 + 000000B4H SFRSYM DATA BYTE P4M0 + 000000B5H SFRSYM DATA BYTE IP2 + 000000B6H SFRSYM DATA BYTE IP2H + 000000B7H SFRSYM DATA BYTE IPH + 000000B8H SFRSYM DATA BYTE IP + 000000B8H.7 SFRSYM DATA BIT PPCA + 000000B8H.6 SFRSYM DATA BIT PLVD + 000000B8H.5 SFRSYM DATA BIT PADC + 000000B8H.4 SFRSYM DATA BIT PS + 000000B8H.3 SFRSYM DATA BIT PT1 + 000000B8H.2 SFRSYM DATA BIT PX1 + 000000B8H.1 SFRSYM DATA BIT PT0 + 000000B8H SFRSYM DATA BIT PX0 + 000000B9H SFRSYM DATA BYTE SADEN + 000000BAH SFRSYM DATA BYTE P_SW2 + 000000BCH SFRSYM DATA BYTE ADC_CONTR + 000000BDH SFRSYM DATA BYTE ADC_RES + 000000BEH SFRSYM DATA BYTE ADC_RESL + 000000C0H SFRSYM DATA BYTE P4 + 000000C0H SFRSYM DATA BIT P40 + 000000C0H.1 SFRSYM DATA BIT P41 + 000000C0H.2 SFRSYM DATA BIT P42 + 000000C0H.3 SFRSYM DATA BIT P43 + 000000C0H.4 SFRSYM DATA BIT P44 + 000000C0H.5 SFRSYM DATA BIT P45 + 000000C0H.6 SFRSYM DATA BIT P46 + 000000C0H.7 SFRSYM DATA BIT P47 + 000000C1H SFRSYM DATA BYTE WDT_CONTR + 000000C2H SFRSYM DATA BYTE IAP_DATA + 000000C3H SFRSYM DATA BYTE IAP_ADDRH + 000000C4H SFRSYM DATA BYTE IAP_ADDRL + 000000C5H SFRSYM DATA BYTE IAP_CMD + 000000C6H SFRSYM DATA BYTE IAP_TRIG + 000000C7H SFRSYM DATA BYTE IAP_CONTR + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 109 + + + 000000C8H SFRSYM DATA BYTE P5 + 000000C8H SFRSYM DATA BIT P50 + 000000C8H.1 SFRSYM DATA BIT P51 + 000000C8H.2 SFRSYM DATA BIT P52 + 000000C8H.3 SFRSYM DATA BIT P53 + 000000C8H.4 SFRSYM DATA BIT P54 + 000000C8H.5 SFRSYM DATA BIT P55 + 000000C8H.6 SFRSYM DATA BIT P56 + 000000C8H.7 SFRSYM DATA BIT P57 + 000000C9H SFRSYM DATA BYTE P5M1 + 000000CAH SFRSYM DATA BYTE P5M0 + 000000CBH SFRSYM DATA BYTE P6M1 + 000000CCH SFRSYM DATA BYTE P6M0 + 000000CDH SFRSYM DATA BYTE SPSTAT + 000000CEH SFRSYM DATA BYTE SPCTL + 000000CFH SFRSYM DATA BYTE SPDAT + 000000D0H SFRSYM DATA BYTE PSW + 000000D0H.7 SFRSYM DATA BIT CY + 000000D0H.6 SFRSYM DATA BIT AC + 000000D0H.5 SFRSYM DATA BIT F0 + 000000D0H.4 SFRSYM DATA BIT RS1 + 000000D0H.3 SFRSYM DATA BIT RS0 + 000000D0H.2 SFRSYM DATA BIT OV + 000000D0H.1 SFRSYM DATA BIT F1 + 000000D0H SFRSYM DATA BIT P + 000000D1H SFRSYM DATA BYTE T4T3M + 000000D2H SFRSYM DATA BYTE T4H + 000000D3H SFRSYM DATA BYTE T4L + 000000D4H SFRSYM DATA BYTE T3H + 000000D5H SFRSYM DATA BYTE T3L + 000000D6H SFRSYM DATA BYTE T2H + 000000D7H SFRSYM DATA BYTE T2L + 000000DCH SFRSYM DATA BYTE USBCLK + 000000DCH SFRSYM DATA BYTE PLLCR + 000000DEH SFRSYM DATA BYTE ADCCFG + 000000DFH SFRSYM DATA BYTE IP3 + 000000E0H SFRSYM DATA BYTE ACC + 000000E1H SFRSYM DATA BYTE P7M1 + 000000E2H SFRSYM DATA BYTE P7M0 + 000000E3H SFRSYM DATA BYTE DPS + 000000E4H SFRSYM DATA BYTE DPL1 + 000000E5H SFRSYM DATA BYTE DPH1 + 000000E6H SFRSYM DATA BYTE CMPCR1 + 000000E7H SFRSYM DATA BYTE CMPCR2 + 000000E8H SFRSYM DATA BYTE P6 + 000000E8H SFRSYM DATA BIT P60 + 000000E8H.1 SFRSYM DATA BIT P61 + 000000E8H.2 SFRSYM DATA BIT P62 + 000000E8H.3 SFRSYM DATA BIT P63 + 000000E8H.4 SFRSYM DATA BIT P64 + 000000E8H.5 SFRSYM DATA BIT P65 + 000000E8H.6 SFRSYM DATA BIT P66 + 000000E8H.7 SFRSYM DATA BIT P67 + 000000ECH SFRSYM DATA BYTE USBDAT + 000000EEH SFRSYM DATA BYTE IP3H + 000000EFH SFRSYM DATA BYTE AUXINTIF + 000000F0H SFRSYM DATA BYTE B + 000000F4H SFRSYM DATA BYTE USBCON + 000000F5H SFRSYM DATA BYTE IAP_TPS + 000000F8H SFRSYM DATA BYTE P7 + 000000F8H SFRSYM DATA BIT P70 + 000000F8H.1 SFRSYM DATA BIT P71 + 000000F8H.2 SFRSYM DATA BIT P72 + 000000F8H.3 SFRSYM DATA BIT P73 + 000000F8H.4 SFRSYM DATA BIT P74 + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 110 + + + 000000F8H.5 SFRSYM DATA BIT P75 + 000000F8H.6 SFRSYM DATA BIT P76 + 000000F8H.7 SFRSYM DATA BIT P77 + 000000FCH SFRSYM DATA BYTE USBADR + 000000FFH SFRSYM DATA BYTE RSTCFG + 000000B0H.7 SFRSYM DATA BIT RD + 000000B0H.6 SFRSYM DATA BIT WR + 000000B0H.5 SFRSYM DATA BIT T1 + 000000B0H.4 SFRSYM DATA BIT T0 + 000000B0H.3 SFRSYM DATA BIT INT1 + 000000B0H.2 SFRSYM DATA BIT INT0 + 000000B0H.1 SFRSYM DATA BIT TXD + 000000B0H SFRSYM DATA BIT RXD + 0200050FH SYMBOL XDATA BYTE cmd + 02000510H SYMBOL XDATA BYTE num + + 01003014H BLOCK CODE --- LVL=0 + 01003014H BLOCK CODE NEAR LAB LVL=1 + 020004E4H SYMBOL XDATA BYTE filter + 020004E5H SYMBOL XDATA BYTE slaveId + 020004E6H SYMBOL XDATA BYTE cmd + --- BLOCKEND --- --- LVL=1 + 01003014H LINE CODE --- #103 + 01003014H LINE CODE --- #104 + 01003014H LINE CODE --- #105 + 01003023H LINE CODE --- #106 + 01003032H LINE CODE --- #107 + 01003047H LINE CODE --- #108 + 0100305CH LINE CODE --- #113 + 01003065H LINE CODE --- #114 + 01003065H LINE CODE --- #116 + 0100306EH LINE CODE --- #117 + 0100306EH LINE CODE --- #119 + 01003071H LINE CODE --- #120 + 01003071H LINE CODE --- #121 + 01003071H LINE CODE --- #123 + 01003073H LINE CODE --- #124 + --- BLOCKEND --- --- LVL=0 + + 010035D7H BLOCK CODE --- LVL=0 + 010035D7H LINE CODE --- #129 + 010035D7H LINE CODE --- #130 + 010035D7H LINE CODE --- #131 + 010035E0H LINE CODE --- #132 + 010035E0H LINE CODE --- #133 + 010035E5H LINE CODE --- #136 + 010035E5H LINE CODE --- #138 + 010035EEH LINE CODE --- #139 + 010035EEH LINE CODE --- #140 + 010035F3H LINE CODE --- #145 + 010035FFH LINE CODE --- #150 + 01003603H LINE CODE --- #152 + 01003603H LINE CODE --- #193 + 01003605H LINE CODE --- #194 + --- BLOCKEND --- --- LVL=0 + 0200052AH SYMBOL XDATA BYTE filter + + 01000003H BLOCK CODE --- LVL=0 + 01000003H LINE CODE --- #288 + 01000003H LINE CODE --- #289 + 01000003H LINE CODE --- #291 + --- BLOCKEND --- --- LVL=0 + + 010036D9H BLOCK CODE --- LVL=0 + 0200052BH SYMBOL XDATA CHAR ch + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 111 + + + 010036D9H LINE CODE --- #293 + 010036DEH LINE CODE --- #294 + 010036DEH LINE CODE --- #298 + 010036E8H LINE CODE --- #299 + 010036EDH LINE CODE --- #305 + --- BLOCKEND --- --- LVL=0 + + --- MODULE --- --- ?C_INIT + 010027BFH PUBLIC CODE --- ?C_START + + --- MODULE --- --- ?C?COPY + 010000F6H PUBLIC CODE --- ?C?COPY + + --- MODULE --- --- ?C?CLDPTR + 0100011CH PUBLIC CODE --- ?C?CLDPTR + + --- MODULE --- --- ?C?CLDOPTR + 01000135H PUBLIC CODE --- ?C?CLDOPTR + + --- MODULE --- --- ?C?CILDOPTR + 01000162H PUBLIC CODE --- ?C?CILDOPTR + + --- MODULE --- --- ?C?CSTPTR + 01000195H PUBLIC CODE --- ?C?CSTPTR + + --- MODULE --- --- ?C?CSTOPTR + 010001A7H PUBLIC CODE --- ?C?CSTOPTR + + --- MODULE --- --- ?C?IMUL + 010001C9H PUBLIC CODE --- ?C?IMUL + + --- MODULE --- --- ?C?UIDIV + 010001DBH PUBLIC CODE --- ?C?UIDIV + + --- MODULE --- --- ?C?SIDIV + 01000230H PUBLIC CODE --- ?C?SIDIV + + --- MODULE --- --- ?C?IILDX + 01000266H PUBLIC CODE --- ?C?IILDX + + --- MODULE --- --- ?C?ILDIX + 0100027CH PUBLIC CODE --- ?C?ILDIX + + --- MODULE --- --- ?C?ILDPTR + 01000292H PUBLIC CODE --- ?C?ILDPTR + + --- MODULE --- --- ?C?ILDOPTR + 010002BDH PUBLIC CODE --- ?C?ILDOPTR + + --- MODULE --- --- ?C?ISTOPTR + 010002F5H PUBLIC CODE --- ?C?ISTOPTR + + --- MODULE --- --- ?C?LADD + 01000322H PUBLIC CODE --- ?C?LADD + + --- MODULE --- --- ?C?LSUB + 0100032FH PUBLIC CODE --- ?C?LSUB + + --- MODULE --- --- ?C?LMUL + 0100033DH PUBLIC CODE --- ?C?LMUL + + --- MODULE --- --- ?C?ULDIV + 010003C8H PUBLIC CODE --- ?C?ULDIV + + --- MODULE --- --- ?C?LNEG + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 112 + + + 0100045AH PUBLIC CODE --- ?C?LNEG + + --- MODULE --- --- ?C?SLCMP + 01000468H PUBLIC CODE --- ?C?SLCMP + + --- MODULE --- --- ?C?ULCMP + 0100047EH PUBLIC CODE --- ?C?ULCMP + + --- MODULE --- --- ?C?ULSHR + 0100048FH PUBLIC CODE --- ?C?ULSHR + + --- MODULE --- --- ?C?LSHL + 010004A2H PUBLIC CODE --- ?C?LSHL + + --- MODULE --- --- ?C?LLDPTR + 010004B5H PUBLIC CODE --- ?C?LLDPTR + + --- MODULE --- --- ?C?LLDOPTR + 010004D5H PUBLIC CODE --- ?C?LLDOPTR + + --- MODULE --- --- ?C?LSTPTR + 01000505H PUBLIC CODE --- ?C?LSTPTR + + --- MODULE --- --- ?C?LSTOPTR + 0100051FH PUBLIC CODE --- ?C?LSTOPTR + + --- MODULE --- --- ?C?LLDXDATA + 01000543H PUBLIC CODE --- ?C?LLDXDATA + + --- MODULE --- --- ?C?LLDCODE + 0100054FH PUBLIC CODE --- ?C?LLDCODE + + --- MODULE --- --- ?C?LLDXDATA0 + 0100055FH PUBLIC CODE --- ?C?LLDXDATA0 + + --- MODULE --- --- ?C?LLDCODE0 + 0100056BH PUBLIC CODE --- ?C?LLDCODE0 + + --- MODULE --- --- ?C?LLDOPTR0 + 0100057BH PUBLIC CODE --- ?C?LLDOPTR0 + + --- MODULE --- --- ?C?LLDIXDATA + 010005B4H PUBLIC CODE --- ?C?LLDIXDATA + 010005ABH PUBLIC CODE --- ?C?LLDIXDATA1 + 010005ADH PUBLIC CODE --- ?C?LLDIXDATA8 + + --- MODULE --- --- ?C?LSTXDATA + 010005E0H PUBLIC CODE --- ?C?LSTXDATA + + --- MODULE --- --- ?C?LSTKXDATA + 010005ECH PUBLIC CODE --- ?C?LSTKXDATA + + --- MODULE --- --- ?C?LSTKPTR + 0100061DH PUBLIC CODE --- ?C?LSTKPTR + + --- MODULE --- --- ?C?PLDXDATA + 01000637H PUBLIC CODE --- ?C?PLDXDATA + + --- MODULE --- --- ?C?PLDIXDATA + 01000640H PUBLIC CODE --- ?C?PLDIXDATA + + --- MODULE --- --- ?C?PSTXDATA + 01000657H PUBLIC CODE --- ?C?PSTXDATA + + --- MODULE --- --- ?C?PLDOPTR + LX51 LINKER/LOCATER V4.66.41.0 09/06/2024 11:24:48 PAGE 113 + + + 01000660H PUBLIC CODE --- ?C?PLDOPTR + + --- MODULE --- --- ?C?CCASE + 01000690H PUBLIC CODE --- ?C?CCASE + + --- MODULE --- --- ?C?ICALL + 010006B6H PUBLIC CODE --- ?C?ICALL + 010006BAH PUBLIC CODE --- ?C?ICALL2 + + --- MODULE --- --- ?C_XBP + 0000000DH PUBLIC DATA --- ?C_XBP + + --- MODULE --- --- ?C?LIMUL + 010006BCH PUBLIC CODE --- ?C?LIMUL + + --- MODULE --- --- PRINTF + 020002A8H PUBLIC XDATA --- ?_PRINTF517?BYTE + 020002A8H PUBLIC XDATA --- ?_PRINTF?BYTE + 020002A8H PUBLIC XDATA --- ?_SPRINTF517?BYTE + 020002A8H PUBLIC XDATA --- ?_SPRINTF?BYTE + 01001238H PUBLIC CODE --- _PRINTF + 01001238H PUBLIC CODE --- _PRINTF517 + 01001232H PUBLIC CODE --- _SPRINTF + 01001232H PUBLIC CODE --- _SPRINTF517 + + --- MODULE --- --- ?C?LLDIDATA + 010006E9H PUBLIC CODE --- ?C?LLDIDATA + + --- MODULE --- --- ?C?LLDPDATA + 010006F5H PUBLIC CODE --- ?C?LLDPDATA + + --- MODULE --- --- ?C?LLDIDATA0 + 01000701H PUBLIC CODE --- ?C?LLDIDATA0 + + --- MODULE --- --- ?C?LLDPDATA0 + 0100070EH PUBLIC CODE --- ?C?LLDPDATA0 + + --- MODULE --- --- ?C?LSTIDATA + 0100071BH PUBLIC CODE --- ?C?LSTIDATA + + --- MODULE --- --- ?C?LSTPDATA + 01000727H PUBLIC CODE --- ?C?LSTPDATA + + --- MODULE --- --- ?C?LSTKIDATA + 01000733H PUBLIC CODE --- ?C?LSTKIDATA + + --- MODULE --- --- ?C?LSTKPDATA + 0100074CH PUBLIC CODE --- ?C?LSTKPDATA + + --- MODULE --- --- ?C?PLDIDATA + 01000765H PUBLIC CODE --- ?C?PLDIDATA + + --- MODULE --- --- ?C?PLDPDATA + 0100076EH PUBLIC CODE --- ?C?PLDPDATA + + --- MODULE --- --- ?C?PLDCODE + 01000777H PUBLIC CODE --- ?C?PLDCODE + +Program Size: data=17.1 xdata=1324 const=90 code=14119 +LX51 RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/out/tpc_road.lst b/out/tpc_road.lst new file mode 100644 index 0000000..db48456 --- /dev/null +++ b/out/tpc_road.lst @@ -0,0 +1,345 @@ +C51 COMPILER V9.54 TPC_ROAD 09/06/2024 11:24:47 PAGE 1 + + +C51 COMPILER V9.54, COMPILATION OF MODULE TPC_ROAD +OBJECT MODULE PLACED IN ..\out\tpc_road.obj +COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\tpc\tpc_road.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOINTP + -ROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\so + -urce\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT(. + -.\out\tpc_road.lst) TABS(2) OBJECT(..\out\tpc_road.obj) + +line level source + + 1 + 2 /***************************************************************************** + 3 update by cc @201501101001 + 4 针对多串口 和 单一串口 有区别 每个串口是独立的还是分开的有讲究 程序是复 + -的还是软件应用简单是 + 5 个需要平衡的事情. + 6 + 7 uartcom/uartlib.c: + 8 公用的函数 和硬件无关 + 9 放置串行模式(串口等其他通讯总线类的输出)输出的函数, + 10 一些覆盖模式输出的(lcd等固屏输出的)的也可使用 + 11 void Lc_print(void (*L0pf_send_uc)(char ww), char *dat,...) + 12 ----------------------------------------------------------------------------------------- + 13 uartcom/uartcom0 + 14 和uart相关的通讯协议 com + n + 15 为了适应不同的通讯协议需要不同的uart口来对应 和应用相关 + 16 + 17 typedef struct _ts_lcm_pro_; 应用协议包的定义? LCM的协议------------ + 18 L3_UARTcom0_exp_protocol 解析应用协议 + 19 ----------------------------------------------------------------------------------------- + 20 uartcom/uprotocol: 主要是为 uartcom + n服务的 驱动层到应用层缓存的过度 + 21 公用的串口通讯定义 + 22 struct _s_protocol_ 的公共协议包(关键的结构体)的声明------struct _s_protocol_ + 23 void L1_uart_2buf(struct _s_protocol_ *p)串行数据保存到缓冲中 + 24 -------------------------------------------------------------------------------------------- + 25 msp/uartx.c 底层代码 和cpu相关 + 26 L0_UART0_Init + 27 UART0_IRQHandler + 28 L0_Usend_uc----------s_at0 + 29 ----------------------------------------------------------------------------------------- + 30 ********************************************************************************/ + 31 + 32 #include "tpc_road.h" +*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" + 33 ///#include "c_lib.h" + 34 + 35 ///TS_pp_debug_ ts_debug_rec; + 36 ///TS_s2b_debug_ ts_s2b1_road;////协议处理变量 + 37 + 38 void L1_s2b_road_init(u8 ch) // + 39 { + 40 1 ts_Urec[ch].ok = 0; + 41 1 ts_Urec[ch].debugok = 0; + 42 1 ts_Urec[ch].head = 0; + 43 1 ts_Urec[ch].num = 0; + 44 1 ///printf("\r\nw ts_Urec[D_UART1].max = %d num = %d",(int)ts_Urec[D_UART1].rmax,(int)ts_Urec[D_UART1].num + -); + 45 1 } + 46 + 47 //MODBUS协议解析函数 012345 + 48 //透传协议 就像路过 有时间超时溢出 收到啥就向上传递啥 + 49 void L1_s2b_road(u8 ch) + C51 COMPILER V9.54 TPC_ROAD 09/06/2024 11:24:47 PAGE 2 + + 50 { + 51 1 /// ts_Urec[ch].ok = 1; + 52 1 if(ts_Urec[ch].head == 0) + 53 1 { + 54 2 { + 55 3 ts_Urec[ch].head = 1; + 56 3 ts_Urec[ch].num = 0; + 57 3 ts_Urec[ch].ok = 0; + 58 3 ts_Urec[ch].fifo = 0; + 59 3 ts_Urec[ch].sp[ts_Urec[ch].num ] = ts_Urec[ch].reg; + 60 3 /// ts_Urec[ch].sp[ts_Urec[ch].num ] = SBUF;// L0_uart1_get();; + 61 3 ts_Urec[ch].num ++; + 62 3 } + 63 2 } + 64 1 else + 65 1 { + 66 2 ts_Urec[ch].sp[ts_Urec[ch].num ] = ts_Urec[ch].reg; + 67 2 ts_Urec[ch].num ++; + 68 2 /// ts_Urec[ch].len = ts_Urec[ch].num; + 69 2 ts_Urec[ch].fifo = ts_Urec[ch].num; + 70 2 if(ts_Urec[ch].num < ts_Urec[ch].rmax) + 71 2 { + 72 3 }else + 73 2 {////保护使用 + 74 3 ts_Urec[ch].ok = 2; + 75 3 ts_Urec[ch].debugok = 1; + 76 3 ts_Urec[ch].head = 0; + 77 3 ts_Urec[ch].num = 0; + 78 3 } + 79 2 } + 80 1 } + 81 + 82 void L1_s2b_road2(u8 ch) + 83 { + 84 1 if(ts_Urec[ch].head == 0) + 85 1 { + 86 2 { + 87 3 ts_Urec[ch].head = 1; + 88 3 ts_Urec[ch].num = 0; + 89 3 ts_Urec[ch].ok = 0; + 90 3 ts_Urec[ch].fifo = 0; + 91 3 ts_Urec[ch].sp[ts_Urec[ch].num ++] = ts_Urec[ch].reg; + 92 3 } + 93 2 } + 94 1 else + 95 1 { + 96 2 ts_Urec[ch].sp[ts_Urec[ch].num ++] = ts_Urec[ch].reg; + 97 2 /// ts_Urec[ch].len = ts_Urec[ch].num; + 98 2 ts_Urec[ch].fifo = ts_Urec[ch].num; + 99 2 if(ts_Urec[ch].num < ts_Urec[ch].rmax) + 100 2 { + 101 3 }else + 102 2 {////保护使用 + 103 3 ts_Urec[ch].ok = 2; + 104 3 ts_Urec[ch].debugok = 1; + 105 3 ts_Urec[ch].head = 0; + 106 3 ts_Urec[ch].num = 0; + 107 3 } + 108 2 } + 109 1 } + 110 void L1_s2b_road3(u8 ch) + 111 { + C51 COMPILER V9.54 TPC_ROAD 09/06/2024 11:24:47 PAGE 3 + + 112 1 if(ts_Urec[ch].head == 0) + 113 1 { + 114 2 { + 115 3 ts_Urec[ch].head = 1; + 116 3 ts_Urec[ch].num = 0; + 117 3 ts_Urec[ch].ok = 0; + 118 3 ts_Urec[ch].fifo = 0; + 119 3 ts_Urec[ch].sp[ts_Urec[ch].num ++] = ts_Urec[ch].reg; + 120 3 } + 121 2 } + 122 1 else + 123 1 { + 124 2 ts_Urec[ch].sp[ts_Urec[ch].num ++] = ts_Urec[ch].reg; + 125 2 /// ts_Urec[ch].len = ts_Urec[ch].num; + 126 2 ts_Urec[ch].fifo = ts_Urec[ch].num; + 127 2 if(ts_Urec[ch].num < ts_Urec[ch].rmax) + 128 2 { + 129 3 }else + 130 2 {////保护使用 + 131 3 ts_Urec[ch].ok = 2; + 132 3 ts_Urec[ch].debugok = 1; + 133 3 ts_Urec[ch].head = 0; + 134 3 ts_Urec[ch].num = 0; + 135 3 } + 136 2 } + 137 1 } + 138 void L1_s2b_road4(u8 ch) + 139 { + 140 1 if(ts_Urec[ch].head == 0) + 141 1 { + 142 2 { + 143 3 ts_Urec[ch].head = 1; + 144 3 ts_Urec[ch].num = 0; + 145 3 ts_Urec[ch].ok = 0; + 146 3 ts_Urec[ch].fifo = 0; + 147 3 ts_Urec[ch].sp[ts_Urec[ch].num ++] = ts_Urec[ch].reg; + 148 3 } + 149 2 } + 150 1 else + 151 1 { + 152 2 ts_Urec[ch].sp[ts_Urec[ch].num ++] = ts_Urec[ch].reg; + 153 2 /// ts_Urec[ch].len = ts_Urec[ch].num; + 154 2 ts_Urec[ch].fifo = ts_Urec[ch].num; + 155 2 if(ts_Urec[ch].num < ts_Urec[ch].rmax) + 156 2 { + 157 3 }else + 158 2 {////保护使用 + 159 3 ts_Urec[ch].ok = 2; + 160 3 ts_Urec[ch].debugok = 1; + 161 3 ts_Urec[ch].head = 0; + 162 3 ts_Urec[ch].num = 0; + 163 3 } + 164 2 } + 165 1 } + 166 + 167 + 168 /****************************************************************************** + 169 ** End Of File + 170 ******************************************************************************/ + 171 + 172 /****************************************************************************** + 173 ** c func lib + C51 COMPILER V9.54 TPC_ROAD 09/06/2024 11:24:47 PAGE 4 + + 174 + 175 void L1_s2b_road(TS_rec_road_ *p) + 176 { + 177 /// p->ok = 1; + 178 if(p->head == 0) + 179 { + 180 { + 181 p->head = 1; + 182 //// p->max = D_debug_max; + 183 p->num = 0; + 184 p->ok = 0; + 185 p->fifo = 0; + 186 p->sp[p->num ++] = p->reg; + 187 } + 188 } + 189 else + 190 { + 191 p->sp[p->num ++] = p->reg; + 192 /// p->len = p->num; + 193 p->fifo = p->num; + 194 if(p->num < p->rmax) + 195 { + 196 }else + 197 {////保护使用 + 198 p->ok = 2; + 199 p->debugok = 1; + 200 p->head = 0; + 201 p->num = 0; + 202 } + 203 } + 204 } + 205 + 206 + 207 //透传协议 就像路过 有时间超时溢出 收到啥就向上传递啥 + 208 void L1_s2b_road2(TS_rec_road_ *p) + 209 { + 210 /// p->ok = 1; + 211 if(p->head == 0) + 212 { + 213 { + 214 p->head = 1; + 215 //// p->max = D_debug_max; + 216 p->num = 0; + 217 p->ok = 0; + 218 p->fifo = 0; + 219 p->sp[p->num ++] = p->reg; + 220 } + 221 } + 222 else + 223 { + 224 p->sp[p->num ++] = p->reg; + 225 /// p->len = p->num; + 226 p->fifo = p->num; + 227 if(p->num < p->rmax) + 228 { + 229 }else + 230 {////保护使用 + 231 p->ok = 2; + 232 p->debugok = 1; + 233 p->head = 0; + 234 p->num = 0; + 235 } + C51 COMPILER V9.54 TPC_ROAD 09/06/2024 11:24:47 PAGE 5 + + 236 } + 237 } + 238 + 239 void L1_s2b_road3(TS_rec_road_ *p) + 240 { + 241 /// p->ok = 1; + 242 if(p->head == 0) + 243 { + 244 { + 245 p->head = 1; + 246 //// p->max = D_debug_max; + 247 p->num = 0; + 248 p->ok = 0; + 249 p->fifo = 0; + 250 p->sp[p->num ++] = p->reg; + 251 } + 252 } + 253 else + 254 { + 255 p->sp[p->num ++] = p->reg; + 256 /// p->len = p->num; + 257 p->fifo = p->num; + 258 if(p->num < p->rmax) + 259 { + 260 }else + 261 {////保护使用 + 262 p->ok = 2; + 263 p->debugok = 1; + 264 p->head = 0; + 265 p->num = 0; + 266 } + 267 } + 268 } + 269 void L1_s2b_road4(TS_rec_road_ *p) + 270 { + 271 /// p->ok = 1; + 272 if(p->head == 0) + 273 { + 274 { + 275 p->head = 1; + 276 //// p->max = D_debug_max; + 277 p->num = 0; + 278 p->ok = 0; + 279 p->fifo = 0; + 280 p->sp[p->num ++] = p->reg; + 281 } + 282 } + 283 else + 284 { + 285 p->sp[p->num ++] = p->reg; + 286 /// p->len = p->num; + 287 p->fifo = p->num; + 288 if(p->num < p->rmax) + 289 { + 290 }else + 291 {////保护使用 + 292 p->ok = 2; + 293 p->debugok = 1; + 294 p->head = 0; + 295 p->num = 0; + 296 } + 297 } + C51 COMPILER V9.54 TPC_ROAD 09/06/2024 11:24:47 PAGE 6 + + 298 } + 299 + 300 + 301 ******************************************************************************/ + 302 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 2019 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = 5 ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- + EDATA SIZE = ---- ---- + HDATA SIZE = ---- ---- + XDATA CONST SIZE = ---- ---- + FAR CONST SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/out/tpc_road.obj b/out/tpc_road.obj new file mode 100644 index 0000000..c1b144d Binary files /dev/null and b/out/tpc_road.obj differ diff --git a/source/app/app_weight.c b/source/app/app_weight.c index e3eb02e..dcef016 100644 --- a/source/app/app_weight.c +++ b/source/app/app_weight.c @@ -25,7 +25,7 @@ #define D_Rsensor_out_D_85kg 0x244D */ -#define D_Rsensor_out_D_0kg 0x18D9 +#define D_Rsensor_out_D_0kg 0x18D9 #define D_Rsensor_out_D_20kg 0x1c2c #define D_Rsensor_out_D_85kg 0x26f9 @@ -73,8 +73,6 @@ void L2_task_weight_init(u8 openclose) { if(openclose) { - printf5("\r\n rev L2_task_weight_init wantline %5X\t %X\t %X\t %X\t %X\r\n",TS_adc_SPara[0].ch,\ - TS_adc_SPara[0].wantline,TS_adc_SPara[0].offset,TS_adc_SPara[0].ashift,TS_adc_SPara[0].bshift444); L0_ADS1213_INIT(D_ADS1213_GAIN_128); L2_task_adc_init(0); L2_task_adc_init(1); @@ -110,9 +108,6 @@ void L3_task_weight_init(void) //显示任务初始化 L1_task_reg_clear(&tst_weight.task); L3_task_s_go(tst_weight,D_task_init); - - printf5("\r\n rev L3_task_weight_init wantline %5X\t %X\t %X\t %X\t %X\r\n",TS_adc_SPara[0].ch,\ - TS_adc_SPara[0].wantline,TS_adc_SPara[0].offset,TS_adc_SPara[0].ashift,TS_adc_SPara[0].bshift444); L2_task_weight_init(1); ///Lc_buf_from_const_uc(U8 * d, const U8 * s, U16 num) ///tst_weight.pSPara->ts_WPoint @@ -132,29 +127,39 @@ void L3_task_weight_handler(TS_TASK_weight_ *s) TTSS_Task_init(): L0_waitFree_uartN(0); + + /* + printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[0].offset,ts_adc_samples[0].offset); + printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[1].offset,ts_adc_samples[1].offset); + printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[2].offset,ts_adc_samples[2].offset); + printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[3].offset,ts_adc_samples[3].offset); + + printf('4'); + + */ s->slow = 0; - s->zero = 0; - s->kgx10_zero = 0; + s->zero = 0;s->kgx10_zero = 0; printfs(" L3_task_weight_handler "); - L2_task_go(D_task_WEIGHT_get); + L2_task_go(D_task_WEIGHT_get); TTSS_Task_step(D_task_WEIGHT_get): if(1 == ts_adc_samples[D_Wch4].ok) - { + {// ts_adc_samples[0].ok = 0; ts_adc_samples[1].ok = 0; ts_adc_samples[2].ok = 0; ts_adc_samples[3].ok = 0; s->slow ++; + // L0_uart0_uc('%'); L2_task_go(D_task_WEIGHT_Sline); } - - TTSS_Task_step(D_task_WEIGHT_Sline): + TTSS_Task_step(D_task_WEIGHT_Sline): if (s->slow >= 1)////采样减速 {s->slow = 0; ///调用asp——adc中的输出 out3 /************/ ///cc 2023/04/06--8:9:18 选择使用哪一条滤波线 + ts_adc_samples[0].out5 = ts_adc_samples[0].ts_SAa.out4_shift; ts_adc_samples[1].out5 = ts_adc_samples[1].ts_SAa.out4_shift; ts_adc_samples[2].out5 = ts_adc_samples[2].ts_SAa.out4_shift; @@ -165,59 +170,27 @@ void L3_task_weight_handler(TS_TASK_weight_ *s) { L2_task_go(D_task_WEIGHT_get); } - //L2_task_go(D_task_WEIGHT_getADC); - + //L2_task_go(D_task_WEIGHT_getADC); TTSS_Task_step(D_task_WEIGHT_getADC): + + ////四个传感器相加后平均 - tst_weight.sum32 = ts_adc_samples[0].out5; + tst_weight.sum32 = ts_adc_samples[0].out5; tst_weight.sum32 += ts_adc_samples[1].out5; tst_weight.sum32 += ts_adc_samples[2].out5; tst_weight.sum32 += ts_adc_samples[3].out5; - - // L0_uart1_str("ts_adc_samples[0].out5: "); - // L0_uart1_ushex(ts_adc_samples[0].out5); - // L0_uart1_0d0a(); - // L0_uart1_str("ts_adc_samples[1].out5: "); - // L0_uart1_ushex(ts_adc_samples[1].out5); - // L0_uart1_0d0a(); - // L0_uart1_str("ts_adc_samples[2].out5: "); - // L0_uart1_ushex(ts_adc_samples[2].out5); - // L0_uart1_0d0a(); - // L0_uart1_str("ts_adc_samples[3].out5: "); - // L0_uart1_ushex(ts_adc_samples[3].out5); - // L0_uart1_0d0a(); - // L0_uart1_str("tst_weight.sum32: "); - // L0_uart1_ushex(tst_weight.sum32); - // L0_uart1_0d0a(); - - tst_weight.out6 = tst_weight.sum32 >> 2; - - // L0_uart1_str("tst_weight.sum32 >> 2: "); - // L0_uart1_ushex(tst_weight.out6); - // L0_uart1_0d0a(); - L2_task_go(D_task_WEIGHT_CAL); + tst_weight.out6 = tst_weight.sum32 >>2; + L2_task_go(D_task_WEIGHT_CAL); TTSS_Task_step(D_task_WEIGHT_CAL): + tst_weight.adc32 = tst_weight.out6; - - // L0_uart1_ushex(tst_weight.adc32); - // L0_uart1_0d0a(); - + L3_task_weight_cal(); - // L1_uart1_uc('u'); - // L0_uart1_0d0a(); - // L0_uart1_ushex(tst_weight.adc32); - // L0_uart1_0d0a(); - - L2_task_go(D_task_WEIGHT_out); - + L2_task_go(D_task_WEIGHT_out); TTSS_Task_step(D_task_WEIGHT_out): - - // L0_uart1_ushex(tst_weight.kgx10_zero); - // L0_uart1_ushex(tst_weight.kgx10); - if(tst_weight.kgx10 > tst_weight.kgx10_zero) { s->kgx10_out = s->kgx10 - s->kgx10_zero; @@ -225,47 +198,37 @@ void L3_task_weight_handler(TS_TASK_weight_ *s) { s->kgx10_out = 0 ; } - // L4_weight_print();///需要调试的时候打开!!!!!!!!!!!!!!! +//// D_LED1_REV(); L4_weight_out(); D_LED1_REV(); + + + + /// L4_weight_print();///需要调试的时候打开!!!!!!!!!!!!!!! L2_task_Tdelay_go(D_Tdelay_200ms, D_task_WEIGHT_get); /// L2_task_go(D_task_WEIGHT_get); - TTSS_Task_step(D_task_WEIGHT_zero): - L2_task_go(D_task_WEIGHT_get); + + L2_task_go(D_task_WEIGHT_get); TTSS_Task_end(); } void L3_task_weight_cal(void) { - // L0_uart1_str("tst_weight.adc32: "); - // L0_uart1_ushex(tst_weight.adc32); - // L0_uart1_0d0a(); - // L0_uart1_str("S.weight_SPara.ts_WPoint[0].adc: "); - // L0_uart1_ushex(S.weight_SPara.ts_WPoint[0].adc); - // L0_uart1_0d0a(); - // L0_uart1_str("S.weight_SPara.ts_WPoint[1].adc: "); - // L0_uart1_ushex(S.weight_SPara.ts_WPoint[1].adc); - // L0_uart1_0d0a(); - // L0_uart1_str("S.weight_SPara.ts_WPoint[2].adc: "); - // L0_uart1_ushex(S.weight_SPara.ts_WPoint[2].adc); - // L0_uart1_0d0a(); - if(tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[1].adc) { - if( tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[0].adc ) + if(tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[0].adc ) { - tst_weight.adc32 = (vU32)S.weight_SPara.ts_WPoint[0].adc; + tst_weight.adc32 = (vU32)S.weight_SPara.ts_WPoint[0].adc; } - //0-0-40KG + ///0-0-40KG tst_weight.t32a = (tst_weight.adc32-(vU32)S.weight_SPara.ts_WPoint[0].adc);////有可能<0 tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[1].adc-S.weight_SPara.ts_WPoint[0].adc); tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[1].kg - S.weight_SPara.ts_WPoint[0].kg); tst_weight.t32a /= tst_weight.t32b; - //L0_uart1_ulhex(tst_weight.t32a); - } - else - { //40KG 80KG + + }else + { ///40KG 80KG tst_weight.t32a = (vU32)(tst_weight.adc32-S.weight_SPara.ts_WPoint[1].adc);////有可能大于b tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[2].adc-S.weight_SPara.ts_WPoint[1].adc); tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[2].kg-S.weight_SPara.ts_WPoint[1].kg) ; @@ -273,8 +236,7 @@ void L3_task_weight_cal(void) tst_weight.t32a += (vU32)S.weight_SPara.ts_WPoint[1].kg; } - tst_weight.kgx10 = (vU16)tst_weight.t32a; - // tst_weight.kgx10 = 0x1234; + tst_weight.kgx10 = (vU16)tst_weight.t32a; } /* @@ -397,12 +359,6 @@ void L3_weight_ONdebug(u8 filter)//// ON listen function // printf(" \r\n0->filter=%X ", (int)filter); // printf(" \r\n1->filter=%X slaveId=%X cmd=%X len = %d ", (int)pd485->filter,(int)pd485->slaveId, (int)pd485->cmd, (int)ts_Urec[D_UART1].num); // D_LED2_REV(); - - // AA 02 10 00 02 A3 B4 33 查询 - // AA 02 20 00 03 00 00 00 6C 校准第0个点 00kg - // AA 02 20 00 03 01 00 64 6C 校准第1个点 20kg - // AA 02 20 00 03 02 02 BC 6C 校准第2个点 40kg - // AA 02 30 00 00 33 清零 if(filter == pd485->filter) { // L1_uartD_Arrayhex((u8*)pd,9); @@ -552,23 +508,12 @@ void L4_weight_out(void) ts_weight_out.cmd = 0x10; ts_weight_out.num[0] = (dnum >> 8) & 0xFF; ts_weight_out.num[1] = dnum & 0xFF; - - // L0_uart1_0d0a(); - // L0_uart1_str("ts_adc_samples[0].out1_adc: "); - // L0_uart1_ushex(ts_adc_samples[0].out1_adc); - // ts_weight_out.sensor_adc[0]=0x1234; - - ts_weight_out.sensor_adc[0] = ts_adc_samples[0].out1_adc; - ts_weight_out.sensor_adc[1] = ts_adc_samples[1].out1_adc; - ts_weight_out.sensor_adc[2] = ts_adc_samples[2].out1_adc; - ts_weight_out.sensor_adc[3] = ts_adc_samples[3].out1_adc; - ts_weight_out.kgx10_out = tst_weight.kgx10_out; - //ts_weight_out.kgx10_out = 0x1234; - ts_weight_out.adc32 = tst_weight.adc32;//采样值用作校准时使用 - - // L0_uart1_us(ts_weight_out.adc32); - - // ts_weight_out.adc32= 0x1234;////采样值用作校准时使用 + ts_weight_out.sensor_adc[0]=ts_adc_samples[0].out1_adc; + ts_weight_out.sensor_adc[1]=ts_adc_samples[1].out1_adc; + ts_weight_out.sensor_adc[2]=ts_adc_samples[2].out1_adc; + ts_weight_out.sensor_adc[3]=ts_adc_samples[3].out1_adc; + ts_weight_out.kgx10_out = tst_weight.kgx10_out; + ts_weight_out.adc32= tst_weight.adc32;////采样值用作校准时使用 ts_weight_out.ocr =0x33; L1_uartD_Array((u8 *)&ts_weight_out,total); } diff --git a/source/app/main.c b/source/app/main.c index cd0b913..536c481 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -1,6 +1,31 @@ +////////////////////////////////////////////////////////////////////////// +/// COPYRIGHT NOTICE +/// Copyright (c) 2023 CCSENS +/// All rights reserved. +/// +/// @file main.c +/// @brief main app +/// + +/// 下面是一个含有两个参数的函数的注释说明(简述) +/// +/// 这里写该函数的详述信息 +/// @param a 被测试的变量(param描述参数) +/// @param s 指向描述测试信息的字符串 +/// @return 测试结果(return描述返回值) +/// @see Test() (本函数参考其它的相关的函数,这里作一个链接) +/// @note (note描述需要注意的问题) + +//=============================================== +//寄存器头文件 +//=============================================== + +/// 20221023_175541 CCmodify + #include "main.h" #include "asp_lowpower.h" + void L0_RTC_init(void) { P_SW2 = 0x80; @@ -33,12 +58,9 @@ void L0_main_initled(void) { D_LED1_OFF(); - D_LED2_ON(); - TTSS_run_times(6) { D_LED1_REV(); - D_LED2_REV(); Lc_delay_ms(300); } } @@ -47,16 +69,16 @@ void L0_main_init(void) { int r = 0; Lc_delay_ms(200); - L0_main_initled(); //指示灯 - CLKDIV = 0; //不分频,使用focs + L0_main_initled(); + CLKDIV = 0;////不分频,使用focs - L0_uart1_open(); //打开串口1 - L0_uart2_open(); //打开串口2 + L0_uart1_open(); + L0_uart2_open(); - L3_debug_drv_init(); //未调用 - L1_task_tick_init(); //TTSS-tick初始化 - L0_timer0_Init(); //定时器0初始化 - ET0 = 1; //允许定时器中断T0 + L3_debug_drv_init(); + L1_task_tick_init(); + L0_timer0_Init(); + ET0 = 1; printf1("\r\nD_sys_MainFre %ld",D_sys_MainFre); @@ -64,52 +86,15 @@ void L0_main_init(void) printf1("\r\nL3_S_init %d",r); } - - -TS_adc_SPara_ TS_adc_SPara[D_ADC_CHANNEL_NUM]= -{ - 'A', //0 1 u8 rev1; - 0, //2 3 u8 ch; - D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch1_out1_offset, //3 4 vU16 offset; - 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5, //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - 'A', //0 1 u8 rev1; - 1, //2 3 u8 ch; - D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch2_out1_offset, //3 4 vU16 offset; - 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5, //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - 'A', //0 1 u8 rev1; - 2, //2 3 u8 ch; - D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch3_out1_offset, //3 4 vU16 offset; - 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5, //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - - 'A', //0 1 u8 rev1; - 3, //2 3 u8 ch; - D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch4_out1_offset, //3 4 vU16 offset; - 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5 //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - -}; //=============================================== //主函数 //=============================================== void main(void) { - u16 a= 0; char d[9]={0xab}; L0_main_init(); - L3_task_weight_init(); TTSS_run_every_init(s_nos_tick.stamp,10); @@ -118,25 +103,26 @@ void main(void) while(1) { - if(1 == s_nos_tick.t1s_heartbeat) + if(1 == s_nos_tick.t1s_heartbeat)/// { s_nos_tick.t1s_heartbeat = 0; - // L1_uartD_uc('.'); + L1_uartD_uc('.'); + // L0_uart2_uc('Q'); + // L0_uart2_us(0x1234); D_LED1_REV(); - // L0_uart2_uc('Q'); - // L0_uart2_0d0a(); - // L0_uart2_ul(0XAABBCCDD); - // L0_uart1_ul(0XAABBCCDD); - // L0_uart2_0d0a(); } + + // TTSS_run_every(s_nos_tick.stamp,40) + // D_LED1_REV(); + // L4_weight_out(); + // ///55 0D 0C 90 F5 77 FF 52 80 00 00 00 33 + // TTSS_run_every_end if(L2_debug_ONcomand()) { - L3_weight_ONdebug(D_cmd_filter_weight); + L3_weight_ONdebug(D_cmd_filter_weight);///fe xx xx/// } L3_task_weight_handler(&tst_weight); - - // L0_uart1_us(0x1234); } } diff --git a/source/app/main.h b/source/app/main.h index aaeccff..0b6e429 100644 --- a/source/app/main.h +++ b/source/app/main.h @@ -41,7 +41,7 @@ //#include "../bsp/bsp_485.h" ///#include "msp_time2.h" #include "msp_uart1.h" -#include "msp_uart2.h" +#include "msp_UART2.h" /// /// diff --git a/source/asp/asp_expara.h b/source/asp/asp_expara.h index 8ab68a2..6d93459 100644 --- a/source/asp/asp_expara.h +++ b/source/asp/asp_expara.h @@ -17,6 +17,7 @@ #define _ASP_EXPARA_H_ #include "bsp_config.h" #include "msp_uart1.h" +#include "msp_UART2.h" #include "TTSS_task.h" diff --git a/source/asp/asp_lowpower.c b/source/asp/asp_lowpower.c index 575048e..a30fef9 100644 --- a/source/asp/asp_lowpower.c +++ b/source/asp/asp_lowpower.c @@ -11,7 +11,8 @@ ////20221217_213321 CCmodify new uart struct for road protocol -#include "msp_UART1.h" +#include "msp_uart1.h" + #include "msp_UART2.h" #include "debug_drv.h" @@ -49,7 +50,8 @@ void L0_uart1_open(void) } void L0_uart2_open(void) {// - L0_uart2_buf_init(); + // L0_uart2_buf_init(); + EA = 1; L0_uart1_str("\r\nuart2 open"); } diff --git a/source/asp/asp_schain.c b/source/asp/asp_schain.c index 1cd7f20..0dbfdd8 100644 --- a/source/asp/asp_schain.c +++ b/source/asp/asp_schain.c @@ -20,20 +20,20 @@ //============================================= ///打开adc输出监控,0kg的试试每一路的输出就是 0kg_out1_adc FF77 FFB3 00A4 FFEA -// #define D_ch1_0kg_out1_adc (vS16)0xFF77 -// #define D_ch2_0kg_out1_adc (vS16)0xFFB3 -// #define D_ch3_0kg_out1_adc (vS16)0x00A4 -// #define D_ch4_0kg_out1_adc (vS16)0xFFEA -// /////需要通过测试配置 如果不在意符号位 可以优化掉 -// #define D_ch1_out1_offset (vS16)(D_ch1_wantline-D_ch1_0kg_out1_adc) -// #define D_ch2_out1_offset (vS16)(D_ch2_wantline-D_ch2_0kg_out1_adc) -// #define D_ch3_out1_offset (vS16)(D_ch3_wantline-D_ch3_0kg_out1_adc) -// #define D_ch4_out1_offset (vS16)(D_ch4_wantline-D_ch4_0kg_out1_adc) - -// #define D_ch1_wantline (vS16)0x18da -// #define D_ch2_wantline (vS16)0x18da -// #define D_ch3_wantline (vS16)0x18da -// #define D_ch4_wantline (vS16)0x18da +#define D_ch1_0kg_out1_adc (vS16)0xFF77 +#define D_ch2_0kg_out1_adc (vS16)0xFFB3 +#define D_ch3_0kg_out1_adc (vS16)0x00A4 +#define D_ch4_0kg_out1_adc (vS16)0xFFEA +/////需要通过测试配置 如果不在意符号位 可以优化 diao +#define D_ch1_out1_offset (vS16)(D_ch1_wantline-D_ch1_0kg_out1_adc) +#define D_ch2_out1_offset (vS16)(D_ch2_wantline-D_ch2_0kg_out1_adc) +#define D_ch3_out1_offset (vS16)(D_ch3_wantline-D_ch3_0kg_out1_adc) +#define D_ch4_out1_offset (vS16)(D_ch4_wantline-D_ch4_0kg_out1_adc) + +#define D_ch1_wantline (vS16)0x18da +#define D_ch2_wantline (vS16)0x18da +#define D_ch3_wantline (vS16)0x18da +#define D_ch4_wantline (vS16)0x18da ///cc 2023/04/06--7:39:40 每个传感器放置10kg ///应变片传感器10kg的adc值,选择这个是因为10kg容易获得 并且有一定的重量差 @@ -47,8 +47,41 @@ #define D_adc_per_kg ((D_ch1_10kg_out1_adc-D_ch1_0kg_out1_adc)/D_Rsensor_per_10kg) #define D_adc_zeroout (10*D_adc_per_kg) ///零点都拉到10kg +TS_adc_SPara_ TS_adc_SPara[D_ADC_CHANNEL_NUM]= +{ + + 'A',//0 1 u8 rev1; + 0,//2 3 u8 ch; + D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch1_out1_offset,//3 4 vU16 offset; + 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + + 'A',//0 1 u8 rev1; + 1,//2 3 u8 ch; + D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch2_out1_offset,//3 4 vU16 offset; + 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + + 'A',//0 1 u8 rev1; + 2,//2 3 u8 ch; + D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch3_out1_offset,//3 4 vU16 offset; + 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + + + 'A',//0 1 u8 rev1; + 3,//2 3 u8 ch; + D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch4_out1_offset,//3 4 vU16 offset; + 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 +}; + TS_task_adc_sample ts_adc_samples[D_ADC_CHANNEL_NUM]; @@ -59,39 +92,11 @@ void L2_task_adc_init(U8 ch) L1_task_reg_clear(&ts_adc_samples[ch].task); L3_task_s_go(ts_adc_samples[ch],D_task_init); -printf5("\r\n rev **************** wantline %5X\t %X\t %X\t %X\t %X\r\n",TS_adc_SPara[ch].ch,\ - TS_adc_SPara[ch].wantline,TS_adc_SPara[ch].offset,TS_adc_SPara[ch].ashift,TS_adc_SPara[ch].bshift444); ts_adc_samples[ch].pSPara = &TS_adc_SPara[ch]; ts_adc_samples[ch].firstRun = 1; - // printf5("\r\n rev **************** wantline %5X\t %X\t %X\t %X\t %X\r\n",ts_adc_samples[ch].pSPara->ch,\ - // ts_adc_samples[ch].pSPara->wantline,ts_adc_samples[ch].pSPara->offset,ts_adc_samples[ch].pSPara->ashift,ts_adc_samples[ch].pSPara->bshift444); - - // ts_adc_samples[0].pSPara->wantline = D_ch1_wantline; - // ts_adc_samples[0].pSPara->offset = D_ch1_out1_offset; - // ts_adc_samples[0].pSPara->ch = 0; - // ts_adc_samples[0].pSPara->ashift = 2; - // ts_adc_samples[0].pSPara->bshift444 = 5; - - // ts_adc_samples[1].pSPara->wantline = D_ch1_wantline; - // ts_adc_samples[1].pSPara->offset = D_ch2_out1_offset; - // ts_adc_samples[1].pSPara->ch = 1; - // ts_adc_samples[1].pSPara->ashift = 2; - // ts_adc_samples[1].pSPara->bshift444 = 5; - - // ts_adc_samples[2].pSPara->wantline = D_ch1_wantline; - // ts_adc_samples[2].pSPara->offset = D_ch3_out1_offset; - // ts_adc_samples[2].pSPara->ch = 2; - // ts_adc_samples[2].pSPara->ashift = 2; - // ts_adc_samples[2].pSPara->bshift444 = 5; - - // ts_adc_samples[3].pSPara->wantline = D_ch1_wantline; - // ts_adc_samples[3].pSPara->offset = D_ch4_out1_offset; - // ts_adc_samples[3].pSPara->ch = 3; - // ts_adc_samples[3].pSPara->ashift = 2; - // ts_adc_samples[3].pSPara->bshift444 = 5; - + } //ADC Channel 采样任务 @@ -259,7 +264,7 @@ L3_task_weight_cal(); void L2_task_adc_sample(TS_task_adc_sample *s) { TTSS_Task_init(): - ////cc 初始化尽量放到这里,不要放到main——init中,减少系统启动的时间 + ////cc 初始化尽量放到这里,不要放到main ——init中,减少系统启动的时间 s->jitter_start = 0; s->ok = 0; ////printf("\r\nADC_SAMPLE\r\n"); /* @@ -268,8 +273,8 @@ void L2_task_adc_sample(TS_task_adc_sample *s) ts_adc_samples[s->pSPara->ch].pSPara->offset,ts_adc_samples[s->pSPara->ch].pSPara->offset); */ - printf1("\r\nADC_SAMPLE init ch(%d)",(int)s->pSPara->ch); - L1_uartD_waitFree(); + printf1("\r\nADC_SAMPLE init ch(%d) ", (int)s->pSPara->ch); + L1_uartD_waitFree() ; s->firstRun = 1; @@ -324,8 +329,8 @@ void L2_task_adc_sample(TS_task_adc_sample *s) printfs("\r\n D_ADC_JITTER_zero---"); ///printf3("\r\n ch(%d) out3_Peak %5d %5X ",(int)s->pSPara->ch,s->out3_Peak,s->out3_Peak ); - printf5("\r\n rev(%c) ch(%d) adc=%5d ->offset %5d wantline %5d ",s->pSPara->rev1,(int)s->pSPara->ch,s->out1_adc,s->pSPara->offset,s->pSPara->wantline); - printf5("\r\n rev(%c) ch(%d) adc=%5X ->offset %5X wantline %5X ",s->pSPara->rev1,(int)s->pSPara->ch,s->out1_adc,s->pSPara->offset,s->pSPara->wantline); + printf4("\r\n ch(%d) adc=%5d ->offset %5d wantline %5d ",(int)s->pSPara->ch,s->out1_adc,s->pSPara->offset,s->pSPara->wantline); + printf4("\r\n ch(%d) adc=%5X ->offset %5X wantline %5X ",(int)s->pSPara->ch,s->out1_adc,s->pSPara->offset,s->pSPara->wantline); s->ts_SAa.average = (vU32)s->out3_Peak;/// shiftaverage_a路初始化 s->ts_SAa.sum = s->ts_SAa.average << s->pSPara->ashift; @@ -374,6 +379,347 @@ void L2_task_adc_sample(TS_task_adc_sample *s) } #if 0 +void L3_out_zero(u8 ch) +{ + vS16 t,m; + + + t = ts_adc_samples[ch].out1_adc; + m = ts_adc_samples[ch].SPara.wantline; + m -= t; + ts_adc_samples[ch].SPara.offset = (vU16)m; +/// L0_waitFree_uartN(0);///混搭使用printf的时候必须加上 +/// printf("\r\nzeroout = %4x offset= 0x%4x\r\n", ts_adc_samples[ch].zeroout,ts_adc_samples[ch].offset); + +/// D_ADC_OFFSET(ch) = ts_adc_samples[ch].zeroout - ts_adc_samples[ch].out1; +} + + +vU16 L3_out_offset222(u8 ch,vU16 t16) +{ + vU16 out; + + /// L0_uart0_ushex(t16); L0_uart0_uc(' '); + if(t16 & 0x8000) //最高位为1,<0则 + { + t16 = 0xffFF - t16;///转变为正数 + ///*d = D_ADC_OFFSET - t16; + out = ts_adc_samples[ch].SPara.offset - t16; +// L0_uart0_uc('$'); L0_uart0_ushex(ts_adc_samples[ch].offset);L0_uart0_uc(' '); + }else + { + out = t16 + ts_adc_samples[ch].SPara.offset; + } +// L0_uart0_ushex(out);L0_uart0_uc(' '); L0_uart0_uc('R');L0_uart0_0d0a(); + return out; +} + +vU16 L3_out_tran2(vU32 rdata) +{ + vU16 t16; +//// L0_ADS1231_readCH2(0,&rdata); + // L0_uart0_uc('0'+ch); L0_uart0_uc(0x09); + // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); + if (rdata > 0x007fFFff) + { + rdata >>= D_sensor_zoom; ///fixme:此处正负差和移位不一致需要谨慎 + rdata |= D_sensor_zoom_FF; /// 1111 1100 + }else + { + rdata >>= D_sensor_zoom; + } + + // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); + t16 = rdata; + // L0_uart0_ushex(t16); L0_uart0_uc(0x09); + ///L0_uart0_0d0a(); + return t16; +} + +void L3_task_show_init(void) +{ + //显示任务初始化 + L1_task_init(&ts_adc_blur_show.task); + L3_task_s_go(ts_adc_blur_show,D_task_init); + ts_adc_blur_show.rough_weight = 0; + +} + +//中值滤波任务 +#define D_task_ADC_CHx_FILTER_MID_GET 0x50 +#define D_task_ADC_CHx_FILTER_MID_COUNT 0x51 +#define D_task_ADC_CHx_FILTER_MID_OUT 0x52 +void L3_task_adc_filter_mid(S_TASK_ADC_BLUR_MID *s) +{ + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_FILTER_MID_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_GET) + if(ts_adc_channel_samples[s->ch].n >= s->max) + { + U8 i = 0; + for(i=0;imax;i++) + { + s->in[i] = ts_adc_channel_samples[s->ch].out1[i]; + } + ts_adc_channel_samples[s->ch].n = 0; + L2_task_go(D_task_ADC_CHx_FILTER_MID_COUNT); + } + + TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_COUNT) + s->midval = Lc_S32_media(s->in, s->max); + L2_task_go(D_task_ADC_CHx_FILTER_MID_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_OUT) + s->out[s->n] = s->midval; + //R.adval[s->ch] = s->out[s->n]; + s->n++; + if(s->n >= MAX_OUT_NUM) + { + s->n = 0; + } + L2_task_go(D_task_ADC_CHx_FILTER_MID_GET); + + TTSS_Task_end(); + + +} + +//均值滤波任务 +#define D_task_ADC_CHx_FILTER_AVG_GET 0x50 +#define D_task_ADC_CHx_FILTER_AVG_COUNT 0x51 +#define D_task_ADC_CHx_FILTER_AVG_OUT 0x52 +void L3_task_adc_filter_avg(S_TASK_ADC_BLUR_AVG *s) +{ + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_FILTER_AVG_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_GET) + if(ts_adc_channel_samples[s->ch].n >= s->max) + { + U8 i = 0; + ts_adc_channel_samples[s->ch].n = 0; + for(i=0;imax;i++) + { + s->in[i] = ts_adc_channel_samples[s->ch].out1[i]; + } + L2_task_go(D_task_ADC_CHx_FILTER_AVG_COUNT); + } + + TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_COUNT) + s->avgval = Lc_vS32_avg(s->in,s->max); + L2_task_go(D_task_ADC_CHx_FILTER_AVG_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_OUT) + s->out[s->n] = s->avgval; + //R.adval[s->ch] = s->out[s->n]; + s->n++; + if(s->n >= MAX_OUT_NUM) + { + s->n = 0; + } + L2_task_go(D_task_ADC_CHx_FILTER_AVG_GET); + + TTSS_Task_end(); + + +} + + +//移位滤波任务 +#define D_task_ADC_CHx_FILTER_SHIFT_GET 0x50 +#define D_task_ADC_CHx_FILTER_SHIFT_COUNT 0x51 +#define D_task_ADC_CHx_FILTER_SHIFT_OUT 0x52 +void L3_task_adc_ShiftFilter(TS_TASK_ADC_SHIFTFILTER *s) +{ + TTSS_Task_init() + s->average = ts_adc_samples[s->ch].out2;/// + s->sum = s->average << s->shift; + L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_GET) + s->sum += + + + TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_COUNT) + s->sum[0] -= s->shiftval[0]; + s->sum[0] += s->in; + s->shiftval[0] = s->sum[0] >> s->shiftreg[0]; + s->sum[1] -= s->shiftval[1]; + s->sum[1] += s->in; + s->shiftval[1] = s->sum[1] >> s->shiftreg[1]; + s->sum[2] -= s->shiftval[2]; + s->sum[2] += s->in; + s->shiftval[2] = s->sum[2] >> s->shiftreg[2]; + L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_OUT) + s->out[0][s->n] = s->shiftval[0]; + s->out[1][s->n] = s->shiftval[1]; + s->out[2][s->n] = s->shiftval[2]; + + + //R.adval[s->ch] = s->out[0][s->n] = s->shiftval[0]; + s->n++; + if(s->n >= MAX_OUT_NUM) + { + s->n = 0; + } + L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); + + TTSS_Task_end(); + +} + + +//输出判定任务 +#define D_task_ADC_CHx_FILTER_OUT_GET 0x50 +#define D_task_ADC_CHx_FILTER_OUT_COUNT 0x51 +#define D_task_ADC_CHx_FILTER_OUT_CHANGE 0x52 +#define D_task_ADC_CHx_FILTER_OUT_OUT 0x53 +void L3_task_adc_filter_out(S_TASK_ADC_BLUR_OUT *s) +{ + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_FILTER_OUT_GET); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_GET) + if(s->h != ts_adc_blur_shift[s->ch].n) + { + s->h = ts_adc_blur_shift[s->ch].n; + s->in[0] = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n, 1)]; + s->in[1] = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n, 2)]; + //获取输出曲线val + s->newout = ts_adc_blur_shift[s->ch].out[s->oldnum][count_n(ts_adc_blur_shift[s->ch].n, 1)]; + L2_task_go(D_task_ADC_CHx_FILTER_OUT_COUNT); + } + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_COUNT) //根据阀值选择输出的曲线 + //判断选择新曲线 + if(Lc_abs(s->in[0] , s->in[1]) >= s->threshold[0])//2KG + { + s->newnum = 0; + } + else if(Lc_abs(s->in[0] , s->in[1]) >= s->threshold[1]) //0.5KG + { + s->newnum = 1; + } + else + { + s->newnum = 2; + } + //L2_task_go(D_task_ADC_CHx_FILTER_OUT_OUT); + L2_task_go(D_task_ADC_CHx_FILTER_OUT_CHANGE); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_CHANGE) + if(s->newnum != s->oldnum)//切换移位滤波时调整其他滤波的SUM + { + s->oldnum = s->newnum; //不能只调整新值,所有曲线都要一起调整 + //ts_adc_blur_shift[s->ch].sum[1] = (ts_adc_blur_avg[s->ch].out[ts_adc_blur_avg[s->ch].n] * R.adc_blur_avg); + ts_adc_blur_shift[s->ch].sum[0] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[0]; + ts_adc_blur_shift[s->ch].shiftval[0] = s->newout; + ts_adc_blur_shift[s->ch].sum[1] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[1]; + ts_adc_blur_shift[s->ch].shiftval[1] = s->newout; + ts_adc_blur_shift[s->ch].sum[2] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[2]; + ts_adc_blur_shift[s->ch].shiftval[2] = s->newout; + } + L2_task_go(D_task_ADC_CHx_FILTER_OUT_OUT); + + TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_OUT) + R.adval[s->ch] = s->newout; + //R.adval[s->ch] = ts_adc_channel_samples[s->ch].adcval; + L2_task_go(D_task_ADC_CHx_FILTER_OUT_GET); + + TTSS_Task_end(); + +} + + +//显示任务 +#define D_task_ADC_CHx_SHOW 0x50 +void L3_task_adc_filter_show(S_TASK_ADC_BLUR_SHOW *s) +{ + TTSS_Task_init() + L2_task_go(D_task_ADC_CHx_SHOW); + + TTSS_Task_step(D_task_ADC_CHx_SHOW) + R.ch_weight[0] = D_COUNT_WEIGHT(R.adval[0]); + R.ch_weight[1] = D_COUNT_WEIGHT(R.adval[1]); + R.ch_weight[2] = D_COUNT_WEIGHT(R.adval[2]); + R.ch_weight[3] = D_COUNT_WEIGHT(R.adval[3]); + s->rough_weight = R.ch_weight[0] + R.ch_weight[1] + R.ch_weight[2] + R.ch_weight[3]; //毛重 + #if 0 + L0_uart0_ulhex(s->rough_weight); + L0_uart0_uc(' '); + #endif + if( ABS(R.rough_weight,s->rough_weight) >= 50) //变化超过0.05KG + { + R.rough_weight = s->rough_weight; + R.total_weight = (R.rough_weight > R.total_zweight) ? (R.rough_weight - R.total_zweight) : (0);//净重 + } + L2_task_go_Tdelay(D_task_ADC_CHx_SHOW,D_Tdelay_Msec(15)); //延时15ms + + TTSS_Task_end(); +} + + + + /******* + ts_adc_channel_samples[ch].status = (R.p.adc_ch_status >> ch) & 0x1; + ts_adc_channel_samples[ch].pool = 0; + ts_adc_channel_samples[ch].adcval = 0; + ts_adc_channel_samples[ch].n = 0; + ts_adc_channel_samples[ch].ch = D_ADCCH_1 + ch; + + //通道中值滤波任务初始化 + L1_task_init(&ts_adc_blur_mid[ch].task); + L3_task_s_go(ts_adc_blur_mid[ch],D_task_init); + ts_adc_blur_mid[ch].n = 0; + ts_adc_blur_mid[ch].max = R.p.adc_blur_mid; + ts_adc_blur_mid[ch].ch = D_ADCCH_1 + ch; + + //通道均值滤波任务初始化 + L1_task_init(&ts_adc_blur_avg[ch].task); + L3_task_s_go(ts_adc_blur_avg[ch],D_task_init); + ts_adc_blur_avg[ch].max = R.p.adc_blur_avg; + ts_adc_blur_avg[ch].avgval = 0; + ts_adc_blur_avg[ch].n = 0; + ts_adc_blur_avg[ch].ch = D_ADCCH_1 + ch; + + //通道移位滤波任务初始化 + L1_task_init(&ts_adc_blur_shift[ch].task); + L3_task_s_go(ts_adc_blur_shift[ch],D_task_init); + ts_adc_blur_shift[ch].n = 0; + ts_adc_blur_shift[ch].h = 0; + ts_adc_blur_shift[ch].shiftreg[0] = R.p.adc_blur_shift[0]; + ts_adc_blur_shift[ch].shiftreg[1] = R.p.adc_blur_shift[1]; + ts_adc_blur_shift[ch].shiftreg[2] = R.p.adc_blur_shift[2]; + ts_adc_blur_shift[ch].sum[0] = 0; + ts_adc_blur_shift[ch].sum[1] = 0; + ts_adc_blur_shift[ch].sum[2] = 0; + ts_adc_blur_shift[ch].shiftval[0] = 0; + ts_adc_blur_shift[ch].shiftval[1] = 0; + ts_adc_blur_shift[ch].shiftval[2] = 0; + ts_adc_blur_shift[ch].ch = D_ADCCH_1 + ch; + + //输出判定任务初始化 + L1_task_init(&ts_adc_blur_out[ch].task); + L3_task_s_go(ts_adc_blur_out[ch],D_task_init); + ts_adc_blur_out[ch].h= 0; + ts_adc_blur_out[ch].threshold[0] = D_blur_threshold_2_1(R.p.adc_blur_threshold[0]); //2KG + ts_adc_blur_out[ch].threshold[1] = D_blur_threshold_2_1(R.p.adc_blur_threshold[1]); //0.5KG + ts_adc_blur_out[ch].newnum = 0; + ts_adc_blur_out[ch].oldnum = 0; + ts_adc_blur_out[ch].oldout = 0; + ts_adc_blur_out[ch].newout = 0; + ts_adc_blur_out[ch].n = 0; + ts_adc_blur_out[ch].ch = D_ADCCH_1 + ch; + *****/ + +#if 0 + //通道切换任务初始化 + //L1_task_init(&ts_adc_channel_switch.task); + L3_task_s_go(ts_adc_channel_switch,D_task_init); +#endif #endif diff --git a/source/asp/asp_schain.h b/source/asp/asp_schain.h index 29d1715..a34f602 100644 --- a/source/asp/asp_schain.h +++ b/source/asp/asp_schain.h @@ -42,41 +42,21 @@ typedef struct vU16 out4_shift; /// }TS_shift_averge_; -#define D_ch1_0kg_out1_adc (vS16)0xFF77 -#define D_ch2_0kg_out1_adc (vS16)0xFFB3 -#define D_ch3_0kg_out1_adc (vS16)0x00A4 -#define D_ch4_0kg_out1_adc (vS16)0xFFEA - -#define D_ch1_wantline (vS16)0x18da -#define D_ch2_wantline (vS16)0x18da -#define D_ch3_wantline (vS16)0x18da -#define D_ch4_wantline (vS16)0x18da -/////需要通过测试配置 如果不在意符号位 可以优化掉 -#define D_ch1_out1_offset (vS16)(D_ch1_wantline-D_ch1_0kg_out1_adc) -#define D_ch2_out1_offset (vS16)(D_ch2_wantline-D_ch2_0kg_out1_adc) -#define D_ch3_out1_offset (vS16)(D_ch3_wantline-D_ch3_0kg_out1_adc) -#define D_ch4_out1_offset (vS16)(D_ch4_wantline-D_ch4_0kg_out1_adc) - typedef struct {///!!!!!和 D_TS_adc_SPara_LEN 需要一一对应 u8 rev1; ////= 0x30 第一次运行 u8 ch; - // vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - // vU16 offset; ///当前adc被偏移到wantline的时候 和原始值out_adc的差值 一般=(wantline-原始adc) - // vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - // vU8 bshift444; ///移动的位数 1-2 2-4 3-8 4-16 fixme:需要开放时调整 - u16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - u16 offset; ///当前adc被偏移到wantline的时候 和原始值out_adc的差值 一般=(wantline-原始adc) - u8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - u8 bshift444; ///移动的位数 1-2 2-4 3-8 4-16 fixme:需要开放时调整 + vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + vU16 offset; ///当前adc被偏移到wantline的时候 和原始值out_adc的差值 一般=(wantline-原始adc) + vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + vU8 bshift444; ///移动的位数 1-2 2-4 3-8 4-16 fixme:需要开放时调整 // u8 rev1; // u8 rev2; // u8 rev2; }TS_adc_SPara_; - extern TS_adc_SPara_ TS_adc_SPara[D_ADC_CHANNEL_NUM]; diff --git a/source/bsp/TTSSbsp/bsp_config.h b/source/bsp/TTSSbsp/bsp_config.h index 54eccf1..9c08feb 100644 --- a/source/bsp/TTSSbsp/bsp_config.h +++ b/source/bsp/TTSSbsp/bsp_config.h @@ -164,23 +164,25 @@ #define D_CODE_ENCRYPTION_TYPE TYPE_ENCRYPTION_ENABLE //是否代码加密 //串口配置 +/// #define D_UART1_BRT BRT_460800 +/// #define D_UART1_BRT BRT_921600 +// #define D_UART1_BRT BRT_115200 #define D_UART1_BRT BRT_9600 #define D_UART1_SBIT SBIT_1 #define D_PIN_UART1 PIN_UART1_Rxd_30_Txd_31 - -#define D_UART2_BRT BRT_9600///BRT_921600///BRT_115200/// -#define D_UART2_SBIT SBIT_1 -#define D_PIN_UART2 PIN_UART2_Rxd_10_Txd_11 +#define D_UART2_BRT BRT_115200///BRT_921600///BRT_115200/// +#define D_UART3_BRT BRT_115200///BRT_921600///BRT_115200 +#define D_UART4_BRT BRT_115200///BRT_921600///BRT_115200 //485配置 -// #define D_UART1_485_TYPE TYPE_485_SLAVER //UART1启用485 -// #define D_UART1_485_SLAVER_ID_BROADCAST 0xFF //485从机总是响应0xFF消息 -// #define D_UART1_485_SLAVER_ID 0x11 //板卡作为485从机 slaverId -// #define D_UART1_485_TX() D_P55_stdIO();D_P55_ON(); -// #define D_UART1_485_RX() D_P55_stdIO();D_P55_OFF(); - -#define D_UART1_485_TYPE TYPE_485_NONE //UART1不启用485 +#define D_UART1_485_TYPE TYPE_485_SLAVER //UART1启用485 +#define D_UART1_485_SLAVER_ID_BROADCAST 0xFF //485从机总是响应0xFF消息 +#define D_UART1_485_SLAVER_ID 0x11 //板卡作为485从机 slaverId +#define D_UART1_485_TX() D_P55_stdIO();D_P55_ON(); +#define D_UART1_485_RX() D_P55_stdIO();D_P55_OFF(); #define D_UART2_485_TYPE TYPE_485_NONE //UART2不启用485 +#define D_UART3_485_TYPE TYPE_485_NONE //UART2不启用485 +#define D_UART4_485_TYPE TYPE_485_NONE //UART2不启用485 //MODBUS协议配置 #define D_MODBUS_ENABLE //MODBS启用开关,如果不使用modbus,可以注释掉本行 @@ -194,10 +196,10 @@ #define D_LED1_OFF() D_P12_stdIO();D_P12_ON() #define D_LED1_REV() D_P12_stdIO();D_P12_REV() -#define D_LED2_INIT() D_LED2_OFF() -#define D_LED2_ON() D_P54_stdIO();D_P54_OFF() -#define D_LED2_OFF() D_P54_stdIO();D_P54_ON() -#define D_LED2_REV() D_P54_stdIO();D_P54_REV() +// #define D_LED2_INIT() D_LED2_OFF() +// #define D_LED2_ON() D_P54_stdIO();D_P54_OFF() +// #define D_LED2_OFF() D_P54_stdIO();D_P54_ON() +// #define D_LED2_REV() D_P54_stdIO();D_P54_REV() diff --git a/source/bsp/backu/bsp_cs1232.h b/source/bsp/backu/bsp_cs1232.h index 7129f55..f526548 100644 --- a/source/bsp/backu/bsp_cs1232.h +++ b/source/bsp/backu/bsp_cs1232.h @@ -103,16 +103,16 @@ P3.0 RXD0 11 -#define D_ADC_SCLK2_INIT() D_stdIO_P3(BITN2);D_ADC_SCLK2_OFF(); -#define D_ADC_SCLK2_CLOSE() D_HighR_P3(BITN2); -#define D_ADC_SCLK2_ON() D_P32_ON();D_adc_delay2(); -#define D_ADC_SCLK2_OFF() D_P32_OFF();D_adc_delay(); +#define D_ADC_SCLK2_INIT() D_stdIO_P1(BITN6);D_ADC_SCLK2_OFF(); +#define D_ADC_SCLK2_CLOSE() D_HighR_P1(BITN6); +#define D_ADC_SCLK2_ON() D_P16_ON();D_adc_delay2(); +#define D_ADC_SCLK2_OFF() D_P16_OFF();D_adc_delay(); -#define D_ADC_DOUT2_INIT() D_HighR_P3(BITN3); -#define D_ADC_DOUT2_CLOSE() D_HighR_P3(BITN3); -#define D_ADC_DOUT2_ON() D_P33_ON() -#define D_ADC_DOUT2_OFF() D_P33_OFF() -#define D_ADC_DOUT2_AT() D_P33_AT() +#define D_ADC_DOUT2_INIT() D_HighR_P1(BITN0); +#define D_ADC_DOUT2_CLOSE() D_HighR_P1(BITN0); +#define D_ADC_DOUT2_ON() D_P10_ON() +#define D_ADC_DOUT2_OFF() D_P10_OFF() +#define D_ADC_DOUT2_AT() D_P10_AT() #define D_ADC_SCLK3_INIT() D_stdIO_P3(BITN4);D_ADC_SCLK3_OFF(); @@ -120,33 +120,33 @@ P3.0 RXD0 11 #define D_ADC_SCLK3_ON() D_P34_ON();D_adc_delay2(); #define D_ADC_SCLK3_OFF() D_P34_OFF();D_adc_delay(); -#define D_ADC_DOUT3_INIT() D_HighR_P3(BITN5); -#define D_ADC_DOUT3_CLOSE() D_HighR_P3(BITN5); -#define D_ADC_DOUT3_ON() D_P35_ON() -#define D_ADC_DOUT3_OFF() D_P35_OFF() -#define D_ADC_DOUT3_AT() D_P35_AT() - -#define D_ADC_SCLK4_INIT() D_stdIO_P3(BITN6);D_ADC_SCLK4_OFF(); -#define D_ADC_SCLK4_CLOSE() D_HighR_P3(BITN6); -#define D_ADC_SCLK4_ON() D_P36_ON();D_adc_delay2(); -#define D_ADC_SCLK4_OFF() D_P36_OFF();D_adc_delay(); - -#define D_ADC_DOUT4_INIT() D_HighR_P3(BITN7); -#define D_ADC_DOUT4_CLOSE() D_HighR_P3(BITN7); -#define D_ADC_DOUT4_ON() D_P37_ON() -#define D_ADC_DOUT4_OFF() D_P37_OFF() -#define D_ADC_DOUT4_AT() D_P37_AT() - -#define D_ADC_GAIN0_INIT() D_stdIO_P5(BITN5) -#define D_ADC_GAIN0_CLOSE() D_HighR_P5(BITN5) -#define D_ADC_GAIN0_128() D_P55_ON() -#define D_ADC_GAIN0_64() D_P55_OFF() - - -#define D_ADC_PDWN_INIT() D_stdIO_P5(BITN4) -#define D_ADC_PDWN_CLOSE() D_HighR_P5(BITN4) -#define D_ADC_PD_WACKUP() D_P54_ON() //唤醒时间至少5.6ms -#define D_ADC_POWERDOWN() D_P54_OFF() ///持续26us以上 +#define D_ADC_DOUT3_INIT() D_HighR_P3(BITN7); +#define D_ADC_DOUT3_CLOSE() D_HighR_P3(BITN7); +#define D_ADC_DOUT3_ON() D_P37_ON() +#define D_ADC_DOUT3_OFF() D_P37_OFF() +#define D_ADC_DOUT3_AT() D_P37_AT() + +#define D_ADC_SCLK4_INIT() D_stdIO_P3(BITN2);D_ADC_SCLK4_OFF(); +#define D_ADC_SCLK4_CLOSE() D_HighR_P3(BITN2); +#define D_ADC_SCLK4_ON() D_P32_ON();D_adc_delay2(); +#define D_ADC_SCLK4_OFF() D_P32_OFF();D_adc_delay(); + +#define D_ADC_DOUT4_INIT() D_HighR_P3(BITN3); +#define D_ADC_DOUT4_CLOSE() D_HighR_P3(BITN3); +#define D_ADC_DOUT4_ON() D_P33_ON() +#define D_ADC_DOUT4_OFF() D_P33_OFF() +#define D_ADC_DOUT4_AT() D_P33_AT() + +#define D_ADC_GAIN0_INIT() D_stdIO_P1(BITN2) +#define D_ADC_GAIN0_CLOSE() D_HighR_P1(BITN2) +#define D_ADC_GAIN0_128() D_P12_ON() +#define D_ADC_GAIN0_64() D_P12_OFF() + + +#define D_ADC_PDWN_INIT() D_stdIO_P1(BITN1) +#define D_ADC_PDWN_CLOSE() D_HighR_P1(BITN1) +#define D_ADC_PD_WACKUP() D_P11_ON() //唤醒时间至少5.6ms +#define D_ADC_POWERDOWN() D_P11_OFF() ///持续26us以上 #define D_ADS1213_GAIN_64 64 diff --git a/source/bsp/bsp_led.c b/source/bsp/bsp_led.c index 074f6d0..5ed294c 100644 --- a/source/bsp/bsp_led.c +++ b/source/bsp/bsp_led.c @@ -13,13 +13,13 @@ void L0_board_init(unsigned char onf) { /// SWITCH_INIT(); /// LED1_INIT(); - D_LED2_INIT(); + // D_LED2_INIT(); }else { /// SWITCH_OFF(); /// LED1_OFF(); - D_LED2_OFF(); + // D_LED2_OFF(); } } diff --git a/source/msp/uart/msp_UART2.c b/source/msp/uart/msp_UART2.c index 1ffa508..f7bdf6e 100644 --- a/source/msp/uart/msp_UART2.c +++ b/source/msp/uart/msp_UART2.c @@ -74,28 +74,19 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 #if(MainFre_5M == D_sys_MainFre) #elif(MainFre_22M == D_sys_MainFre) #if(BRT_115200 == D_UART2_BRT) - void L0_uart2_init(void) //115200bps@22.1184MHz + void L0_uart2_init(void) /// void UartInit(void) //115200bps@22.1184MHz { - S2CON = 0x50; //8位数据,可变波特率 - AUXR &= 0xFB; //定时器时钟12T模式 - T2L = 0xFC; //设置定时初始值 - T2H = 0xFF; //设置定时初始值 - AUXR |= 0x10; //定时器2开始计时 + S2CON = 0x50; //8位数据,可变波特率 + AUXR &= 0xFB; //定时器时钟12T模式 + T2L = 0xFC; //设置定时初始值 + T2H = 0xFF; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 } #elif(BRT_460800 == D_UART2_BRT) #elif(BRT_921600 == D_UART2_BRT) #elif(BRT_19200 == D_UART2_BRT) - #elif(BRT_9600== D_UART2_BRT) - void L0_uart2_init(void) //9600bps@22.1184MHz - { - S2CON = 0x50; //8位数据,可变波特率 - AUXR &= 0xFB; //定时器时钟12T模式 - T2L = 0xD0; //设置定时初始值 - T2H = 0xFF; //设置定时初始值 - AUXR |= 0x10; //定时器2开始计时 - } #else///9600 #endif//D_sys_MainFre) @@ -158,8 +149,8 @@ void L0_uart2_buf_init(void) D_stdIO_P1(BITN0); L0_uart2_init(); - L0_uart2_IntRIClear(); - L0_uart2_IntTIClear(); + L0_uart2_IntRIClear(); + L0_uart2_IntTIClear(); D_UART2_ES_INT(1); //打开串口中断 #if (D_UART2_485_TYPE != TYPE_485_NONE) diff --git a/source/msp/uart/msp_UART2.h b/source/msp/uart/msp_UART2.h index 553c93d..911c9f0 100644 --- a/source/msp/uart/msp_UART2.h +++ b/source/msp/uart/msp_UART2.h @@ -68,14 +68,15 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 #define L0_uart2_set(x) (S2BUF = x) //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -// extern void L0_uart2_init(void); + extern void L0_uart2_buf_init(void); + /////extern void L1_uart2_sendArray(U8 * buf, U16 len); #define L0_uart2_uc(X) L0_uartN_uc(D_UART2,X) #define L0_uart2_us(X) L0_uartN_us(D_UART2,X) #define L0_uart2_ul(X) L0_uartN_ul(D_UART2,X) -#define L0_uart2_0d0a() L0_uartN_0d0a(1) +#define L0_uart2_0d0a() L0_uartN_0d0a(0) #define L0_uart2_uchex(X) L0_uartN_uchex(D_UART2,X) #define L0_uart2_ushex(X) L0_uartN_ushex(D_UART2,X) #define L0_uart2_ulhex(X) L0_uartN_ulhex(D_UART2,X) diff --git a/source/msp/uart/msp_uart1.h b/source/msp/uart/msp_uart1.h index 0f8ede3..c1f6679 100644 --- a/source/msp/uart/msp_uart1.h +++ b/source/msp/uart/msp_uart1.h @@ -59,6 +59,7 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 //#include "../tpc/tpc_x.h" #define D_UART1_RS_EN(x) REN = (x) + #define D_uart1_ES_INT(x) ES = (x) #define L0_uart1_IntRI() (RI)//BITN_G(SCON,U0RI) #define L0_uart1_IntTI() (TI)//BITN_G(SCON,U0TI) diff --git a/source/msp/uart/msp_uartN.c b/source/msp/uart/msp_uartN.c index 9c72faa..3233ed5 100644 --- a/source/msp/uart/msp_uartN.c +++ b/source/msp/uart/msp_uartN.c @@ -149,7 +149,7 @@ void L0_uartN_485(U8 uartx,U8 x) switch(uartx) { case 0: - // D_UART1_485_RX(); + D_UART1_485_RX(); break; case 1: break; @@ -165,7 +165,7 @@ void L0_uartN_485(U8 uartx,U8 x) switch(uartx) { case 0: - // D_UART1_485_TX(); + D_UART1_485_TX(); break; case 1: break; @@ -186,7 +186,7 @@ void L0_uartN_Array(U8 uartx,void *buf,U16 len) L0_waitFree_uartN(uartx); - //L0_uartN_485(uartx,D_485S); + L0_uartN_485(uartx,D_485S); ts_Usend[uartx].ok = D_ready; ts_Usend[uartx].over = 0; ts_Usend[uartx].now = 1; diff --git a/source/tpc/tpc_x.h b/source/tpc/tpc_x.h index dfb3a9c..f97af20 100644 --- a/source/tpc/tpc_x.h +++ b/source/tpc/tpc_x.h @@ -43,12 +43,6 @@ typedef struct #define TS_RS485_BUF_MAX_LEN 16 - -// AA 02 10 00 02 A3 B4 33 查询 -// AA 02 20 00 03 00 00 00 6C 校准第0个点 00kg -// AA 02 20 00 03 01 00 64 6C 校准第1个点 20kg -// AA 02 20 00 03 02 02 BC 6C 校准第2个点 40kg -// AA 02 30 00 00 33 清零 typedef struct {//8byte vU8 filter;