⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com2iic.lst

📁 串口转发IIC程序
💻 LST
字号:
   1               		.file	"COM2IIC.c"
   2               		.arch atmega16
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  59               	.global	main
  61               	main:
   1:COM2IIC.c     **** ///////////////////////////////////////////
   2:COM2IIC.c     **** //		COM2IIC.C
   3:COM2IIC.c     **** //	Function:
   4:COM2IIC.c     **** //	Create : Guobg 
   5:COM2IIC.c     **** //	Date :	20060212
   6:COM2IIC.c     **** //	Revision:	0.0
   7:COM2IIC.c     **** ///////////////////////////////////////////
   8:COM2IIC.c     **** //	Modify History
   9:COM2IIC.c     **** //
  10:COM2IIC.c     **** ///////////////////////////////////////////
  11:COM2IIC.c     **** #include "IIC_AVR.H"
  12:COM2IIC.c     **** #include "COM2IIC.h"
  13:COM2IIC.c     **** #include "UART.H"
  14:COM2IIC.c     **** #include "globle.h"
  15:COM2IIC.c     **** 
  16:COM2IIC.c     **** extern struct data bit_flag; 
  17:COM2IIC.c     **** extern struct IIC_BUFFER IIC_Buffer_In,IIC_Buffer_Out;
  18:COM2IIC.c     **** extern U8 ucIICTimeoutCount;			// IIC Time out counter
  19:COM2IIC.c     **** 
  20:COM2IIC.c     **** int main(void)
  21:COM2IIC.c     **** {
  63               	.LM1:
  64               	/* prologue: frame size=1 */
  65 0000 C0E0      		ldi r28,lo8(__stack - 1)
  66 0002 D0E0      		ldi r29,hi8(__stack - 1)
  67 0004 DEBF      		out __SP_H__,r29
  68 0006 CDBF      		out __SP_L__,r28
  69               	/* prologue end (size=4) */
  22:COM2IIC.c     **** 	U8 i;
  23:COM2IIC.c     **** 	IIC_Init(IIC_SLAVE_ADDRESS,IIC_BAUDRATE_100K);
  71               	.LM2:
  72 0008 61E0      		ldi r22,lo8(1)
  73 000a 81E0      		ldi r24,lo8(1)
  74 000c 0E94 0000 		call IIC_Init
  24:COM2IIC.c     **** 
  25:COM2IIC.c     **** 	
  26:COM2IIC.c     **** 	SerialInit();
  76               	.LM3:
  77 0010 0E94 0000 		call SerialInit
  27:COM2IIC.c     **** 	IIC_Buffer_Out.ucDestinationAddress=10;
  79               	.LM4:
  80 0014 8AE0      		ldi r24,lo8(10)
  81 0016 8093 0000 		sts IIC_Buffer_Out+18,r24
  82               	.L2:
  28:COM2IIC.c     **** 	while(1)
  29:COM2IIC.c     **** 	{
  30:COM2IIC.c     **** 		if(inbufful)
  84               	.LM5:
  85 001a 8091 0000 		lds r24,bit_flag
  86 001e 8695      		lsr r24
  87 0020 8695      		lsr r24
  88 0022 9927      		clr r25
  89 0024 8170      		andi r24,lo8(1)
  90 0026 9070      		andi r25,hi8(1)
  91 0028 0097      		sbiw r24,0
  92 002a 49F1      		breq .L4
  93               	.L5:
  31:COM2IIC.c     **** 		{// Uart Rx buffer full
  32:COM2IIC.c     **** 			while(!IIC_Buffer_Out.ucIICBufferStatus.bEnAccess);
  95               	.LM6:
  96 002c 8091 0000 		lds r24,IIC_Buffer_Out+19
  97 0030 9927      		clr r25
  98 0032 8170      		andi r24,lo8(1)
  99 0034 9070      		andi r25,hi8(1)
 100 0036 0097      		sbiw r24,0
 101 0038 09F4      		brne .L6
 102 003a F8CF      		rjmp .L5
 103               	.L6:
  33:COM2IIC.c     **** 			for(i=0;i<ILEN;i++)
 105               	.LM7:
 106 003c 1982      		std Y+1,__zero_reg__
 107               	.L7:
 108 003e 8981      		ldd r24,Y+1
 109 0040 8C30      		cpi r24,lo8(12)
 110 0042 90F4      		brsh .L8
  34:COM2IIC.c     **** 			{
  35:COM2IIC.c     **** 				IIC_Buffer_Out.ucIICBufferStatus.bEnAccess=0;
 112               	.LM8:
 113 0044 8091 0000 		lds r24,IIC_Buffer_Out+19
 114 0048 8E7F      		andi r24,lo8(-2)
 115 004a 8093 0000 		sts IIC_Buffer_Out+19,r24
  36:COM2IIC.c     **** 				IIC_Buffer_Out.IIC_BUFFER_UNION.ucData[i]=GetByte();
 117               	.LM9:
 118 004e 8981      		ldd r24,Y+1
 119 0050 9927      		clr r25
 120 0052 8C01      		movw r16,r24
 121 0054 0050      		subi r16,lo8(-(IIC_Buffer_Out))
 122 0056 1040      		sbci r17,hi8(-(IIC_Buffer_Out))
 123 0058 0E94 0000 		call GetByte
 124 005c F801      		movw r30,r16
 125 005e 8083      		st Z,r24
 127               	.LM10:
 128 0060 8981      		ldd r24,Y+1
 129 0062 8F5F      		subi r24,lo8(-(1))
 130 0064 8983      		std Y+1,r24
 131 0066 EBCF      		rjmp .L7
 132               	.L8:
  37:COM2IIC.c     **** 			}
  38:COM2IIC.c     **** 			IIC_Buffer_Out.ucWriteP=i;
 134               	.LM11:
 135 0068 8981      		ldd r24,Y+1
 136 006a 8093 0000 		sts IIC_Buffer_Out+16,r24
  39:COM2IIC.c     **** 			IIC_START;
 138               	.LM12:
 139 006e 8091 5600 		lds r24,86
 140 0072 856A      		ori r24,lo8(-91)
 141 0074 8093 5600 		sts 86,r24
 142 0078 8FEF      		ldi r24,lo8(-1)
 143 007a 8093 0000 		sts ucIICTimeoutCount,r24
 144               	.L4:
  40:COM2IIC.c     **** 		}
  41:COM2IIC.c     **** 
  42:COM2IIC.c     **** 		if(IIC_Buffer_In.ucIICBufferStatus.bEnAccess)
 146               	.LM13:
 147 007e 8091 0000 		lds r24,IIC_Buffer_In+19
 148 0082 9927      		clr r25
 149 0084 8170      		andi r24,lo8(1)
 150 0086 9070      		andi r25,hi8(1)
 151 0088 0097      		sbiw r24,0
 152 008a 39F2      		breq .L2
  43:COM2IIC.c     **** 		{// Recieved a frame from IIC
  44:COM2IIC.c     **** 			IIC_Buffer_In.ucIICBufferStatus.bEnAccess=0;
 154               	.LM14:
 155 008c 8091 0000 		lds r24,IIC_Buffer_In+19
 156 0090 8E7F      		andi r24,lo8(-2)
 157 0092 8093 0000 		sts IIC_Buffer_In+19,r24
  45:COM2IIC.c     **** 			for(i=0;i<IIC_Buffer_In.ucWriteP;i++)
 159               	.LM15:
 160 0096 1982      		std Y+1,__zero_reg__
 161               	.L11:
 162 0098 9091 0000 		lds r25,IIC_Buffer_In+16
 163 009c 8981      		ldd r24,Y+1
 164 009e 8917      		cp r24,r25
 165 00a0 08F0      		brlo .+2
 166 00a2 BBCF      		rjmp .L2
  46:COM2IIC.c     **** 			{
  47:COM2IIC.c     **** 				PutByte(IIC_Buffer_In.IIC_BUFFER_UNION.ucData[i]);
 168               	.LM16:
 169 00a4 8981      		ldd r24,Y+1
 170 00a6 9927      		clr r25
 171 00a8 FC01      		movw r30,r24
 172 00aa E050      		subi r30,lo8(-(IIC_Buffer_In))
 173 00ac F040      		sbci r31,hi8(-(IIC_Buffer_In))
 174 00ae 8081      		ld r24,Z
 175 00b0 0E94 0000 		call PutByte
 177               	.LM17:
 178 00b4 8981      		ldd r24,Y+1
 179 00b6 8F5F      		subi r24,lo8(-(1))
 180 00b8 8983      		std Y+1,r24
 181 00ba EECF      		rjmp .L11
 182               	/* epilogue: frame size=1 */
 183               	/* epilogue: noreturn */
 184               	/* epilogue end (size=0) */
 185               	/* function main size 94 (90) */
 188               		.text
 190               	Letext:
 191               	/* File "COM2IIC.c": code   94 = 0x005e (  90), prologues   4, epilogues   0 */
DEFINED SYMBOLS
                            *ABS*:00000000 COM2IIC.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Guobg\LOCALS~1\Temp/ccglaaaa.s:61     .text:00000000 main
C:\DOCUME~1\Guobg\LOCALS~1\Temp/ccglaaaa.s:190    .text:000000bc Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
IIC_Init
SerialInit
IIC_Buffer_Out
bit_flag
GetByte
ucIICTimeoutCount
IIC_Buffer_In
PutByte

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -