📄 main.lst
字号:
369 00be 90E0 ldi r25,hi8(TYPE_B_SETTING)
370 00c0 00D0 rcall eeprom_read_byte
371 00c2 10C0 rjmp .L20
372 .stabn 68,0,159,.LM27-AVR_Init
373 .LM27:
374 .L25:
375 00c4 80E0 ldi r24,lo8(ALARM_ENABLE)
376 00c6 90E0 ldi r25,hi8(ALARM_ENABLE)
377 00c8 00D0 rcall eeprom_read_byte
378 00ca EBCF rjmp .L19
379 .stabn 68,0,154,.LM28-AVR_Init
380 .LM28:
381 .L24:
382 00cc 80E0 ldi r24,lo8(ALARM_TIME)
383 00ce 90E0 ldi r25,hi8(ALARM_TIME)
384 00d0 00D0 rcall eeprom_read_byte
385 00d2 DBCF rjmp .L18
386 .stabn 68,0,149,.LM29-AVR_Init
387 .LM29:
388 .L23:
389 00d4 80E0 ldi r24,lo8(ALARM_LEVEL)
390 00d6 90E0 ldi r25,hi8(ALARM_LEVEL)
391 00d8 00D0 rcall eeprom_read_byte
392 00da CBCF rjmp .L17
393 .stabn 68,0,143,.LM30-AVR_Init
394 .LM30:
395 .L22:
396 00dc 80E0 ldi r24,lo8(WEIGAN_FORMAT)
397 00de 90E0 ldi r25,hi8(WEIGAN_FORMAT)
398 00e0 00D0 rcall eeprom_read_byte
399 00e2 BBCF rjmp .L16
400 .L20:
401 00e4 8093 0000 sts type_b_setting,r24
167:main.c ****
168:main.c **** // ---------------------------------------------------------------
169:main.c **** // General Interrupt Enable
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 11
170:main.c **** // ---------------------------------------------------------------
171:main.c ****
172:main.c **** MCUCR = ( ( 1 << ISC11 ) | ( 1 << ISC10 ) ); //INT1 triggered on rising edge
402 .stabn 68,0,172,.LM31-AVR_Init
403 .LM31:
404 00e8 8CE0 ldi r24,lo8(12)
405 00ea 85BF out 85-0x20,r24
173:main.c **** GICR = 0; //INT0 & INT1 disabled
406 .stabn 68,0,173,.LM32-AVR_Init
407 .LM32:
408 00ec 1BBE out 91-0x20,__zero_reg__
174:main.c ****
175:main.c ****
176:main.c **** Beep( 2 );
409 .stabn 68,0,176,.LM33-AVR_Init
410 .LM33:
411 00ee 82E0 ldi r24,lo8(2)
412 00f0 75D2 rcall Beep
177:main.c ****
178:main.c **** Set_GREEN_LED( );
413 .stabn 68,0,178,.LM34-AVR_Init
414 .LM34:
415 00f2 9698 cbi 50-0x20,6
179:main.c **** Delayms( 300 );
416 .stabn 68,0,179,.LM35-AVR_Init
417 .LM35:
418 00f4 8CE2 ldi r24,lo8(300)
419 00f6 91E0 ldi r25,hi8(300)
420 00f8 3ED2 rcall Delayms
180:main.c **** Set_RED_LED( );
421 .stabn 68,0,180,.LM36-AVR_Init
422 .LM36:
423 00fa 969A sbi 50-0x20,6
181:main.c ****
182:main.c **** sei( ); // General Interrupt Enable
424 .stabn 68,0,182,.LM37-AVR_Init
425 .LM37:
426 /* #APP */
427 00fc 7894 sei
183:main.c **** }
428 .stabn 68,0,183,.LM38-AVR_Init
429 .LM38:
430 /* #NOAPP */
431 /* epilogue: frame size=0 */
432 00fe 1F91 pop r17
433 0100 0895 ret
434 /* epilogue end (size=2) */
435 /* function AVR_Init size 136 (133) */
436 .size AVR_Init, .-AVR_Init
437 .Lscope0:
438 .stabs "",36,0,0,.Lscope0-AVR_Init
439 .stabs "UARTIni:F(0,20)",36,0,192,UARTIni
440 .global UARTIni
441 .type UARTIni, @function
442 UARTIni:
184:main.c ****
185:main.c **** // ********************************************************************************************
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 12
186:main.c **** // Description : UART initialize routinue.
187:main.c **** // Return value: None.
188:main.c **** // parameter : None.
189:main.c **** // ********************************************************************************************
190:main.c ****
191:main.c **** void UARTIni( void )
192:main.c **** {
443 .stabn 68,0,192,.LM39-UARTIni
444 .LM39:
445 /* prologue: frame size=0 */
446 /* prologue end (size=0) */
193:main.c **** // UCSRA is not necessary to set up, using initial valuses
194:main.c **** // no double transmission speed, no multi-processor mode
195:main.c **** //UCSRA: RXC , TXC , UDRE , FE , DOR , PE , U2X , MPCM ;
196:main.c **** //UCSRB: RXCIE, TXCIE, UDRIE, RXEN, TXEN, UCSZ2, RXB8,TXB8 ;
197:main.c **** // UCSRB = ( 1 << RXCIE ) | ( 0 << UDRIE ) | ( 1 << RXEN ) | ( 1 << TXEN );
198:main.c **** UCSRB = ( 1 << RXCIE ) | ( 0 << TXCIE ) | ( 1 << RXEN ) | ( 1 << TXEN );
447 .stabn 68,0,198,.LM40-UARTIni
448 .LM40:
449 0102 88E9 ldi r24,lo8(-104)
450 0104 8AB9 out 42-0x20,r24
199:main.c **** // set up : RXCIE, UDRIE, RXEN, TXEN
200:main.c **** // (interrupt enable from receiver,
201:main.c **** // UART receiver enable, UART transmit enable)
202:main.c **** // UCSRC: URSEL, UMSEL, UPM1, UPM0, USBS, UCSZ1, UCSZ0, UCPOL ;
203:main.c **** UCSRC = ( 1 << URSEL ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 );
451 .stabn 68,0,203,.LM41-UARTIni
452 .LM41:
453 0106 86E8 ldi r24,lo8(-122)
454 0108 80BD out 64-0x20,r24
204:main.c **** // asynchronous operation, 8 data bits,
205:main.c **** // no parity, 1 stop bit
206:main.c **** // UCSRC = ( 1 << URSEL ) | ( 1 << UPM1 ) | ( 1 << UPM0 ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 );
207:main.c **** // asynchronous operation, 8 data bits, odd parity, 1 stop bit;
208:main.c **** UBRRL = 103; // baud rate - see UBRR register setting table
455 .stabn 68,0,208,.LM42-UARTIni
456 .LM42:
457 010a 87E6 ldi r24,lo8(103)
458 010c 89B9 out 41-0x20,r24
209:main.c **** // in AVR ATmega8 specification
210:main.c **** // UBRRH - using initial values
211:main.c **** // UBRRL - 25 for 38k4Bd and frequency f=16 MHz
212:main.c **** // (using SINGLE transmission speed)
213:main.c **** // UBRRL = 51; // baud rate - 19200;
214:main.c ****
215:main.c **** rx_number = 0;
459 .stabn 68,0,215,.LM43-UARTIni
460 .LM43:
461 010e 1092 0000 sts rx_number,__zero_reg__
216:main.c **** tx_number = 0;
462 .stabn 68,0,216,.LM44-UARTIni
463 .LM44:
464 0112 1092 0000 sts tx_number,__zero_reg__
217:main.c **** valid_data_flag = 0; //This sign indicate if there is a valid command received;
465 .stabn 68,0,217,.LM45-UARTIni
466 .LM45:
467 0116 1092 0000 sts valid_data_flag,__zero_reg__
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 13
218:main.c **** // uart_valid_data_num = 0;
219:main.c **** }
468 .stabn 68,0,219,.LM46-UARTIni
469 .LM46:
470 /* epilogue: frame size=0 */
471 011a 0895 ret
472 /* epilogue end (size=1) */
473 /* function UARTIni size 13 (12) */
474 .size UARTIni, .-UARTIni
475 .Lscope1:
476 .stabs "",36,0,0,.Lscope1-UARTIni
477 .stabs "main:F(0,1)",36,0,228,main
478 .global main
479 .type main, @function
480 main:
220:main.c ****
221:main.c ****
222:main.c ****
223:main.c ****
224:main.c **** // ==================================================================
225:main.c **** // ==================================================================
226:main.c **** // ==================================================================
227:main.c **** int main(void)
228:main.c **** {
481 .stabn 68,0,228,.LM47-main
482 .LM47:
483 /* prologue: frame size=0 */
484 011c C0E0 ldi r28,lo8(__stack - 0)
485 011e D0E0 ldi r29,hi8(__stack - 0)
486 0120 DEBF out __SP_H__,r29
487 0122 CDBF out __SP_L__,r28
488 /* prologue end (size=4) */
229:main.c **** watchdog_reset = bit_is_set( MCUCSR , WDRF ); //capture watchdog resets
489 .stabn 68,0,229,.LM48-main
490 .LM48:
491 0124 84B7 in r24,84-0x20
492 0126 8870 andi r24,lo8(8)
493 0128 8093 0000 sts watchdog_reset,r24
230:main.c ****
231:main.c **** AVR_Init( ); // initialization
494 .stabn 68,0,231,.LM49-main
495 .LM49:
496 012c 69DF rcall AVR_Init
232:main.c ****
233:main.c **** Main_Receiver( );
497 .stabn 68,0,233,.LM50-main
498 .LM50:
499 012e 03D0 rcall Main_Receiver
234:main.c ****
235:main.c **** return( 0 );
236:main.c **** }
500 .stabn 68,0,236,.LM51-main
501 .LM51:
502 0130 80E0 ldi r24,lo8(0)
503 0132 90E0 ldi r25,hi8(0)
504 /* epilogue: frame size=0 */
505 0134 00C0 rjmp exit
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 14
506 /* epilogue end (size=1) */
507 /* function main size 13 (8) */
508 .size main, .-main
509 .Lscope2:
510 .stabs "",36,0,0,.Lscope2-main
511 .stabs "Main_Receiver:F(0,20)",36,0,242,Main_Receiver
512 .global Main_Receiver
513 .type Main_Receiver, @function
514 Main_Receiver:
237:main.c **** //--------------------------------------------------------------
238:main.c **** // main loop routine
239:main.c **** //--------------------------------------------------------------
240:main.c ****
241:main.c **** void Main_Receiver( void )
242:main.c **** {
515 .stabn 68,0,242,.LM52-Main_Receiver
516 .LM52:
517 /* prologue: frame size=0 */
518 0136 1F93 push r17
519 0138 CF93 push r28
520 /* prologue end (size=2) */
243:main.c ****
244:main.c **** // uint8_t i;
245:main.c ****
246:main.c **** bufferClean = 1; //on startup, make buffer not clean
521 .stabn 68,0,246,.LM53-Main_Receiver
522 .LM53:
523 .LBB2:
524 013a 81E0 ldi r24,lo8(1)
525 013c 8093 0000 sts bufferClean,r24
247:main.c ****
248:main.c **** forward_link_type = 0x01; //default value, 1=type B, 2=type A
526 .stabn 68,0,248,.LM54-Main_Receiver
527 .LM54:
528 0140 8093 0000 sts forward_link_type,r24
249:main.c **** fwd_B_timing = -111;
529 .stabn 68,0,249,.LM55-Main_Receiver
530 .LM55:
531 0144 81E9 ldi r24,lo8(-111)
532 0146 9FEF ldi r25,hi8(-111)
533 0148 9093 0000 sts (fwd_B_timing)+1,r25
534 014c 8093 0000 sts fwd_B_timing,r24
250:main.c ****
251:main.c **** counter1set = ( 1 << ICNC1 ) | ( 1 << CS10 );
535 .stabn 68,0,251,.LM56-Main_Receiver
536 .LM56:
537 0150 81E8 ldi r24,lo8(-127)
538 0152 8093 0000 sts counter1set,r24
252:main.c ****
253:main.c **** WriteSPI( write_4094_low , write_4094_hi );
539 .stabn 68,0,253,.LM57-Main_Receiver
540 .LM57:
541 0156 6091 0000 lds r22,write_4094_hi
542 015a 7091 0000 lds r23,(write_4094_hi)+1
543 015e 8091 0000 lds r24,write_4094_low
544 0162 9091 0000 lds r25,(write_4094_low)+1
545 0166 00D0 rcall WriteSPI
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s page 15
254:main.c **** Wait( 4000 );
546 .stabn 68,0,254,.LM58-Main_Receiver
547 .LM58:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -