Browse Source

fix: 条件.gitignore文件

weight-flt
Zhangwen 10 months ago
parent
commit
88372dc415
  1. 34
      .gitignore
  2. 75
      keilp/stcTTSS2_W5.uvguix.Administrator
  3. 255
      out/STARTUP.lst
  4. BIN
      out/STARTUP.obj
  5. 1
      out/TTSS_task.__i
  6. 326
      out/TTSS_task.lst
  7. BIN
      out/TTSS_task.obj
  8. 1
      out/TTSS_tick.__i
  9. 204
      out/TTSS_tick.lst
  10. BIN
      out/TTSS_tick.obj
  11. 1
      out/TTSS_time_stc.__i
  12. 126
      out/TTSS_time_stc.lst
  13. BIN
      out/TTSS_time_stc.obj
  14. 434
      out/app_config.lst
  15. BIN
      out/app_config.obj
  16. 614
      out/app_weight.lst
  17. BIN
      out/app_weight.obj
  18. 357
      out/asp_lowpower.lst
  19. BIN
      out/asp_lowpower.obj
  20. 789
      out/asp_schain.lst
  21. BIN
      out/asp_schain.obj
  22. 1
      out/bsp_config.__i
  23. 52
      out/bsp_config.lst
  24. BIN
      out/bsp_config.obj
  25. 1
      out/bsp_cs1232.__i
  26. 369
      out/bsp_cs1232.lst
  27. BIN
      out/bsp_cs1232.obj
  28. 1
      out/bsp_led.__i
  29. 176
      out/bsp_led.lst
  30. BIN
      out/bsp_led.obj
  31. 78
      out/c_delay.lst
  32. BIN
      out/c_delay.obj
  33. 1926
      out/c_lib.lst
  34. BIN
      out/c_lib.obj
  35. 1
      out/debug_drv.__i
  36. 457
      out/debug_drv.lst
  37. BIN
      out/debug_drv.obj
  38. 1
      out/main.__i
  39. 166
      out/main.lst
  40. BIN
      out/main.obj
  41. 1
      out/msp_adc.__i
  42. 281
      out/msp_adc.lst
  43. BIN
      out/msp_adc.obj
  44. 1
      out/msp_eeprom.__i
  45. 280
      out/msp_eeprom.lst
  46. BIN
      out/msp_eeprom.obj
  47. 1
      out/msp_iicMx.__i
  48. 885
      out/msp_iicMx.lst
  49. BIN
      out/msp_iicMx.obj
  50. 1
      out/msp_time2.__i
  51. 77
      out/msp_time2.lst
  52. BIN
      out/msp_time2.obj
  53. 1
      out/msp_uart1.__i
  54. 333
      out/msp_uart1.lst
  55. BIN
      out/msp_uart1.obj
  56. 1
      out/msp_uartN.__i
  57. 454
      out/msp_uartN.lst
  58. BIN
      out/msp_uartN.obj
  59. 1
      out/stc_8_delay.__i
  60. 220
      out/stc_8_delay.lst
  61. BIN
      out/stc_8_delay.obj
  62. BIN
      out/stcweight
  63. BIN
      out/stcweight.SBR
  64. 34
      out/stcweight.build_log.htm
  65. 885
      out/stcweight.hex
  66. 26
      out/stcweight.lnp
  67. 7658
      out/stcweight.map
  68. 1
      out/tpc_road.__i
  69. 345
      out/tpc_road.lst
  70. BIN
      out/tpc_road.obj

34
.gitignore

@ -0,0 +1,34 @@
### 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/

75
keilp/stcTTSS2_W5.uvguix.Administrator

File diff suppressed because one or more lines are too long

255
out/STARTUP.lst

@ -1,255 +0,0 @@
A51 MACRO ASSEMBLER STARTUP 06/11/2024 15:41:11 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 <h> 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 ; <o> IDATALEN: IDATA memory size <0x0-0x100>
28 ; <i> Note: The absolute start-address of IDATA memory is always 0
29 ; <i> The IDATA space overlaps physically the DATA and BIT areas.
0080 30 IDATALEN EQU 80H
31 ;
32 ; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
33 ; <i> The absolute start address of XDATA memory
0000 34 XDATASTART EQU 0
35 ;
36 ; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
37 ; <i> The length of XDATA memory in bytes.
0320 38 XDATALEN EQU 800
39 ;
40 ; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
41 ; <i> The absolute start address of PDATA memory
0000 42 PDATASTART EQU 0H
43 ;
44 ; <o> PDATALEN: PDATA memory size <0x0-0xFF>
45 ; <i> The length of PDATA memory in bytes.
0000 46 PDATALEN EQU 0H
47 ;
48 ;</h>
49 ;------------------------------------------------------------------------------
50 ;
51 ;<h> Reentrant Stack Initialization
52 ;
53 ; The following EQU statements define the stack pointer for reentrant
54 ; functions and initialized it:
55 ;
56 ; <h> Stack Space for reentrant functions in the SMALL model.
57 ; <q> IBPSTACK: Enable SMALL model reentrant stack
A51 MACRO ASSEMBLER STARTUP 06/11/2024 15:41:11 PAGE 2
58 ; <i> Stack space for reentrant functions in the SMALL model.
0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
60 ; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
61 ; <i> Set the top of the stack to the highest location.
0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
63 ; </h>
64 ;
65 ; <h> Stack Space for reentrant functions in the LARGE model.
66 ; <q> XBPSTACK: Enable LARGE model reentrant stack
67 ; <i> Stack space for reentrant functions in the LARGE model.
0001 68 XBPSTACK EQU 1 ; set to 1 if large reentrant is used.
69 ; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
70 ; <i> Set the top of the stack to the highest location.
0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
72 ; </h>
73 ;
74 ; <h> Stack Space for reentrant functions in the COMPACT model.
75 ; <q> PBPSTACK: Enable COMPACT model reentrant stack
76 ; <i> Stack space for reentrant functions in the COMPACT model.
0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
78 ;
79 ; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
80 ; <i> Set the top of the stack to the highest location.
0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
82 ; </h>
83 ;</h>
84 ;------------------------------------------------------------------------------
85 ;
86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
87 ; <e>Compact Model Page Definition
88 ;
89 ; <i>Define the XDATA page used for PDATA variables.
90 ; <i>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 ; <o> PPAGE number <0x0-0xFF>
96 ; <i> uppermost 256-byte address of the page used for PDATA variables.
0000 97 PPAGE EQU 0
98 ;
99 ; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
100 ; <i> most 8051 variants use P2 as uppermost address byte
00A0 101 PPAGE_SFR DATA 0A0H
102 ;
103 ; </e>
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 06/11/2024 15:41:11 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 ;<h> Code Banking
189 ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
A51 MACRO ASSEMBLER STARTUP 06/11/2024 15:41:11 PAGE 4
190
195 ;</h>
001D 020000 F 196 LJMP ?C_START
197
198 END
A51 MACRO ASSEMBLER STARTUP 06/11/2024 15:41:11 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)

BIN
out/STARTUP.obj

Binary file not shown.

1
out/TTSS_task.__i

@ -1 +0,0 @@
"..\source\ctask\TTSS_task.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 PRINT(..\out\TTSS_task.lst) TABS (2) OBJECT(..\out\TTSS_task.obj)

326
out/TTSS_task.lst

@ -1,326 +0,0 @@
C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 PAGE 6
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)

BIN
out/TTSS_task.obj

Binary file not shown.

1
out/TTSS_tick.__i

@ -1 +0,0 @@
"..\source\ctask\TTSS_tick.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 PRINT(..\out\TTSS_tick.lst) TABS (2) OBJECT(..\out\TTSS_tick.obj)

204
out/TTSS_tick.lst

@ -1,204 +0,0 @@
C51 COMPILER V9.54 TTSS_TICK 09/06/2024 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 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)

BIN
out/TTSS_tick.obj

Binary file not shown.

1
out/TTSS_time_stc.__i

@ -1 +0,0 @@
"..\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\tpc;..\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)

126
out/TTSS_time_stc.lst

@ -1,126 +0,0 @@
C51 COMPILER V9.54 TTSS_TIME_STC 09/06/2024 14:31:12 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 14:31:12 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)

BIN
out/TTSS_time_stc.obj

Binary file not shown.

434
out/app_config.lst

@ -1,434 +0,0 @@
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 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 14:31:10 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;i<D_ch_max_num;i++)
90 {
91 G.weight[i] = 0;
92 }
93 G.allweight = 0;
94 G._total_weight = 0;
95 G._total_zweight = 0;
96
97 //L3_eeprom_read_param();
98 }
99
100 */
101
102 ///出厂参数 向 保存参数
103 void L3_S(void)
104 {
105 1
106 1
107 1 /// Lc_buf_copy_uc((u8 *)&R.sd,(u8 *)&iapData,20);
108 1 //写入eeprom
109 1 /// if(L1_eeprom_write((U8*)&iapData,sizeof(TS_GlobalRegisterSave_)) == 0)
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 3
110 1 {
111 2 // L0_uart0_sendstr("e2p write success");
112 2 }
113 1 }
114
115 ////把当前任务中的数据放入到保存参数(一般是eeprom
116 void L2_para_2_S(TS_para_ *t)
117 {////void L0_Iap_Program_array(vU16 addr,U8 *buf,U8 len)
118 1 /// L0_Iap_Program_array(t->add,);
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<MCU_ID_LEN;i++)
155 {
156 L0_uart0_uchex(G.e.mcu_id[i]);
157 }
158
159 //2.读取eeprom中的加密信息
160 L0_Iap_Read_array(EEP_ENC_ADDR, (U8*)&eep_enc, MCU_ID_KEY_LEN + MCU_ID_LEN + 2);
161 crc16(crc,(U8*)&eep_enc,MCU_ID_KEY_LEN + MCU_ID_LEN);
162 if(eep_enc.crc[0] != crc[0] || eep_enc.crc[1] != crc[1])
163 {
164 L0_uart0_uc('-');
165 return 0;
166 }
167
168 //3.根据mcu_id和enc_key计算enc_val
169 enc_key = ((U32)eep_enc.enc_key[0] << 24) | (eep_enc.enc_key[1] << 16) | (eep_enc.enc_key[2] << 8) |(eep_
-enc.enc_key[3] << 0);
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 4
170 Lc_encrypt_id((U8*)G.e.mcu_enc_id, (U8*)G.e.mcu_id, enc_key, MCU_ID_LEN);
171
172 //4.判断enc_val是否一致
173 for(i=0;i<MCU_ID_KEY_LEN;i++)
174 {
175 if(G.e.mcu_enc_id[i] != eep_enc.enc_val[i])
176 {
177 return 0;
178 }
179 }
180 return 1;
181 }
182
183
184 **********/
185
186
187
188 #if 0
TS_EEPROM_ENC_ eep_enc;
void L0_reg_reset()
{/******
//R.p.reset = 0;
R.p.adc_ch_status = ADC_status_ch1_Ready | ADC_status_ch2_Ready | ADC_status_ch3_Ready | ADC_status_ch4_R
-eady; //修改采集通道
R.p.slaver_id = D_UART0_485_SLAVER_ID;
R.zero = 0;
R.status_eep_save = 0;
// R.reset = 0;
R.p.weight_max = 150; //500kg
R.p.lmd = 15; //2mv/v
R.p.adc_blur_mid = 1;
R.p.adc_blur_avg = 6;
R.p.adc_blur_shift[0] = 0;
R.p.adc_blur_shift[1] = 2;
R.p.adc_blur_shift[2] = 4;
R.p.adc_blur_threshold[0] = 1600; //1.6kg
R.p.adc_blur_threshold[1] = 700; //0.7kg
*********/
///L3_reg_2_iap();
}
void L0_reg_init(void)
{
R.sd.rev0x55aa55aa = 0x55aa55aa;
//R.total_weight = R.total_zweight = 0;
///L0_reg_reset();
L4_iap_2_reg();
}
S32 L3_count_std_weight(S32 weight)
{
U8 i = 0;
U16 ratio = 100;
weight = (weight - G._total_zweight)/10;
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 5
for(i=0;i<D_weight_std_num;i++)
{
if(R.p.weight_std[i].weight_range == 0 || (R.p.weight_std[i].weight_range * 100) >= weight)
{
break;
}
}
if(i<D_weight_std_num && R.p.weight_std[i].ratio != 0)
{
ratio = R.p.weight_std[i].ratio;
}
return (S32)(weight * 1.0 * ratio / 100) ;
}
#endif
245
246
247
248 void L0_main_lowp(void)
249 {//
250 1
251 1
252 1 BITN_1(P_SW2 ,BITN7);USBCON = 0;
253 1
254 1 D_stdIO_P0_ALL();
255 1
256 1 D_stdIO_P1_ALL();
257 1 D_stdIO_P2_ALL();
258 1 D_stdIO_P3_ALL();
259 1 D_stdIO_P4_ALL();
260 1 D_stdIO_P5_ALL();
261 1
262 1
263 1
264 1
265 1
266 1 WKTCL = 0xff; //设定掉电唤醒时钟约为 1 秒钟 WKTCH = 0x87;
267 1
268 1 WKTCH = 0x87;
269 1 ///SetWakeUpTime(10000);
270 1
271 1 D_P24_REV();
272 1 Lc_delay_ms(500);
273 1 D_P24_REV();
274 1 Lc_delay_ms(500);
275 1 D_P24_REV();
276 1 Lc_delay_ms(500);
277 1
278 1 D_P24_ON();
279 1 P_SW2|=0x80;
280 1
281 1 P0PU = 0;
282 1 P1PU = 0;
283 1 P2PU = 0;
284 1 P3PU = 0;
285 1 P4PU = 0;
286 1 P5PU = 0;
287 1
288 1 P0SR =0xff;
289 1 P1SR =0xff;
290 1 P2SR =0xff;
291 1 P3SR =0xff;
292 1 P4SR =0xff;
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 6
293 1 P5SR =0xff;
294 1
295 1 P0DR =0xff;
296 1 P1DR =0xff;
297 1 P2DR =0xff;
298 1 P3DR =0xff;
299 1 P4DR =0xff;
300 1 P5DR =0xff;
301 1
302 1
303 1 P0IE =0;
304 1 P1IE =0;
305 1 P2IE =0;
306 1 P3IE =0;
307 1 P4IE =0;
308 1 P5IE =0;
309 1
310 1 USBCON = 0;
311 1 ///USBCON = 0x80;
312 1
313 1
314 1
315 1
316 1 D_HighR_P0_ALL();
317 1 D_HighR_P1_ALL();
318 1 D_HighR_P2_ALL();
319 1 D_HighR_P3_ALL();
320 1 D_HighR_P4_ALL();
321 1 D_HighR_P5_ALL();
322 1 P_SW2 = 0x80;
323 1 // XOSCCR =0;
324 1 ///HIRCCR = 0;
325 1 /*****
326 1
327 1 IRC32KCR = 0x80; //启动内部32K IRC
328 1 while (!(IRC32KCR & 1)); //等待时钟稳定
329 1 CLKDIV = 0x00; //时钟不分频
330 1 CLKSEL = 0x03; //选择内部32K
331 1 P_SW2 = 0x00;
332 1
333 1
334 1 D_stdIO_P0_ALL();
335 1 D_stdIO_P1_ALL();
336 1 D_stdIO_P2_ALL();
337 1 D_stdIO_P3_ALL();
338 1 D_stdIO_P4_ALL();
339 1 D_stdIO_P5_ALL();
340 1
341 1 P0 = 0xff;
342 1 P1 = 0xff;
343 1 P2 = 0xff;
344 1 P3 = 0xff;
345 1 P4 = 0xff;
346 1 P5 = 0xff;
347 1
348 1
349 1
350 1 *******/
351 1 RSTCFG=0;//没有变化43ua 41ua
352 1
353 1 while(9)
354 1 {
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 7
355 2
356 2 D_HighR_P2_ALL();
357 2
358 2
359 2
360 2
361 2
362 2 _nop_();
363 2 _nop_();
364 2
365 2 PCON = 0x02; ////2222 //MCU进入掉电模式
366 2 ///D_LPCD_INT_CLOSE(); 对掉电唤醒后有一个中断进来没有效果
367 2 _nop_();
368 2 _nop_(); _nop_();
369 2 _nop_(); _nop_();
370 2 _nop_();
371 2 /// D_P24_REV();
372 2
373 2 D_stdIO_P2_ALL();
374 2 D_P24_REV();
375 2
376 2 Lc_delay_ms(300);
377 2 D_P24_REV();
378 2
379 2
380 2 }
381 1
382 1 }
383
384
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 892 ----
CONSTANT SIZE = 36 ----
XDATA SIZE = 54 ----
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. 2 WARNING(S), 0 ERROR(S)

BIN
out/app_config.obj

Binary file not shown.

614
out/app_weight.lst

@ -1,614 +0,0 @@
C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 14:31:09 PAGE 1
C51 COMPILER V9.54, COMPILATION OF MODULE APP_WEIGHT
OBJECT MODULE PLACED IN ..\out\app_weight.obj
COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\app\app_weight.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_weight.lst) TABS(2) OBJECT(..\out\app_weight.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 "app_weight.h"
*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M"
14 #include "app_config.h"
15 #include "debug_drv.h"
16 #include "msp_eeprom.h"
17
18 #define D_0kg 0
19 #define D_20kg 200///0x00c8
20 #define D_85kg 850////0x0352
21
22 /*
23 #define D_Rsensor_out_D_0kg 0x18D9
24 #define D_Rsensor_out_D_20kg 0x1B8B
25 #define D_Rsensor_out_D_85kg 0x244D
26 */
27
28 #define D_Rsensor_out_D_0kg 0x18D9
29 #define D_Rsensor_out_D_20kg 0x1c2c
30 #define D_Rsensor_out_D_85kg 0x26f9
31
32
33
34
35 ///#define D_20kg 190
36 ///cc 2023/04/06--6:41:48 镼踹��孵� 隡䭾��� �寞旿隡䭾��刻��� 蝔见�摨磰砲銝㯄秄�唳旿蝏𤘪�
37
38
39 ///cc 2023/04/06--7:50:26 摨磰砲�眩st_weight.out6����
40 ///cc 2023/04/09--8:11:50 adc�嫣蛹out �牐蛹�唬�weight餈嗘�撅� 撌脩�銝滚���鍂adc嚗蘏dc�����
-颲枏枂out蝏嗘�weight�亙�餈鞟�
41
42 TS_weight_SPara_ ts_weight_SPara =
43 {
44 'W',//0 1 u8 rev1;
45 'E',//1 2 u8 rev2;
46 D_0kg ,D_Rsensor_out_D_0kg,
47 D_20kg,D_Rsensor_out_D_20kg,
48 D_85kg,D_Rsensor_out_D_85kg,
49
50 //2 3 TS_weight_point_ zerows[3]; ///4x3=12 �见極皜�妟�𡒊���㺭, 瘝⊥�皜�妟�𤥁��枂�蹱�憭滚�
C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 14:31:09 PAGE 2
-啣��箏�霈曄蔭銝���,��閬���嗡�摮�
51 'A',//3 4 u8 rev3;
52 ' ',//4 5 u8 rev4;
53
54 };
55 TS_TASK_weight_ tst_weight;
56
57
58 #define D_task_WEIGHT_add 12
59 #define D_task_WEIGHT_CAL 13
60 #define D_task_WEIGHT_get 14
61 #define D_task_WEIGHT_zero 15
62 ///#define D_task_WEIGHT_CAL 124
63
64 #define D_task_WEIGHT_out 45
65 #define D_task_WEIGHT_Sline 11
66 #define D_task_WEIGHT_getADC 22
67 ///#define D_task_WEIGHT_CAL 33
68 ////#define D_task_WEIGHT_Sline
69
70
71
72 void L2_task_weight_init(u8 openclose)
73 {
74 1 if(openclose)
75 1 {
76 2 L0_ADS1213_INIT(D_ADS1213_GAIN_128);
77 2 L2_task_adc_init(0);
78 2 L2_task_adc_init(1);
79 2 L2_task_adc_init(2);
80 2 L2_task_adc_init(3);
81 2
82 2 }else
83 1 {
84 2 tst_weight.pSPara = &ts_weight_SPara;
85 2 }
86 1 /*
87 1 L2_task_adc_SAinit(0,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b);
88 1 L2_task_adc_SAinit(1,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b);
89 1 L2_task_adc_SAinit(2,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b);
90 1 L2_task_adc_SAinit(3,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b);
91 1
92 1
93 1
94 1
95 1 ts_adc_samples[0].offset = S.sd.offset[0];
96 1 ts_adc_samples[1].offset = S.sd.offset[1];
97 1 ts_adc_samples[2].offset = S.sd.offset[2];
98 1 ts_adc_samples[3].offset = S.sd.offset[3];
99 1
100 1
101 1 */
102 1
103 1
104 1 }
105
106 void L3_task_weight_init(void)
107 {
108 1 //�曄內隞餃𦛚�嘥���
109 1 L1_task_reg_clear(&tst_weight.task);
110 1 L3_task_s_go(tst_weight,D_task_init);
111 1 L2_task_weight_init(1);
C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 14:31:09 PAGE 3
112 1 ///Lc_buf_from_const_uc(U8 * d, const U8 * s, U16 num)
113 1 ///tst_weight.pSPara->ts_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�婙�𤤗dc銝剔�颲枏枂 out3
160 3 /************/
161 3 ///cc 2023/04/06--8:9:18 �㗇𥋘雿輻鍂�芯��⊥誘瘜Y瑪
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 14:31:09 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 14:31:09 PAGE 5
232 2 tst_weight.t32a = (vU32)(tst_weight.adc32-S.weight_SPara.ts_WPoint[1].adc);////�匧虾�賢之鈭筯
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 14:31:09 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�對� �臭誑�私ad銝𢠃�蝵桀���
////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 14:31:09 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 撖雷Index(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�對� �臭誑�私ad銝𢠃�蝵桀���
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 14:31:09 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 14:31:09 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 14:31:09 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)

BIN
out/app_weight.obj

Binary file not shown.

357
out/asp_lowpower.lst

@ -1,357 +0,0 @@
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 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 #include "msp_UART2.h"
16
17 #include "debug_drv.h"
18 #include "bsp_config.h"
19 #include "asp_gsensor.h"
20 #include "bsp_moto.h"
21
22 #include "asp_move.h"
23
24 #include "asp_lowpower.h"
25
26 #define D_version_main "7.0"
27
28
29
30 void L0_uart_close(void)
31 {
32 1 L0_uart1_str("\r\nuart1 close");///
33 1 Lc_delay_ms(20);
34 1
35 1 EA = 0;
36 1 D_uart1_ES_INT(0);
37 1 //// D_UART2_ES_INT(0);
38 1 AUXR = 0; //定时器2开始计时
39 1
40 1 ET1 = 0; //禁止定时器%d中断
41 1 TR1 = 0; //定时器1开始计时
42 1 }
43 void L0_uart1_open(void)
44 {//
45 1 L0_uart1_buf_init();//串口初始化//
46 1
47 1 EA = 1;
48 1 L0_uart1_str("\r\nuart1 open");
49 1 }
50 void L0_uart2_open(void)
51 {//
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 2
52 1 //// L0_uart2_buf_init();
53 1 EA = 1;
54 1 L0_uart1_str("\r\nuart2 open");
55 1 }
56
57
58
59 void L0_SetWakeUpTime(u16 SetTime)
60 {
61 1 SetTime = (U16)((32768UL * (U32)SetTime) / 16000); //重装值 = Fwkt/16 * SetTime/1000 = Fwkt * SetT
-ime / 16000
62 1 if(SetTime > 0) SetTime--;
63 1 WKTCL = (u8)SetTime;
64 1 WKTCH = (u8)(SetTime >> 8) | 0x80;
65 1 }
66
67
68 void L0_main_lowp_set(void)
69 {//
70 1 L0_uart_close();
71 1 L0_SetWakeUpTime(10000);///
72 1 BITN_1(P_SW2 ,BITN7);///P_SW2|=0x80;
73 1 ////PCON = 0;
74 1
75 1
76 1 ///0:禁止端口内部的 4.1K 上拉电阻
77 1 ///1:使能端口内部的 4.1K 上拉电阻
78 1 P0PU = 0;
79 1 P1PU = 0;
80 1 P2PU = 0;
81 1 P3PU = 0;
82 1 P4PU = 0;
83 1 P5PU = 0;
84 1
85 1
86 1 ///0:使能端口的施密特触发功能。(上电复位后默认使能施密特触发)
87 1 P0NCS = 0xff;
88 1 P1NCS = 0xff;
89 1 P2NCS = 0xff;
90 1 P3NCS = 0xff;
91 1 P4NCS = 0xff;
92 1 P5NCS = 0xff;
93 1
94 1
95 1
96 1
97 1
98 1 ////1:电平转换速度慢,相应的上下冲比较小
99 1 P0SR =0xff;
100 1 P1SR =0xff;
101 1 P2SR =0xff;
102 1 P3SR =0xff;
103 1 P4SR =0xff;
104 1 P5SR =0xff;
105 1
106 1 ///1:一般驱动能力
107 1 P0DR =0xff;
108 1 P1DR =0xff;
109 1 P2DR =0xff;
110 1 P3DR =0xff;
111 1 P4DR =0xff;
112 1 P5DR =0xff;
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 3
113 1
114 1 ///0:禁止数字信号输入。若 I/O 被当作比较器输入口、ADC 输入口、触摸按键输入
-口或者为外部晶 振接入脚等模拟口时,
115 1 ///进入时钟停振模式前,必须设置为 0,否则会有额外的耗电。
116 1 ///1:使能数字信号输入。若 I/O 被当作数字口时,必须设置为 1,否 MCU 无法读取
-外部端口的电平。
117 1 P0IE =0;
118 1 P1IE =0;
119 1 P2IE =0;
120 1 P3IE =0;
121 1 P4IE =0;
122 1 P5IE =0;
123 1
124 1 BITN_1(P_SW2 ,BITN7);USBCON = 0;
125 1 ////USBCON = 0;
126 1 ///USBCON = 0x80;
127 1
128 1 ADC_CONTR = 0; ////建议进入空闲模式和掉电模式前将 ADC 电源关闭,以降低功耗
129 1 RSTCFG = 0;//没有变化43ua 41ua 低压复位控制位
130 1
131 1 D_HighR_P0_ALL();
132 1 D_HighR_P1_ALL();
133 1 D_HighR_P2_ALL();
134 1 D_HighR_P3_ALL();
135 1 D_HighR_P4_ALL();
136 1 D_HighR_P5_ALL();/***********
137 1
138 1 P3 = 0;
139 1
140 1
141 1 P0 = 0;
142 1 P1 = 0;
143 1 P2 = 0;
144 1 P4 = 0;
145 1 P5 = 0;
146 1
147 1
148 1 *********/
149 1
150 1 P0 = 0xff;
151 1 P1 = 0xff;
152 1 P2 = 0xff;
153 1 P4 = 0xff;
154 1 P5 = 0xff;
155 1
156 1 D_stdIO_P4(BITN1);
157 1 ///D_OpenD_P4(BITN1);
158 1 D_P41_ON();
159 1
160 1
161 1 /*****
162 1
163 1 // XOSCCR =0;
164 1 ///HIRCCR = 0;
165 1 IRC32KCR = 0x80; //启动内部32K IRC
166 1 while (!(IRC32KCR & 1)); //等待时钟稳定
167 1 CLKDIV = 0x00; //时钟不分频
168 1 CLKSEL = 0x03; //选择内部32K
169 1 P_SW2 = 0x00;
170 1
171 1 P45
172 1 P27
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 4
173 1 P26
174 1 P44
175 1 P43
176 1 p13
177 1 P23 switch2 限位开关
178 1 P40 SWITCH1 限位开关
179 1
180 1 P41 SW_CAL 电源分压电阻 =1 关闭
181 1 *******/
182 1
183 1 }
184
185 /*
186
187 void L2_main_version(u8 d)
188 {
189
190 printfs(D_version_main);
191 L1_uartD_uc(d);
192 printfs(D_BOARD_NAME);
193 printfs(__DATE__);
194 printfs(__TIME__);
195
196
197 }
198 */
199
200
201 void L1_main_lowp_test(void)
202 {//
203 1
204 1 while(9)
205 1 {
206 2 /// L2_gsensor_init(0);
207 2 L0_main_lowp_set();
208 2 _nop_();
209 2 _nop_();
210 2
211 2 //// L0_uart_close();
212 2
213 2 PCON = 0x02; ////2222 //MCU进入掉电模式
214 2 ///D_LPCD_INT_CLOSE(); 对掉电唤醒后有一个中断进来没有效果
215 2 _nop_();
216 2 _nop_(); _nop_();
217 2 _nop_(); _nop_();
218 2 _nop_();
219 2
220 2 L0_uart1_open();
221 2 L0_uart2_open();
222 2 /// L2_main_version(0);
223 2
224 2 /// L2_gsensor_init(1);
225 2 }
226 1
227 1 }
228
229
230 void L3_test_lp(u8 filter)//// ON listen function
231 {
232 1 if(filter == pd->filter)
233 1 {///filter num d1 d2 d3 ....dn
234 2 //// FD 08 11 22 33 44 55 66 77 88
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 5
235 2 ///printf("\r\nDdebug:F1 R1 R2 R3 R4 ocr FD->");
236 2 switch (pd->ocr)
237 2 {
238 3 case 0x22: ///'s'
239 3 ///FX R1 R2 R3 R4 ocr
240 3 ///F1 m R2 R3 R4 22
241 3
242 3 // L0_moto_run(pd->R1);
243 3 printf1("22: moto=(%X)",(int)pd->R1);
244 3 break;
245 3
246 3 default:
247 3 printfs(" pp error\r\n ");
248 3
249 3 break;
250 3 };
251 2
252 2 printfs("333");
253 2 }
254 1 }
255 /***
256
257 case 0x23: ///'s'
258 ///FX R1 R2 R3 R4 ocr
259 ///F1 m R2 R3 R4 22
260 if(pd->R1)
261 {
262 D_BUZ_OPEN();
263
264 }else
265 {
266 D_BUZ_OFF();
267
268 }
269 printf("22: moto=(%X)",(int)pd->R1);
270 break;
271
272
273 case 0x24: ///'s'
274 ///F1 m 23 56 64 22
275 ts_task_move.loc_angle[0] = pd->R1;
276 ts_task_move.loc_angle[1] = pd->R2;
277 ts_task_move.loc_angle[2] = pd->R3;
278 ts_task_move.loc_angle[3] = pd->R4;
279 L3_task_s_go(ts_task_move,D_task_move_init);
280 printf("move: %d %d %d %d )",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->R4);
281 break;
282 case 0x25: ///'s'
283 ///F1 m 23 56 64 22
284 ts_task_move.loc_angle[0] = pd->R1;
285 ts_task_move.loc_angle[1] = pd->R2;
286 ts_task_move.loc_angle[2] = pd->R3;
287 ts_task_move.loc_angle[3] = pd->R4;
288 L3_task_s_go(ts_task_move,D_task_move_init);
289 ts_task_move.loc_now =D_2uc_u16(pd->R1, pd->R2);
290 printf("move: loc_now %XH %d )",(int)ts_task_move.loc_now,(int)ts_task_move.loc_now);
291 break;
292
293 case 0x26: ///'s'
294 ///F1 m 23 56 64 22
295 ts_task_move.loc_angle[0] = pd->R1;
296 if(pd->R1)
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 6
297 {
298 ts_task_move.loc_now ++;
299 }
300 else
301 {
302 ts_task_move.loc_now --;
303 }
304 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);
305 break;
306
307
308
309
310 ****/
311
312
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)

BIN
out/asp_lowpower.obj

Binary file not shown.

789
out/asp_schain.lst

@ -1,789 +0,0 @@
C51 COMPILER V9.54 ASP_SCHAIN 09/06/2024 14:31:10 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逧�dc蛟シ�碁€画叫霑吩クェ譏ッ蝗�荳コ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 14:31:10 PAGE 2
52
53 'A',//0 1 u8 rev1;
54 0,//2 3 u8 ch;
55 D_ch1_wantline,///vU16 wantline; ///蝗コ螳夂噪遑ャ莉カ蜿よ焚�井セ句ヲらァー驥堺クュ逧�0kg�悟視蜉帑クュ逧�0蜴句鴨�
-画慮諠ウ隕∬セ灘�逧�dc逧�€シ
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蜴句鴨�
-画慮諠ウ隕∬セ灘�逧�dc逧�€シ
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蜴句鴨�
-画慮諠ウ隕∬セ灘�逧�dc逧�€シ
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蜴句鴨�
-画慮諠ウ隕∬セ灘�逧�dc逧�€シ
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 14:31:10 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 14:31:10 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 14:31:10 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 窶披€琶nit荳ュ�悟㍼蟆醍ウサ扈溷星蜉ィ逧�慮髣エ
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 14:31:10 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 14:31:10 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 14:31:10 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;i<s->max;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 14:31:10 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;i<s->max;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 14:31:10 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 14:31:10 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)//蛻�困遘サ菴肴サ、豕「譌カ隹�紛蜈カ莉匁サ、豕「逧ТUM
{
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 14:31:10 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 14:31:10 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)

BIN
out/asp_schain.obj

Binary file not shown.

1
out/bsp_config.__i

@ -1 +0,0 @@
"..\source\bsp\TTSSbsp\bsp_config.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 PRINT(..\out\bsp_config.lst) TABS (2) OBJECT(..\out\bsp_config.obj)

52
out/bsp_config.lst

@ -1,52 +0,0 @@
C51 COMPILER V9.54 BSP_CONFIG 09/06/2024 14:31:12 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)

BIN
out/bsp_config.obj

Binary file not shown.

1
out/bsp_cs1232.__i

@ -1 +0,0 @@
"..\source\bsp\bsp_cs1232.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 PRINT(..\out\bsp_cs1232.lst) TABS (2) OBJECT(..\out\bsp_cs1232.obj)

369
out/bsp_cs1232.lst

@ -1,369 +0,0 @@
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 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 14:31:12 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)

BIN
out/bsp_cs1232.obj

Binary file not shown.

1
out/bsp_led.__i

@ -1 +0,0 @@
"..\source\bsp\bsp_led.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 PRINT(..\out\bsp_led.lst) TABS (2) OBJECT(..\out\bsp_led.obj)

176
out/bsp_led.lst

@ -1,176 +0,0 @@
C51 COMPILER V9.54 BSP_LED 09/06/2024 14:31:12 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 14:31:12 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 14:31:12 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)

BIN
out/bsp_led.obj

Binary file not shown.

78
out/c_delay.lst

@ -1,78 +0,0 @@
C51 COMPILER V9.54 C_DELAY 06/11/2024 15:41:13 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 06/11/2024 15:41:13 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)

BIN
out/c_delay.obj

Binary file not shown.

1926
out/c_lib.lst

File diff suppressed because it is too large

BIN
out/c_lib.obj

Binary file not shown.

1
out/debug_drv.__i

@ -1 +0,0 @@
"..\source\debug\debug_drv.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 PRINT(..\out\debug_drv.lst) TABS (2) OBJECT(..\out\debug_drv.obj)

457
out/debug_drv.lst

@ -1,457 +0,0 @@
C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 14:31:13 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)////蜿鷹€.2 11 22 33逧�欠莉、蜷� 隗」譫仙ョ轡2�檎サ吩クイ蜿」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 14:31:13 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 ////騾夊ソ㌧ebug荳イ蜿」 騾丈シ�蜊剰ョョ
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 14:31:13 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蜊剰ョョ�帑セ句ヲ�D蠑€螟エ譏ッ邉
-サ扈歸ebug 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 14:31:13 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 14:31:13 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 14:31:13 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 隸サ蜿睦eg1蝨ー蝮€荳ュ逧�um荳ェ謨ー�ス?
C51 COMPILER V9.54 DEBUG_DRV 09/06/2024 14:31:13 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 14:31:13 PAGE 8
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)

BIN
out/debug_drv.obj

Binary file not shown.

1
out/main.__i

@ -1 +0,0 @@
"..\source\app\main.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 PRINT(..\out\main.lst) TABS (2) OBJECT(..\out\main.obj)

166
out/main.lst

@ -1,166 +0,0 @@
C51 COMPILER V9.54 MAIN 09/06/2024 14:31:24 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 14:31:24 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 // D_LED2_ON();
62 1
63 1 TTSS_run_times(6)
64 1 {
65 2 D_LED1_REV();
66 2 // D_LED2_REV();
67 2 Lc_delay_ms(300);
68 2 }
69 1 }
70
71 void L0_main_init(void)
72 {
73 1 int r = 0;
74 1 Lc_delay_ms(200);
75 1 L0_main_initled();
76 1 CLKDIV = 0;////不分频,使用focs
77 1
78 1 L0_uart1_open();
79 1
80 1 L3_debug_drv_init();
81 1 L1_task_tick_init();
82 1 L0_timer0_Init();
83 1 ET0 = 1;
84 1
85 1 printf1("\r\nD_sys_MainFre %ld",D_sys_MainFre);
86 1
87 1 r = L3_S_init();
88 1 printf1("\r\nL3_S_init %d",r);
89 1 }
90
91 //===============================================
92 //主函数
93 //===============================================
94 void main(void)
95 {
96 1 u16 a= 0;
97 1 char d[9]={0xab};
98 1
99 1 L0_main_init();
100 1 L3_task_weight_init();
101 1
102 1 TTSS_run_every_init(s_nos_tick.stamp,10);
103 1
104 1 printfs("\r\3 main while13\r\n");
105 1
106 1 while(1)
107 1 {
108 2 if(1 == s_nos_tick.t1s_heartbeat)///
109 2 {
110 3 s_nos_tick.t1s_heartbeat = 0;
111 3 //L1_uartD_uc('.');
112 3 // D_LED2_REV();
C51 COMPILER V9.54 MAIN 09/06/2024 14:31:24 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 = 636 ----
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)

BIN
out/main.obj

Binary file not shown.

1
out/msp_adc.__i

@ -1 +0,0 @@
"..\source\msp\msp_adc.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 PRINT(..\out\msp_adc.lst) TABS (2) OBJECT(..\out\msp_adc.obj)

281
out/msp_adc.lst

@ -1,281 +0,0 @@
C51 COMPILER V9.54 MSP_ADC 09/06/2024 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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)

BIN
out/msp_adc.obj

Binary file not shown.

1
out/msp_eeprom.__i

@ -1 +0,0 @@
"..\source\msp\msp_eeprom.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 PRINT(..\out\msp_eeprom.lst) TABS (2) OBJECT(..\out\msp_eeprom.obj)

280
out/msp_eeprom.lst

@ -1,280 +0,0 @@
C51 COMPILER V9.54 MSP_EEPROM 09/06/2024 14:31:11 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 14:31:11 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 14:31:11 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;i<len;i++)
162 1 {
163 2 L0_Iap_Program(addr + i,buf[i]);
164 2 }
165 1 }
166
167 void L0_Iap_Read_array(vU16 addr,U8 *buf,U8 len)
168 {
169 1 U8 i = 0;
170 1 for(i = 0;i < len;i ++)
171 1 {
172 2 buf[i] = L0_Iap_Read(addr + i);
C51 COMPILER V9.54 MSP_EEPROM 09/06/2024 14:31:11 PAGE 4
173 2 }
174 1 /// L1_uartD_uchexArray(buf,len);
175 1 }
176
177 /****************************************************
178
179 U_F16 uf_ee_add;
180
181 //// AX CMD R2 R3 R4
182 /// Ae 01 01 03 04
183 ///L3_GC032A_fun
184 // bsp/bsp_debug
185 void L1_Iap_main(void)
186 {
187
188 int i;char m;
189 L0_Iap_Erase(0);
190
191
192 for(i = 0;i <100; i++)
193 {
194 L0_Iap_Program(i,i);
195 }
196 for(i = 0;i <200; i++)
197 {
198 m = L0_Iap_Read(i);
199 L0_uart0_uc(m);
200 }
201
202 /// while(1);
203
204
205
206 }
207
208 ///
209 void L3_eeprom_fun(U8 *pPara)
210 {
211 TS_P_debug *p = pPara;
212 switch(p->cmd)
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 14:31:11 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)

BIN
out/msp_eeprom.obj

Binary file not shown.

1
out/msp_iicMx.__i

@ -1 +0,0 @@
"..\source\msp\msp_iicMx.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 PRINT(..\out\msp_iicMx.lst) TABS (2) OBJECT(..\out\msp_iicMx.obj)

885
out/msp_iicMx.lst

@ -1,885 +0,0 @@
C51 COMPILER V9.54 MSP_IICMX 09/06/2024 14:31:11 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 ��𧋦嚗� �稪pu�惩�嚗�𣈲銝���閬�耨�寧�撠望糓憭游遆�唬葉��恣�
-𡁜�銋�
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 �沉2C�餌瑪隡㰘��唳旿餈��銝哨�瘥譍�颲㮖�銝芸����
29 �質�頝煺�銝芸�蝑𠉛𠶖�����𦻖�嗅膥�交𤣰�唳旿�����
30 �臭誑�朞�摨𠉛�雿齿䔉�羓䰻�煾��膥���蝑𥪯���𧒄�蠘���
31 隞滨眏銝餅㦤鈭抒�嚗諹���蝑𥪯���㺭�桃𠶖����萄儐�𡏭�
32 �交𤣰靚�漣�麨�萘��笔�嚗�朖�餅糓�望𦻖�嗅膥鈭抒�摨𠉛�雿㵪�
33 �典�摨𠉛��園��匧��罸𡢿�交𤣰�典�憿餃�SDA 蝥踵�
34 雿𠬍�雿踹��刻�銝芣𧒄�蠘��脩�擃条㩞撟單��港���迅摰𡁶�雿𡒊㩞撟喉�閫�㦛9嚗� 嚗�
35 敶梶�敹�◆���撱箇��䔶���𧒄��
36 嚗�祕蝏�窈�仿�銵�6嚗� ��蜓�箏�隞擧㦤�煾��㺭�格𧒄嚗�
37 摨𠉛�雿滨眏隞擧㦤鈭抒�嚗𥕢蜓�箔�隞擧㦤�交𤣰�唳旿�塚�摨𠉛�雿�
38 �曹蜓�箔漣�麄��
39 I2C�餌瑪���閫��嚗� 摨𠉛�雿滢蛹0銵函內�交𤣰�典�蝑� 嚗㇁CK嚗� 嚗�
40 撣詨虜蝞�霈唬蛹A嚗� 銝�1�躰”蝷粹�摨𠉛� 嚗𠃊ACK嚗� 嚗�
41 撣貊�霈唬蛹NA�����膥�煾��SB銋见�嚗��敶㯄��鋤DA蝥選��厰�SDA嚗� 嚗�
42 隞亦�敺�𦻖�嗅膥鈭抒�摨𠉛�雿溻��
43 憒���交𤣰�典銁�交𤣰摰峕��𦒘�銝芸�����唳旿嚗�
44 �𤥁����賢��交𤣰�游���㺭�格𧒄嚗��敶㮖漣�罸�摨𠉛�靽�
45 �瑟䔉�𡁶䰻�煾��膥�����膥憒���𤑳緵�交𤣰�其漣�煺��𧼮�蝑𠉛𠶖���
46 �坔�敶梶�甇W�����
47
48 ------------------------------------------------*/
49 ///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
50
C51 COMPILER V9.54 MSP_IICMX 09/06/2024 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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 14:31:11 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 //���甇V� IO_SDA = 0->1
544 void L0_IICMx_Stop(vtype ch)
545 {
546 1
C51 COMPILER V9.54 MSP_IICMX 09/06/2024 14:31:11 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�矝o_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銵函內�交𤣰�典�蝑� 嚗㇁CK嚗� 嚗� 撣詨虜蝞�霈唬蛹A嚗�
580 銝�1�躰”蝷粹�摨𠉛� 嚗𠃊ACK嚗� 嚗�虜蝞�霈唬蛹NA��
581 �煾��膥�煾��SB銋见�嚗��敶㯄��鋤DA蝥選��厰�SDA嚗� 嚗�
582 隞亦�敺�𦻖�嗅膥鈭抒�摨𠉛�雿溻��
583 憒���交𤣰�典銁�交𤣰摰峕��𦒘�銝芸�����唳旿嚗�
584 �𤥁����賢��交𤣰�游���㺭�格𧒄嚗��敶㮖漣�罸�摨𠉛�靽�
585 �瑟䔉�𡁶䰻�煾��膥�����膥憒���𤑳緵�交𤣰�其漣�煺��𧼮�蝑𠉛𠶖���
586 �坔�敶梶�甇W�����
587 // 璉�瘚� SDA�臬炏�麫CK
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 //�煾��(�臭誑�舀㺭�桐��舀糓�啣�)嚗屸����擧𦻖�嗡�摨𠉛�
608 //銝滩���隞𤾸�蝑𥪯�
C51 COMPILER V9.54 MSP_IICMX 09/06/2024 14:31:11 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 14:31:11 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 ///�坔�銝�銝泗eg 銝箏�蝏剔��坔𦶢隞斗���粉�𡝗���
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�啣���銝芣㺭�� 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�啣���銝芣㺭�� sla.(reg) sla.(reg+1)................ sla.(reg+n)
C51 COMPILER V9.54 MSP_IICMX 09/06/2024 14:31:11 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 14:31:11 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)

BIN
out/msp_iicMx.obj

Binary file not shown.

1
out/msp_time2.__i

@ -1 +0,0 @@
"..\source\msp\msp_time2.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 PRINT(..\out\msp_time2.lst) TABS (2) OBJECT(..\out\msp_time2.obj)

77
out/msp_time2.lst

@ -1,77 +0,0 @@
C51 COMPILER V9.54 MSP_TIME2 09/06/2024 14:31:11 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 14:31:11 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)

BIN
out/msp_time2.obj

Binary file not shown.

1
out/msp_uart1.__i

@ -1 +0,0 @@
"..\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 PRINT(..\out\msp_uart1.lst) TABS (2) OBJECT(..\out\msp_uart1.obj)

333
out/msp_uart1.lst

@ -1,333 +0,0 @@
C51 COMPILER V9.54 MSP_UART1 09/06/2024 14:31:11 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 14:31:11 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 14:31:11 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)
D_UART1_485_RX(); //默认处于接收状态
#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 14:31:11 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 14:31:11 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)
D_UART1_485_RX() //切换到接收状态
///gfgfgfh
#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 = 344 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V9.54 MSP_UART1 09/06/2024 14:31:11 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)

BIN
out/msp_uart1.obj

Binary file not shown.

1
out/msp_uartN.__i

@ -1 +0,0 @@
"..\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 PRINT(..\out\msp_uartN.lst) TABS (2) OBJECT(..\out\msp_uartN.obj)

454
out/msp_uartN.lst

@ -1,454 +0,0 @@
C51 COMPILER V9.54 MSP_UARTN 09/06/2024 14:32:50 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 14:32:50 PAGE 2
51
52 --------------------------------------------------------------------------------------------
53 msp/msp_uartx.c
54
55
56
57
58
59 --------------------------------------------------------------------------------------------
60 msp/msp_uart0.c 蠎募アゆサ」遐� 蜥慶pu逶ク蜈ウ 郛灘ュ伜書騾∽ケ滓叛蝨ィ驥碁擇
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 14:32:50 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 14:32:50 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 14:32:50 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<n;i++)
296 1 {
297 2 L0_uartN_uchex(uartx,buf[i]);
C51 COMPILER V9.54 MSP_UARTN 09/06/2024 14:32:50 PAGE 6
298 2 L0_uartN_uc(uartx,' ');
299 2 }
300 1 /// L0_uartN_0d0a(uartx);
301 1 }
302
303
304
305
306 void L0_uartN_ushexArray(U8 uartx,vU16 *buf,U16 n)
307 {
308 1 int i;
309 1 for(i=0;i<n;i++)
310 1 {
311 2 L0_uartN_ushex(uartx,buf[i]);
312 2 L0_uartN_uc(uartx,' ');
313 2 }
314 1 /// L0_uartN_0d0a(uartx);
315 1 }
316
317
318 ///////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//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 ////菴ソ逕ィ蜀�スョ逧еsend 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 14:32:50 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 = 3362 ----
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 14:32:50 PAGE 8
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)

BIN
out/msp_uartN.obj

Binary file not shown.

1
out/stc_8_delay.__i

@ -1 +0,0 @@
"..\source\cpu\stc_8_delay.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 PRINT(..\out\stc_8_delay.lst) TABS (2) OBJECT(..\out\stc_8_delay.obj)

220
out/stc_8_delay.lst

@ -1,220 +0,0 @@
C51 COMPILER V9.54 STC_8_DELAY 09/06/2024 14:31:10 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 14:31:10 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 14:31:10 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 14:31:10 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)

BIN
out/stc_8_delay.obj

Binary file not shown.

BIN
out/stcweight

Binary file not shown.

BIN
out/stcweight.SBR

Binary file not shown.

34
out/stcweight.build_log.htm

@ -1,34 +0,0 @@
<html>
<body>
<pre>
<h1>µVision Build Log</h1>
<h2>Tool Versions:</h2>
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
<h2>Project:</h2>
C:\Users\Administrator\Desktop\Weight-FLT\keilp\stcTTSS2_W5.uvprojx
Project File Date: 05/31/2024
<h2>Output:</h2>
Build target 'STC8H3K64S2'
compiling msp_uartN.c...
..\source\bsp\TTSSbsp\bsp_config.h(51): warning C320: "MainFre_22M"
linking...
Program Size: data=17.1 xdata=1324 const=90 code=14040
creating hex file from "..\out\stcweight"...
"..\out\stcweight" - 0 Error(s), 1 Warning(s).
</pre>
</body>
</html>

885
out/stcweight.hex

@ -1,885 +0,0 @@
:040000000227592258
:10000B000233577B017A02791612352E90021A743D
:10001B00E0F07F011234C62202260EE709F608DF54
: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
:1007DB00E41201A77F0012203B7BFF7A28798AC0A5
:1007EB0003C002C0019004C61206377582067583DA
:1007FB0000120660758201758300120135FF7E00C1
:10080B009002ABEEF0A3EFF0D001D002D0031212A6
:10081B00387F0012203B9004C6120637758209758B
:10082B00830074011201A79004C612063775820566
:10083B0075830074541201A79004C6120637758293
:10084B000475830074E11201A79002D0120543EFE7
:10085B00247DFFEE3400FEED3400FDEC3400FC9003
:10086B0004C6120637120505229004C61206377508
:10087B00820475830074541201A7229004C61206D9
:10088B0037758206758300120660758201758300C9
:10089B00120135FF12310AEF6003020E3C9004C6C1
:1008AB001206377582067583001206607582017514
:1008BB008300120135FF9004C6120637E9240CF9A8
:1008CB00EA3400FA1226B79004C612063775820472
:1008DB0075830074931201A7229004C61206377514
:1008EB00820C7583001204D51232CF9004C6120607
:1008FB0037758210758300EE8FF01202F59004C6E7
:10090B0012063775820675830012066075820475B0
:10091B0083001202BDFFAEF09004C612063775823B
:10092B00107583001202BDFDACF0122BAD9004C606
:10093B00120637758212758300EE8FF01202F59056
:10094B0004C612063775820475830074941201A7CE
:10095B00229004C61206377582267583001202BDDB
:10096B00FFAEF09004C6120637758224758300EE35
:10097B008FF01202F59004C6120637758228758324
:10098B00001202BDFFAEF09004C612063775822628
:10099B00758300EE8FF01202F59004C612063775C0
:1009AB0082127583001202BDFFAEF09004C61206D0
:1009BB0037758228758300EE8FF01202F59004C60E
:1009CB00120637E92424F9EA3400FA12213790048D
:1009DB00C61206377582267583001202BDFFAEF074
:1009EB009004C6120637758214758300EE8FF012D1
:1009FB0002F59004C6120637758209758300120141
:100A0B0035FFEF60129004C61206377582047583AA
:100A1B000074831201A7229004C612063775820454
:100A2B0075830074561201A7229004C612063775FF
:100A3B00820B758300120135FFEFC3940C502A7D96
:100A4B00397F0012365F9004C612063775820B751C
:100A5B00830074011201629004C61206377582047A
:100A6B0075830074541201A7229004C612063775C1
:100A7B00820675830012066075820275830012026E
:100A8B00BDFFAEF09004C612063775821075830059
:100A9B001202BDFDACF0122D1F9004C61206377565
:100AAB008206758300120660758204758300EE8FD3
:100ABB00F01202F57F0012203B7BFF7A2879A612F9
:100ACB0012387F0012203B7BFF7A2879BEC003C00F
:100ADB0002C0019004C61206377582067583001298
:100AEB000660758201758300120135FF7E0090024E
:100AFB00ABEEF0A3EFF09004C612063775821075BB
:100B0B0083001202BDFFAEF09002ADEEF0A3EFF04A
:100B1B009004C6120637758206758300120660753F
:100B2B0082047583001202BDFFAEF09002AFEEF0AF
:100B3B00A3EFF09004C61206377582067583001278
:100B4B0006607582027583001202BDFFAEF0900243
:100B5B00B1EEF0A3EFF0D001D002D0031212387F28
:100B6B000012203B7BFF7A2879EBC003C002C00147
: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
:100EDB0079331212389004C0120637758204758369
: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
:10122B00EF0201950236987403D2078003E4C207DC
: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
:10162B009212291843BA805391FB5392FBB2921238
:10163B0027F97B017A027976900453743AF07F0094
:10164B007E00122E672290023EE0FEA3E0FF900286
:10165B0040EEF0A3EFF043BA805391FB5392FBB2F1
:10166B0092122A2543BA805391FB5392FBB29222DA
:10167B0090031FE4F090031FE0FFEFC394034003BC
:10168B000217557F0012203B7BFF7A2F794C90037A
:10169B001FE0FF7E009002ABEEF0A3EFF090031F74
:1016AB00E0FFEF25E025E02408F582E43402F58322
:1016BB00E0FEA3E0FF9002ADEEF0A3EFF090031F6E
:1016CB00E0FFEF25E025E02408F582E43402F58302
:1016DB00E0FEA3E0FF9002AFEEF0A3EFF090031F4C
:1016EB00E0FFEF25E025E0240AF582E43402F583E0
:1016FB00E0FEA3E0FF9002B1EEF0A3EFF090031F2A
:10170B00E0FFEF25E025E0240AF582E43402F583BF
:10171B00E0FEA3E0FF9002B3EEF0A3EFF01212385D
:10172B0090031FE004F0021680227F0012203B7B07
:10173B00FF7A2F79671212381222F0227F001220C3
:10174B003B7BFF7A2F796E1212382290036BEFF0EE
:10175B0090036C12065790036BE0FF12203B900333
:10176B006BE0FF121E2E90036BE0FFEF75F019A4D8
:10177B002424F582E43401F583E0FEA3E0FF7C0032
:10178B007D031201DB90036FE0FCA3E0FDD3ED9F23
:10179B00EC9E402F90036BE0FFEF75F019A424240F
:1017AB00F582E43401F583E0FEA3E0FF7C007D03CA
:1017BB001201DBEF24FFFFEE34FFFE90036FEEF020
:1017CB00A3EFF0900371E4F0A3E4F090036FE0FE5D
:1017DB00A3E0FF900371E0FCA3E0FDC3ED9FEC9E43
:1017EB0040030218F8900371E0FEA3E0FF7C007D3C
:1017FB00031201C9900373EEF0A3EFF090036C1288
:10180B000637900371E0FEA3E0FF8F828E831201F7
:10181B0035FFEFC4540FFFEF25E02412F582E434BB
:10182B0037F583E493FF90036BE0FEEE75F019A49C
:10183B002421F582E43401F583120637900373E01B
:10184B00FCA3E0FD8D828C83EF1201A7900373E460
:10185B0075F00112026690036C120637900371E06B
:10186B00FEA3E0FF8F828E83120135FFEF540FFF33
:10187B00EF25E02412F582E43437F583E493FF90EF
: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
:101CDB0003E8E0FF12203B9003E8E0FF7D011231A7
:101CEB00629003E8E0FFEF75F019A42420F582E47D
:101CFB003401F5837401F09003E8E0FFEF75F01900
:101D0B00A4241CF582E43401F5831205EC000000D9
:101D1B00009003E8E0FFEF75F019A42417F582E4B7
:101D2B003401F583E4F0A37401F09003E8E0FFEFD6
:101D3B0075F019A42424F582E43401F583E0FEA3A5
:101D4B00E0FF9003ECE0FCA3E0FDD3ED9FEC9E40A5
:101D5B00289003E8E0FFEF75F019A42424F582E442
:101D6B003401F583E0FEA3E0FFEF24FFFFEE34FF29
:101D7B00FE9003ECEEF0A3EFF09003ECE0FEA3E09B
:101D8B00FF9003E8E0FDED75F019A42419F582E44A
:101D9B003401F583EEF0A3EFF09003EEE4F0A3E44F
:101DAB00F09003ECE0FEA3E0FF9003EEE0FCA3E079
:101DBB00FDC3ED9FEC9E50489003E912063790034C
:101DCB00EEE0FEA3E0FF8F828E83120135FF9003BE
:101DDB00E8E0FEEE75F019A42421F582E43401F558
:101DEB00831206379003EEE0FCA3E0FD8D828C831B
:101DFB00EF1201A79003EEE475F00112026680A1C9
:101E0B009003E8E0FFEF75F019A42421F582E43488
:101E1B0001F58312063712011CFD9003E8E0FF1257
:101E2B00331422900519EFF0900519E0FFEF75F0D0
:101E3B0019A42419F582E43401F583E4F0A3E4F04A
:101E4B00900519E0FFEF75F019A42417F582E4341F
:101E5B0001F583E4F0A3E4F0900519E0FFEF75F0D2
:101E6B0019A42420F582E43401F5837401F0900564
:101E7B0019E0FFEF25E02431F582E43437F583E4F4
:101E8B0093FE740193FF900519E0FDED75F019A415
:101E9B002424F582E43401F583EEF0A3EFF09005F2
:101EAB0019E0FFEF1206901EC2001EDF011EFC029E
:101EBB001F190300001F357B017A007992900519D9
:101ECB00E0FFEF75F019A42421F582E43401F583CA
:101EDB00120657227B017A017912900519E0FFEF68
:101EEB0075F019A42421F582E43401F58312065709
:101EFB00227B017A017913900519E0FFEF75F01938
:101F0B00A42421F582E43401F583120657227B01C8
:101F1B007A017914900519E0FFEF75F019A42421CB
:101F2B00F582E43401F5831206572290048CEFF00E
:101F3B0090048DECF0A3EDF090048CE0FF12203BAD
:101F4B0090048DE0FEA3E0FF90048FEEF0A3EFF082
:101F5B0090048FE0FFEFC4540FFFEF25E02412F540
:101F6B0082E43437F583E493FF90048CE0FEEE7546
:101F7B00F019A42426F582E43401F583EFF09004E4
:101F8B008FE0FFEF540FFFEF25E02412F582E434CE
:101F9B0037F583E493FF90048CE0FEEE75F019A403
:101FAB002427F582E43401F583EFF0900490E0FFF1
:101FBB00EFC4540FFFEF25E02412F582E43437F51C
:101FCB0083E493FF90048CE0FEEE75F019A42428B3
:101FDB00F582E43401F583EFF0900490E0FFEF54C9
:101FEB000FFFEF25E02412F582E43437F583E493F9
: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
:10223B0031629004C9E0FF121E2E9004C9E0FFEF3B
:10224B0075F019A42424F582E43401F583E0FEA390
:10225B00E0FF9004CAE0FCA3E0FDD3ED9FEC9E40B1
:10226B00289004C9E0FFEF75F019A42424F582E44B
:10227B003401F583E0FEA3E0FFEF24FFFFEE34FF14
:10228B00FE9004CAEEF0A3EFF09004CAE0FEA3E0C8
:10229B00FF9004C9E0FDED75F019A42419F582E453
:1022AB003401F583EEF0A3EFF09004C9E0FFEF7576
:1022BB00F019A42417F582E43401F583E4F0A37438
:1022CB0001F09004C9E0FFEF75F019A42421F58209
:1022DB00E43401F58312063712011CFD9004C9E0AA
:1022EB00FF1233142290015EE0FCA3E0FD7F00128D
:1022FB001F367D097F0012365F90018CE0FCA3E056
:10230B00FD7F00121F367D097F0012365F9001BAE8
:10231B00E0FCA3E0FD7F00121F367D097F00123623
:10232B005F9001E8E0FCA3E0FD7F00121F367D0902
:10233B007F0012365F7D7C7F0012365F7D097F0048
:10234B0012365F900223120543AD07AC067F0012D5
:10235B001F367D097F0012365F7F0012203B7BFF0B
:10236B007A2F797B90023EE0FEA3E0FF9002ABEE6A
:10237B00F0A3EFF090023EE0FEA3E0FF9002ADEE83
:10238B00F0A3EFF01212387F0012203B7BFF7A2F65
:10239B007985900242E0FEA3E0FF9002ABEEF0A342
:1023AB00EFF0900242E0FEA3E0FF9002ADEEF0A34F
:1023BB00EFF01212382290031FE4F090031FE0FF9E
:1023CB00EFC39404400302245990031FE0FF7E08DF
:1023DB00EF8EF0A4FFAEF0742E2FF974013EFA7B52
:1023EB0001C003C002C00190031FE0FF7E08EF8E07
:1023FB00F0A4FFAEF074762FF974023EFA7B0190D5
:10240B00038C12065790038FE4F0A37408F0D001ED
:10241B00D002D003122FF390031FE0FF7E08EF8E44
:10242B00F0A4FFAEF0742E2FF974013EFA7B0190ED
:10243B00031FE0FFEF75F02EA42454F582E4340162
:10244B00F58312065790031FE004F00223C67B01AD
:10245B007A027906C003C002C0017B017A02799629
:10246B0090038C12065790038FE4F0A37410F0D0F6
:10247B0001D002D003122FF37B017A02790690026E
:10248B001C12065722900513E4F07B017A02797631
:10249B0090045A743AF07F007E001230AE7F001227
:1024AB00203B7BFF7A367917900513E0FF7E009077
:1024BB0002ABEEF0A3EFF01212387B017A027976C1
:1024CB0090036FE4F0A3743AF07F0012175690025A
:1024DB00A6E0FEA3E0FFEFB4551DEEB4AA1912233C
:1024EB00C17F0012203B7BFF7A3679251212389080
:1024FB000513E0FF22803E9002A674AAF0A3745548
:10250B00F07F0012203B7BFF7A3679319002A6E0F8
:10251B00FEA3E0FF9002ABEEF0A3EFF01212381225
:10252B0027F97B017A027976900453743AF07F0095
:10253B007E00122E67900513E0FF04F0EFC39402A8
:10254B0050030224957F64229004E7740CF09004EE
:10255B00E87412F090024474AAF09002457402F0F1
:10256B009002467410F09004E7E0FF7F00EF54FFF9
:10257B00FF900247EFF09004E7E0FFEF54FFFF906E
:10258B000248EFF090015EE0FEA3E0FF900249EEFF
:10259B00F0A3EFF090018CE0FEA3E0FF90024BEE76
:1025AB00F0A3EFF09001BAE0FEA3E0FF90024DEE36
:1025BB00F0A3EFF09001E8E0FEA3E0FF90024FEEF6
:1025CB00F0A3EFF0900242E0FEA3E0FF900251EE89
:1025DB00F0A3EFF0900223120543900253EEF0A309
:1025EB00EFF09002557433F07B017A02794490043A
:1025FB00E8E0FF7E009003ECEEF0A3EFF07F00121B
:10260B001CCF22C0E0C0F0C083C082C0D075D00008
:10261B00C000C001C002C003C004C005C006C00793
:10262B00309817C298900000E599F0900002E4F002
:10263B00900001E4F07F00121968309954C2999010
:10264B000117E0FEA3E0FF900119E0FCA3E0FDED14
:10265B006F7002EC6E602490012112063790011707
:10266B00E0FEA3E0FF8F828E83120135FF8F9990DE
:10267B000117E475F00112026680169001207401B7
:10268B00F0900119E4F0A3E4F0900117E4F0A3E457
:10269B00F0D007D006D005D004D003D002D001D0A3
:1026AB0000D0D0D082D083D0F0D0E0329003CDEFE9
:1026BB00F09003CE1206579003D1E4F09003D212A0
:1026CB0005EC000000009003D1E4F09003D1E0FF93
:1026DB00EFC3941850549003CDE0FF7D01122AA84C
:1026EB009003D212054378011204A29003D2120573
:1026FB00E09003CDE0FF7D00122AA89003CDE0FF10
:10270B0012310AEF601C9003D2120543EF2401FF34
:10271B00EE3400FEED3400FDEC3400FC9003D212DD
:10272B0005E09003D1E004F080A19003CDE0FF7DA4
:10273B0001122AA89003CDE0FF7D00122AA8900376
:10274B00D21205439003CE12063712050522787F6D
:10275B00E4F6D8FD9000007F207E04E4F0A3DFFCBC
:10276B00DEFA750D00750E007581210227B4022B60
:10277B002BE493A3F8E493A34003F68001F208DF64
:10278B00F48029E493A3F85407240CC8C333C4542E
:10279B000F4420C8834004F456800146F6DFE480E2
:1027AB000B0102040810204080902CA5E47E0193BD
:1027BB0060BCA3FF543F30E509541FFEE493A360B4
:1027CB00010ECF54C025E060A840B8E493A3FAE40F
:1027DB0093A3F8E493A3C8C582C8CAC583CAF0A360
:1027EB00C8C582C8CAC583CADFE9DEE780BE9003CD
:1027FB001FE4F090031FE0FFEFC3940450569003C7
:10280B001FE0FF7E08EF8EF0A4FFAEF074762FF979
:10281B0074023EFA7B01C003C002C00190031FE0AB
:10282B00FF7E08EF8EF0A4FFAEF0742E2FF974012B
:10283B003EFA7B0190038C12065790038FE4F0A3B2
:10284B007408F0D001D002D003122FF390031FE0D5
:10285B0004F0809F7B017A027996C003C002C0010D
:10286B007B017A02790690038C12065790038FE452
:10287B00F0A37410F0D001D002D003122FF3220D6D
:10288B000A4144435F53414D504C4520696E697476
:10289B0020636828256429202020000D0A20445F2E
:1028AB004144435F4A49545445525F7A65726F2DD8
:1028BB002D2D000D0A20636828256429206164638F
:1028CB003D253564092D3E6F66667365742025358D
:1028DB00642077616E746C696E6520253564200009
:1028EB000D0A20636828256429206164633D253522
:1028FB0058092D3E6F666673657420253558207711
:10290B00616E746C696E652025355820009004E962
:10291B00740CF09004EA7412F090025874AAF090C0
:10292B0002597402F090025A7420F09004E9E0FF0F
:10293B007F00EF54FFFF90025BEFF09004E9E0FFA4
:10294B00EF54FFFF90025CEFF07B017A02795DC0E0
:10295B0003C002C0017B017A02799890038C1206A6
:10296B005790038FE4F0A3740CF0D001D002D00386
:10297B00122FF39002697433F07B017A027958902D
:10298B0004EAE0FF7E009003ECEEF0A3EFF07F0093
:10299B00121CCF22900522EFF043BA8053C9DF53AC
:1029AB00CADF43BA8053917F53927FC2977F021243
:1029BB00363B43BA804391405392BF43BA8053B1E5
:1029CB00FB53B2FBC2B27F0212363B43BA8043B118
:1029DB000853B2F743BA8053B1EF53B2EFC2B47F8F
:1029EB000212363B43BA8043B12053B2DF43BA8065
:1029FB0053B1BF53B2BFC2B67F0212363B43BA804C
:102A0B0043B18053B27F43BA8053C9EF53CAEFD25D
:102A1B00CC900522E0FF122D8F229004EB7402F074
:102A2B009004EC7408F090026C74AAF090026D7430
:102A3B0002F090026E7430F09004EBE0FF7F00EF39
:102A4B0054FFFF90026FEFF09004EBE0FFEF54FFA9
:102A5B00FF900270EFF0900240E0FEA3E0FFEEFF6C
:102A6B007E00EF54FFFF900271EFF0900240E0FE0A
:102A7B00A3E0FFEF54FFFF900272EFF0900273742C
:102A8B0033F07B017A02796C9004ECE0FF7E0090CE
:102A9B0003ECEEF0A3EFF07F00121CCF2290050B9E
:102AAB00EFF090050CEDF090050BE0FFEF120690A8
:102ABB002ACB002AE3012AFB022B130300002B2A4B
:102ACB0090050CE0FFEF6008D2977F0112363B2296
:102ADB00C2977F0212363B2290050CE0FFEF600895
:102AEB00D2B27F0112363B22C2B27F0212363B2298
:102AFB0090050CE0FFEF6008D2B47F0112363B2249
:102B0B00C2B47F0212363B2290050CE0FFEF600847
:102B1B00D2B67F0112363B22C2B67F0212363B225F
:102B2B0090034BE4F0A3E4F07BFF7A3179EEC00322
:102B3B00C002C0017B017A03794DA801AC02AD0341
:102B4B00D001D002D0037E007F091200F6122DFEB9
:102B5B0012000E9002D0120543EF240AFFEE340050
:102B6B00FEED3400FDEC3400FC9002D81205E07F42
:102B7B000012203B7BFF7A3179DC1212389002DC99
:102B8B00E0FFEFB401059002DCE4F0123596EF6044
:102B9B00057FAA1215327B017A027916120E3D803F
:102BAB00DC22900469EEF0A3EFF090046BECF0A341
:102BBB00EDF090046BE0FEA3E0FFEE30E73A9004FB
:102BCB006BE0FEA3E0FFC374FF9FFF74FF9EFE90BC
:102BDB00046BEEF0A3EFF090046BE0FEA3E0FF902C
:102BEB000469E0FCA3E0FDC3ED9FFFEC9EFE9004A7
:102BFB006DEEF0A3EFF0801E900469E0FEA3E0FF02
:102C0B0090046BE0FCA3E0FDED2FFFEC3EFE900487
:102C1B006DEEF0A3EFF090046DE0FEA3E0FF2290C9
:102C2B000514EFF0900514E0FF7E2EEF8EF0A4FF5D
:102C3B00AEF0744E2FF974013EFA7B0112352E90D3
:102C4B000514E0FFEF75F02EA42452F582E4340155
:102C5B00F58374E0F0900514E0FF7E08EF8EF0A48E
:102C6B00FFAEF0742E2FF974013EFA7B0190051420
:102C7B00E0FFEF75F02EA42454F582E43401F583C4
:102C8B00120657900514E0FFEF75F02EA42457F5AC
:102C9B0082E43401F5837401F0225002065745009B
:102CAB000018D900C81C2C035226F94109602001D9
:102CBB002E410018DA19630205410118DA192702AF
:102CCB0005410218DA18360205410318DA18F0022A
:102CDB000559011500000000000000000000000075
:102CEB00000000000000000000000000004E00008B
:102CFB000000000000000000000000000000460380
:102D0B002000000000000043048100000043048405
:102D1B000000000090046FEEF0A3EFF0900471EC54
:102D2B00F0A3EDF0900471E0FEA3E0FFEE30E72C92
:102D3B00900471E0FEA3E0FFC374FF9FFF74FF9E3E
:102D4B00FE900473EEF0A3EFF090046FE0FEA3E0AF
:102D5B00FF900473EE8FF0120266801F900471E0F7
:102D6B00FEA3E0FF90046FE0FCA3E0FDC3ED9FFF2B
:102D7B00EC9EFE900473EEF0A3EFF0900473E0FE74
:102D8B00A3E0FF22900521EFF0900521E0FFEF1269
:102D9B0006902DAA002DF5012DF84000002DFB43C8
:102DAB00BA8043918053927F43BA804391405392B0
:102DBB00BF43BA8043B10453B2FB43BA8043B1085B
:102DCB0053B2F743BA8043B11053B2EF43BA8043C7
:102DDB00B12053B2DF43BA8043B14053B2BF43BAC1
:102DEB008043B18053B27FC2CC22D2CD22C2CD223E
:102DFB00C2CD229004EDE4F0A3E4F07FC87E001274
:102E0B00345612349090FE01E4F01236AD120003EA
:102E1B001231F71236BED2A97F0012203B7BFF7A0C
:102E2B003179B99002AB1205EC01518000121238C6
:102E3B001224907E009004EDEEF0A3EFF07F0012D1
:102E4B00203B7BFF7A3179CD9004EDE0FEA3E0FFD0
:102E5B009002ABEEF0A3EFF01212382290044EEE7C
:102E6B00F0A3EFF0900450120657900454E4F09046
:102E7B00044EE0FEA3E0FF1234FA900454E4F09009
:102E8B000453E0FF900454E0FEEEC39F50349004D3
:102E9B0054E0FF7E0090044EE0FCA3E0FDEF2DFF1D
:102EAB00EE3CFE900450120637900454E0FD8D82E8
:102EBB00758300120135FD12339A900454E004F02F
:102ECB0080BD229002D01205437B017A00790078F5
:102EDB00001203229002D01205E07B507A00790099
:102EEB0078009002D01205431203C8AC00AD01AEBE
:102EFB0002AF037B007A0079007800C312047E7066
:102F0B001D9002D41205437B017A007900780012E0
:102F1B0003229002D41205E09002DC7401F09002BF
:102F2B00DE1206371206B622204C335F7461736BC8
:102F3B005F7765696768745F68616E646C65722042
:102F4B00000D0A25643A202534782825346420297D
:102F5B002025347828253664290D0A000D0A20090E
:102F6B00090900207070206572726F720D0A2000C3
:102F7B00202825642925347820006F757420282596
:102F8B0064292534780D0A009004E4E4F09004E5FC
:102F9B00E4F09004E6E4F090000B12063712011CEB
:102FAB00FF9004E4EFF090000B1206377582017569
:102FBB008300120135FF9004E5EFF090000B120631
:102FCB0037758202758300120135FF9004E6EFF02E
:102FDB009004E4E0FFEFB4AA0C9004E5E0FFEFB43B
:102FEB0002037F01227F0022900389120657900370
:102FFB0091E4F0A3E4F090038FE0FEA3E0FF9003D5
:10300B0091E0FCA3E0FDC3ED9FEC9E503890038C48
:10301B00120637900391E0FEA3E0FF8F828E83129E
:10302B000135FF900389120637900391E0FCA3E072
:10303B00FD8D828C83EF1201A7900391E475F00153
:10304B0012026680B122900523EFF0900523E0FF7A
:10305B00EF75F00EA42406F582E43400F583E4F05A
:10306B00900523E0FFEF75F00EA42407F582E434FE
:10307B0000F583E4F0900523E0FFEF75F00EA42438
:10308B0003F582E43400F583E4F0900523E0FFEFD1
:10309B0075F00EA42404F582E43400F583E4F0A368
:1030AB00E4F022900455EEF0A3EFF09004571206D3
:1030BB005790045BE4F090045BE4F090045AE0FF5B
:1030CB0090045BE0FEEEC39F503490045BE0FF7E08
:1030DB0000900455E0FCA3E0FDEF2DFFEE3CFE124B
:1030EB0033DA90045712063790045BE0FE8E82753C
:1030FB008300EF1201A790045BE004F080BD2290E7
:10310B00050DEFF090050E7409F090050DE0FFEF43
:10311B00120690312E00313A013146023152030032
:10312B0000315CA296E433FF90050EEFF08022A2F3
:10313B00B3E433FF90050EEFF08016A2B5E433FF36
:10314B0090050EEFF0800AA2B7E433FF90050EEF67
:10315B00F090050EE0FF229004FBEFF09004FCEDE5
:10316B00F09004FCE0FFEF701F9004FBE0FFEF1208
:10317B00069031AC0031AC0131AC0231AC03000034
:10318B0031AC2222222222229004FBE0FFEF120616
:10319B009031AC0031AC0131AC0231AC03000031E9
:1031AB00AC220D0A2025582025583A2558000D0A27
:1031BB00445F7379735F4D61696E46726509256C67
:1031CB0064000D0A4C335F535F696E6974092564A3
:1031DB00000D03206D61696E207768696C65313372
:1031EB000D0A00AB00000000000000007BFF7A32EC
:1031FB0079889002DE1206577BFF7A32798890022B
:10320B00E11206577BFF7A3279889002E11206575A
:10321B009002D41205EC000000009002D01205ECD5
:10322B00000000009002DCE4F07BFF7A327988909A
:10323B0002DE120657220D0A756172743120636C1F
:10324B006F7365000D0A7561727431206F70656E56
:10325B00000D0A7561727432206F70656E00323228
:10326B003A206D6F746F3D2825582900207070200F
:10327B006572726F720D0A200033333300900002B7
:10328B00E0FFEF703E900001E0FFEFC39402402D92
:10329B009000027401F0900003E4F090000AE0FF4C
:1032AB00EFD39400401790000AE4F09000067401ED
:1032BB00F07B017A00790E90000B120657900001FB
:1032CB00E004F0229004631205E0900463120543BE
:1032DB00780812048F9004631205E09004631205C2
:1032EB0043900467EEF0A3EFF0900467E0FEA3E0D9
:1032FB00FF7CFF7DFF1201C9900467EEF0A3EFF096
:10330B00900467E0FEA3E0FF229004F9EFF0900435
:10331B00FAEDF09004F9E0FFEF120690333700332B
:10332B003F01334702334F03000033569004FAE05A
:10333B00FF8F99229004FAE0FF8F9B229004FAE012
:10334B00FF8FAD229004FAE0FF8F8522C0E0C0F022
:10335B00C083C082C0D075D000C000C001C002C005
:10336B0003C004C005C006C007000000C28D122EAA
:10337B00CE000000D007D006D005D004D003D00279
:10338B00D001D000D0D0D082D083D0F0D0E032901A
:10339B0004D8EEF0A3EFF09004DAEDF075C780756A
:1033AB00F50C75C5029004D8E0FEA3E0FF8FC49026
:1033BB0004D8E0FEA3E0FFEEFF7E008FC39004DA9B
:1033CB00E0FF8FC275C65A75C6A5001236CF229084
:1033DB0004D5EEF0A3EFF075C78075F50C75C5013C
:1033EB009004D5E0FEA3E0FF8FC49004D5E0FEA3CC
:1033FB00E0FFEEFF7E008FC375C65A75C6A5009021
:10340B0004D7E5C2F01236CF9004D7E0FF227F003D
:10341B00121E2E7B017A00790E90000B120657902C
:10342B000008E4F0A37480F07F0012305143BA809F
:10343B0053B1FD53B2FD43BA8053B1FE53B2FE12EA
:10344B003681C298C299D29CD2AC229004BCEEF0C9
:10345B00A3EFF09004BCE0FEA3E0FF9004BEEEF0FF
:10346B00A3EFF09004BEE0FEA3E0FFD3EF9400EED9
:10347B00940040101235F09004BE74FF75F0FF12EB
:10348B00026680DF2243BA805391FB5392FBD292A8
:10349B0090031FE4F090031FE0FFEFC39406501A54
:1034AB0043BA805391FB5392FBB2927F2C7E011255
:1034BB00345690031FE004F080DB22900511EFF0EF
:1034CB00900511E0FFEF601A7F0112299F7F001218
:1034DB002C2A7F01122C2A7F02122C2A7F03122CFA
:1034EB002A227B017A02790690021C12065722903F
:1034FB000509EEF0A3EFF075C78075F50C75C503E4
:10350B00900509E0FEA3E0FF8FC4900509E0FEA340
:10351B00E0FFEEFF7E008FC375C65A75C6A500127D
:10352B0036CF229004DB1206579004DB1206377558
:10353B008204758300E41201A79004DB1206377531
:10354B008205758300E41201A79004DB1206371283
:10355B00061D000000002290049612065790049955
:10356B00E4F0A3E4F0900496E475F0011206401227
:10357B00011CFFEF600C900499E475F001120266D8
:10358B0080E3900499E0FEA3E0FF22900007E0FFA8
:10359B00EFB40105900007E4F0900006E0FFEFB4F4
:1035AB000115900006E4F07B017A00790E900484FB
:1035BB00120657122F93227F00229004A0EFF09057
:1035CB0004A11206579004A112063712356290031C
:1035DB00ECEEF0A3EFF09004A0E0FF9004A1120634
:1035EB0037121CCF229004F3741DF09004F3740A6D
:1035FB00F09004F47434F09004F4E014FFF0EF70E6
:10360B00F69004F3E014FFF0EF70EC220D0A7265F4
:10361B00616420533A20256409000D0A53706172CE
:10362B0061096F6B09000D0A50726F6720257800D6
:10363B009004F1EFF09004F1E0FF9004F2EFF090C2
:10364B0004F2E0FFEFD394004009009004F2E01481
:10365B00F080EC229004FDEFF09004FEEDF090046E
:10366B00FDE0FF7B017A0479FE9003ECE4F0A37498
:10367B0001F0121CCF22759850438E40538EFE538F
:10368B00890F758BC0758DFDC2ABD28E2290052B29
:10369B00EFF090052BE0FD7F0012365F90052BE0DD
:1036AB00FF22123419D2AF7BFF7A32794F7F00128F
:1036BB0035C522538E7F5389F0758A00758CA6C24F
:1036CB008DD28C2275C70075C50075C60075C38079
:1036DB0075C400220001000A006403E827100000F3
:1036EB0000010000000A00000064000003E8000075
:1036FB002710000186A0000F42400098968005F528
:10370B00E1003B9ACA00003001310232033304342A
:10371B00053506360737083809390A410B420C4381
:0E372B000D440E450F46008000010001000114
:00000001FF

26
out/stcweight.lnp

@ -1,26 +0,0 @@
"..\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

7658
out/stcweight.map

File diff suppressed because it is too large

1
out/tpc_road.__i

@ -1 +0,0 @@
"..\source\tpc\tpc_road.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 PRINT(..\out\tpc_road.lst) TABS (2) OBJECT(..\out\tpc_road.obj)

345
out/tpc_road.lst

@ -1,345 +0,0 @@
C51 COMPILER V9.54 TPC_ROAD 09/06/2024 14:31:13 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 蜥蛍art逶ク蜈ウ逧�€夊ョッ蜊剰ョョ com + n
15 荳コ莠�€ょコ比ク榊酔逧�€夊ョッ蜊剰ョョ髴€隕∽ク榊酔逧еart蜿」譚・蟇ケ蠎� 蜥悟コ皮畑逶ク蜈ウ
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 蠎募アゆサ」遐� 蜥慶pu逶ク蜈ウ
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 14:31:13 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 14:31:13 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 14:31:13 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 14:31:13 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 14:31:13 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)

BIN
out/tpc_road.obj

Binary file not shown.
Loading…
Cancel
Save