📄 main.lst
字号:
53:main.c ****
54:main.c **** uint8_t ID_CHK __attribute__((section(".eeprom"))) = 0x01;
55:main.c **** uint8_t SERIAL_NUMBER_CHK __attribute__((section(".eeprom"))) = 0xFF;
56:main.c **** uint8_t WEIGAN_FORMAT_CHK __attribute__((section(".eeprom"))) = 0x01;
57:main.c **** uint8_t AUTH_CODE_CHK __attribute__((section(".eeprom"))) = 0x00;
58:main.c **** uint8_t EEPROM_CHECK_CHK __attribute__((section(".eeprom"))) = 0x00;
59:main.c **** uint8_t RESET_DEFAULT_CHK __attribute__((section(".eeprom"))) = 0x00;
60:main.c **** uint8_t ALARM_LEVEL_CHK __attribute__((section(".eeprom"))) = 0x01;
61:main.c **** uint8_t ALARM_TIME_CHK __attribute__((section(".eeprom"))) = 0x05;
62:main.c **** uint8_t ALARM_ENABLE_CHK __attribute__((section(".eeprom"))) = 0x01;
63:main.c **** uint8_t TYPE_B_SETTING_CHK __attribute__((section(".eeprom"))) = 0x01;
64:main.c ****
65:main.c ****
66:main.c **** uint8_t weigan_data[ 5 ] ;//= { 0x23 , 0x34 , 0x45 , 0x56 ,0x67 };
67:main.c **** uint8_t history_weigan_data[ 5 ];
68:main.c **** uint8_t watchdog_feed_flag;
69:main.c **** uint8_t data_same_times;
70:main.c **** uint8_t alarm_level;
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 6
71:main.c **** uint8_t beep_times;
72:main.c **** uint8_t type_b_setting; //1--PUPI,2--APP,3--APP+PUPI,4--PUPI+APP;
73:main.c **** uint8_t unauth_card_times;
74:main.c **** uint8_t alarm_time;
75:main.c **** uint8_t alarm_enable;
76:main.c **** // ==================================================================
77:main.c **** // function declarations
78:main.c **** void AVR_Init( void );
79:main.c **** void Beep( uint8_t times );
80:main.c **** void Beep_Long( void );
81:main.c **** uint8_t Check_EEPROM( void );
82:main.c **** uint8_t Compare_Weigan_Data( void );
83:main.c **** void Delayms( uint16_t count );
84:main.c **** void Delayus( uint16_t count );
85:main.c **** int main( void );
86:main.c **** void Main_Receiver( void );
87:main.c **** void Parse_Command( uint8_t cmd , uint8_t param );
88:main.c **** void Reset_To_Default( void );
89:main.c **** void UARTIni( void );
90:main.c **** void WatchDog_Feed( void );
91:main.c **** void Send_Card_ID( uint8_t format , uint8_t *data );
92:main.c **** void Alarm_Check_And_Process( void );
93:main.c ****
94:main.c ****
95:main.c ****
96:main.c **** // ==================================================================
97:main.c ****
98:main.c **** // ********************************************************************************************
99:main.c **** // Description : Atmega8 device initialize.
100:main.c **** // Return value: None.
101:main.c **** // parameter : None.
102:main.c **** // ********************************************************************************************
103:main.c ****
104:main.c **** void AVR_Init( void )
105:main.c **** {
216 .stabn 68,0,105,.LM1-AVR_Init
217 .LM1:
218 /* prologue: frame size=0 */
219 0000 1F93 push r17
220 /* prologue end (size=1) */
106:main.c ****
107:main.c **** UARTIni();
221 .stabn 68,0,107,.LM2-AVR_Init
222 .LM2:
223 0002 7FD0 rcall UARTIni
108:main.c ****
109:main.c **** // ---------------------------------------------------------------
110:main.c **** // 16-bit Timer/Counter1 initialization
111:main.c **** // ---------------------------------------------------------------
112:main.c ****
113:main.c **** TCCR1A = 0; // no compare otuput, no PWM mode ...
224 .stabn 68,0,113,.LM3-AVR_Init
225 .LM3:
226 0004 1FBC out 79-0x20,__zero_reg__
114:main.c **** TCCR1B = 0; // stopped on startup
227 .stabn 68,0,114,.LM4-AVR_Init
228 .LM4:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 7
229 0006 1EBC out 78-0x20,__zero_reg__
115:main.c ****
116:main.c **** // ---------------------------------------------------------------
117:main.c **** // I/O Ports initialization
118:main.c **** // ---------------------------------------------------------------
119:main.c ****
120:main.c **** DDRB = 0x06;
230 .stabn 68,0,120,.LM5-AVR_Init
231 .LM5:
232 0008 86E0 ldi r24,lo8(6)
233 000a 87BB out 55-0x20,r24
121:main.c **** DDRC = 0x37;
234 .stabn 68,0,121,.LM6-AVR_Init
235 .LM6:
236 000c 87E3 ldi r24,lo8(55)
237 000e 84BB out 52-0x20,r24
122:main.c **** DDRD = 0xC2;
238 .stabn 68,0,122,.LM7-AVR_Init
239 .LM7:
240 0010 82EC ldi r24,lo8(-62)
241 0012 81BB out 49-0x20,r24
123:main.c ****
124:main.c **** PORTB = 0x00; //如果weigan0和weigan1不置低,则wd0和wd1第一次输出会有问题;
242 .stabn 68,0,124,.LM8-AVR_Init
243 .LM8:
244 0014 18BA out 56-0x20,__zero_reg__
125:main.c **** PORTC = 0x01;
245 .stabn 68,0,125,.LM9-AVR_Init
246 .LM9:
247 0016 81E0 ldi r24,lo8(1)
248 0018 85BB out 53-0x20,r24
126:main.c **** PORTD = 0xC0;
249 .stabn 68,0,126,.LM10-AVR_Init
250 .LM10:
251 001a 80EC ldi r24,lo8(-64)
252 001c 82BB out 50-0x20,r24
127:main.c **** // ---------------------------------------------------------------
128:main.c **** // Watch Dog Setup
129:main.c **** // ---------------------------------------------------------------
130:main.c **** cbi( MCUCSR , WDRF ); //clear watchdog reset flag
253 .stabn 68,0,130,.LM11-AVR_Init
254 .LM11:
255 001e 84B7 in r24,84-0x20
256 0020 877F andi r24,lo8(-9)
257 0022 84BF out 84-0x20,r24
131:main.c **** wdt_enable( 0x07 ); //set timeout of Watchdog is 2.1s;
258 .stabn 68,0,131,.LM12-AVR_Init
259 .LM12:
260 0024 88E1 ldi r24,lo8(24)
261 0026 90E0 ldi r25,hi8(24)
262 0028 2FE0 ldi r18,lo8(15)
263 /* #APP */
264 002a 0FB6 in __tmp_reg__,__SREG__
265 002c F894 cli
266 002e A895 wdr
267 0030 81BD out 33,r24
268 0032 0FBE out __SREG__,__tmp_reg__
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 8
269 0034 21BD out 33,r18
132:main.c ****
133:main.c **** watchdog_feed_flag = 0 ; //feed dog sign,0 for not feed dog , other value for has feed dog;
270 .stabn 68,0,133,.LM13-AVR_Init
271 .LM13:
272 /* #NOAPP */
273 0036 1092 0000 sts watchdog_feed_flag,__zero_reg__
134:main.c ****
135:main.c **** while( Check_EEPROM( ) == 0x00 )
274 .stabn 68,0,135,.LM14-AVR_Init
275 .LM14:
276 .L2:
277 003a B9D1 rcall Check_EEPROM
278 003c 8823 tst r24
279 003e 11F4 brne .L21
136:main.c **** Reset_To_Default( );
280 .stabn 68,0,136,.LM15-AVR_Init
281 .LM15:
282 0040 1DD2 rcall Reset_To_Default
283 0042 FBCF rjmp .L2
137:main.c ****
138:main.c ****
139:main.c **** // weigan_format = 1 ; //1--Weigan26 , 2--Weigan34 , 3--Weigan36 , 4--Weigan44 , 5--9600bps;
140:main.c ****
141:main.c **** if( eeprom_rb( &WEIGAN_FORMAT ) == eeprom_rb( &WEIGAN_FORMAT_CHK ) )
284 .stabn 68,0,141,.LM16-AVR_Init
285 .LM16:
286 .L21:
287 0044 80E0 ldi r24,lo8(WEIGAN_FORMAT)
288 0046 90E0 ldi r25,hi8(WEIGAN_FORMAT)
289 0048 00D0 rcall eeprom_read_byte
290 004a 182F mov r17,r24
291 004c 80E0 ldi r24,lo8(WEIGAN_FORMAT_CHK)
292 004e 90E0 ldi r25,hi8(WEIGAN_FORMAT_CHK)
293 0050 00D0 rcall eeprom_read_byte
294 0052 1817 cp r17,r24
295 0054 09F4 brne .+2
296 0056 42C0 rjmp .L22
142:main.c **** {
143:main.c **** weigan_format = eeprom_rb( &WEIGAN_FORMAT );
144:main.c **** }
145:main.c **** else
146:main.c **** weigan_format = 0x01;
297 .stabn 68,0,146,.LM17-AVR_Init
298 .LM17:
299 0058 81E0 ldi r24,lo8(1)
300 .L16:
301 005a 8093 0000 sts weigan_format,r24
147:main.c ****
148:main.c **** if( eeprom_rb( &ALARM_LEVEL ) == eeprom_rb( &ALARM_LEVEL_CHK ) )
302 .stabn 68,0,148,.LM18-AVR_Init
303 .LM18:
304 005e 80E0 ldi r24,lo8(ALARM_LEVEL)
305 0060 90E0 ldi r25,hi8(ALARM_LEVEL)
306 0062 00D0 rcall eeprom_read_byte
307 0064 182F mov r17,r24
308 0066 80E0 ldi r24,lo8(ALARM_LEVEL_CHK)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 9
309 0068 90E0 ldi r25,hi8(ALARM_LEVEL_CHK)
310 006a 00D0 rcall eeprom_read_byte
311 006c 1817 cp r17,r24
312 006e 91F1 breq .L23
149:main.c **** alarm_level = eeprom_rb( &ALARM_LEVEL );
150:main.c **** else
151:main.c **** alarm_level = 0x01;
313 .stabn 68,0,151,.LM19-AVR_Init
314 .LM19:
315 0070 81E0 ldi r24,lo8(1)
316 .L17:
317 0072 8093 0000 sts alarm_level,r24
152:main.c ****
153:main.c **** if( eeprom_rb( &ALARM_TIME ) == eeprom_rb( &ALARM_TIME_CHK ) )
318 .stabn 68,0,153,.LM20-AVR_Init
319 .LM20:
320 0076 80E0 ldi r24,lo8(ALARM_TIME)
321 0078 90E0 ldi r25,hi8(ALARM_TIME)
322 007a 00D0 rcall eeprom_read_byte
323 007c 182F mov r17,r24
324 007e 80E0 ldi r24,lo8(ALARM_TIME_CHK)
325 0080 90E0 ldi r25,hi8(ALARM_TIME_CHK)
326 0082 00D0 rcall eeprom_read_byte
327 0084 1817 cp r17,r24
328 0086 11F1 breq .L24
154:main.c **** alarm_time = eeprom_rb( &ALARM_TIME );
155:main.c **** else
156:main.c **** alarm_time = 0x05;
329 .stabn 68,0,156,.LM21-AVR_Init
330 .LM21:
331 0088 85E0 ldi r24,lo8(5)
332 .L18:
333 008a 8093 0000 sts alarm_time,r24
157:main.c ****
158:main.c **** if( eeprom_rb( &ALARM_ENABLE ) == eeprom_rb( &ALARM_ENABLE_CHK ) )
334 .stabn 68,0,158,.LM22-AVR_Init
335 .LM22:
336 008e 80E0 ldi r24,lo8(ALARM_ENABLE)
337 0090 90E0 ldi r25,hi8(ALARM_ENABLE)
338 0092 00D0 rcall eeprom_read_byte
339 0094 182F mov r17,r24
340 0096 80E0 ldi r24,lo8(ALARM_ENABLE_CHK)
341 0098 90E0 ldi r25,hi8(ALARM_ENABLE_CHK)
342 009a 00D0 rcall eeprom_read_byte
343 009c 1817 cp r17,r24
344 009e 91F0 breq .L25
159:main.c **** alarm_enable = eeprom_rb( &ALARM_ENABLE );
160:main.c **** else
161:main.c **** alarm_enable = 0x01;
345 .stabn 68,0,161,.LM23-AVR_Init
346 .LM23:
347 00a0 81E0 ldi r24,lo8(1)
348 .L19:
349 00a2 8093 0000 sts alarm_enable,r24
162:main.c ****
163:main.c **** if( eeprom_rb( &TYPE_B_SETTING ) == eeprom_rb( &TYPE_B_SETTING_CHK ) )
350 .stabn 68,0,163,.LM24-AVR_Init
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 10
351 .LM24:
352 00a6 80E0 ldi r24,lo8(TYPE_B_SETTING)
353 00a8 90E0 ldi r25,hi8(TYPE_B_SETTING)
354 00aa 00D0 rcall eeprom_read_byte
355 00ac 182F mov r17,r24
356 00ae 80E0 ldi r24,lo8(TYPE_B_SETTING_CHK)
357 00b0 90E0 ldi r25,hi8(TYPE_B_SETTING_CHK)
358 00b2 00D0 rcall eeprom_read_byte
359 00b4 1817 cp r17,r24
360 00b6 11F0 breq .L26
164:main.c **** type_b_setting = eeprom_rb( &TYPE_B_SETTING );
165:main.c **** else
166:main.c **** type_b_setting = 0x01;
361 .stabn 68,0,166,.LM25-AVR_Init
362 .LM25:
363 00b8 81E0 ldi r24,lo8(1)
364 00ba 14C0 rjmp .L20
365 .stabn 68,0,164,.LM26-AVR_Init
366 .LM26:
367 .L26:
368 00bc 80E0 ldi r24,lo8(TYPE_B_SETTING)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -