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

📄 main.lst

📁 旋转16个LED灯控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"main.c"
   2               		.arch attiny2313
   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
  17               	.Ltext0:
  18               	.global	pixelNum
  19               	.global	pixelNum
  20               		.section .bss
  23               	pixelNum:
  24 0000 00        		.skip 1,0
  25               	.global	charNum
  26               	.global	charNum
  29               	charNum:
  30 0001 00        		.skip 1,0
  31               	.global	botChar
  32               	.global	botChar
  35               	botChar:
  36 0002 0000      		.skip 2,0
  37               	.global	topChar
  38               	.global	topChar
  41               	topChar:
  42 0004 0000      		.skip 2,0
  43               	.global	line_shift
  44               		.data
  47               	line_shift:
  48 0000 0F        		.byte	15
  49               	.global	cur_line
  52               	cur_line:
  53 0001 FF        		.byte	-1
  54               	.global	line_timer_l
  57               	line_timer_l:
  58 0002 10        		.byte	16
  59               	.global	line_timer_h
  60               	.global	line_timer_h
  61               		.section .bss
  64               	line_timer_h:
  65 0006 00        		.skip 1,0
  66               	.global	div732
  67               		.section	.progmem.data,"a",@progbits
  70               	div732:
  71 0000 00        		.string	""
  72 0001 00        		.string	""
  73 0002 0100      		.string	"\001"
  74 0004 00        		.string	""
  75 0005 0300      		.string	"\003"
  76 0007 00        		.string	""
  77 0008 0500      		.string	"\005"
  78 000a 0101 00   		.string	"\001\001"
  79 000d 0202 00   		.string	"\002\002"
  80 0010 0403 00   		.string	"\004\003"
  81 0013 0806 0107 		.string	"\b\006\001\007\003\003\004\005"
  81      0303 0405 
  81      00
  82               	.global	dynamicCounter
  83               		.data
  86               	dynamicCounter:
  87 0003 3030 3030 		.string	"0000"
  87      00
  88               	.global	dynamicType
  89               	.global	dynamicType
  90               		.section .bss
  93               	dynamicType:
  94 0007 00        		.skip 1,0
  95               	.global	newDynamicPtr
  96               	.global	newDynamicPtr
  99               	newDynamicPtr:
 100 0008 0000      		.skip 2,0
 101               	.global	dynamicPtr
 102               	.global	dynamicPtr
 105               	dynamicPtr:
 106 000a 0000      		.skip 2,0
 107               	.global	dInfo
 108               		.section	.progmem.data
 111               	dInfo:
 112 001c 00        		.byte	0
 113 001d 28        		.byte	40
 114 001e 00        		.byte	0
 115               	.global	lines
 118               	lines:
 119 001f 7F7F 7F7F 		.string	"\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177      0000      "
 119      7F7F 7F7F 
 119      7F7F 7F7F 
 119      7F7F 7F7F 
 119      2020 2020 
 120               		.text
 121               	.global	clock_scroll
 123               	clock_scroll:
 124               	.LFB2:
 125               	.LM1:
 126               	/* prologue: frame size=0 */
 127 0000 CF93      		push r28
 128               	/* prologue end (size=1) */
 129 0002 C82F      		mov r28,r24
 130               	.LM2:
 131 0004 8091 0000 		lds r24,fleds
 132 0008 00D0      		rcall spi_transfer
 133               	.LM3:
 134 000a 8091 0000 		lds r24,fleds+1
 135 000e 00D0      		rcall spi_transfer
 136               	.LM4:
 137 0010 8091 0000 		lds r24,fleds+2
 138 0014 00D0      		rcall spi_transfer
 139               	.LM5:
 140 0016 8091 0000 		lds r24,fleds+3
 141 001a 00D0      		rcall spi_transfer
 142               	.LM6:
 143 001c CC23      		tst r28
 144 001e 79F0      		breq .L2
 145               	.LM7:
 146 0020 C830      		cpi r28,lo8(8)
 147 0022 20F4      		brsh .L3
 148               	.LM8:
 149 0024 6C2F      		mov r22,r28
 150 0026 8091 0000 		lds r24,fleds+4
 151 002a 08C0      		rjmp .L6
 152               	.L3:
 153               	.LM9:
 154 002c 8091 0000 		lds r24,fleds+4
 155 0030 00D0      		rcall spi_transfer
 156               	.LM10:
 157 0032 C850      		subi r28,lo8(-(-8))
 158               	.LM11:
 159 0034 21F0      		breq .L2
 160               	.LM12:
 161 0036 6C2F      		mov r22,r28
 162 0038 8091 0000 		lds r24,fleds+5
 163               	.L6:
 164 003c 00D0      		rcall spi_transfer_n
 165               	.L2:
 166               	.LM13:
 167 003e 949A      		sbi 50-0x20,4
 168               	.LM14:
 169               	/* #APP */
 170 0040 0000      		nop
 171 0042 0000      		nop
 172 0044 0000      		nop
 173 0046 0000      		nop
 174               	.LM15:
 175               	/* #NOAPP */
 176 0048 9498      		cbi 50-0x20,4
 177               	/* epilogue: frame size=0 */
 178 004a CF91      		pop r28
 179 004c 0895      		ret
 180               	/* epilogue end (size=2) */
 181               	/* function clock_scroll size 44 (41) */
 182               	.LFE2:
 184               	.global	__vector_6
 186               	__vector_6:
 187               	.LFB3:
 188               	.LM16:
 189               	/* prologue: frame size=0 */
 190 004e 1F92      		push __zero_reg__
 191 0050 0F92      		push __tmp_reg__
 192 0052 0FB6      		in __tmp_reg__,__SREG__
 193 0054 0F92      		push __tmp_reg__
 194 0056 1124      		clr __zero_reg__
 195 0058 2F93      		push r18
 196 005a 8F93      		push r24
 197 005c 9F93      		push r25
 198               	/* prologue end (size=8) */
 199               	.LM17:
 200 005e 8091 0000 		lds r24,hall_debounce
 201 0062 8F3F      		cpi r24,lo8(-1)
 202 0064 29F0      		breq .L8
 203               	.LM18:
 204 0066 8091 0000 		lds r24,hall_debounce
 205 006a 8F5F      		subi r24,lo8(-(1))
 206 006c 8093 0000 		sts hall_debounce,r24
 207               	.L8:
 208               	.LM19:
 209 0070 8091 0000 		lds r24,sensor_timer
 210 0074 9091 0000 		lds r25,(sensor_timer)+1
 211 0078 8F5F      		subi r24,lo8(-1)
 212 007a 9F4F      		sbci r25,hi8(-1)
 213 007c 49F0      		breq .L7
 214               	.LM20:
 215 007e 8091 0000 		lds r24,sensor_timer
 216 0082 9091 0000 		lds r25,(sensor_timer)+1
 217 0086 0196      		adiw r24,1
 218 0088 9093 0000 		sts (sensor_timer)+1,r25
 219 008c 8093 0000 		sts sensor_timer,r24
 220               	.L7:
 221               	/* epilogue: frame size=0 */
 222 0090 9F91      		pop r25
 223 0092 8F91      		pop r24
 224 0094 2F91      		pop r18
 225 0096 0F90      		pop __tmp_reg__
 226 0098 0FBE      		out __SREG__,__tmp_reg__
 227 009a 0F90      		pop __tmp_reg__
 228 009c 1F90      		pop __zero_reg__
 229 009e 1895      		reti
 230               	/* epilogue end (size=8) */
 231               	/* function __vector_6 size 42 (26) */
 232               	.LFE3:
 234               	.global	set_all
 236               	set_all:
 237               	.LFB9:
 238               	.LM21:
 239               	/* prologue: frame size=0 */
 240               	/* prologue end (size=0) */
 241               	.LM22:
 242 00a0 8093 0000 		sts fleds+3,r24
 243 00a4 8093 0000 		sts fleds+2,r24
 244 00a8 8093 0000 		sts fleds+1,r24
 245 00ac 8093 0000 		sts fleds,r24
 246               	.LM23:
 247 00b0 80E0      		ldi r24,lo8(0)
 248 00b2 A6DF      		rcall clock_scroll
 249               	/* epilogue: frame size=0 */
 250 00b4 0895      		ret
 251               	/* epilogue end (size=1) */
 252               	/* function set_all size 11 (10) */
 253               	.LFE9:
 255               	.global	__vector_4
 257               	__vector_4:
 258               	.LFB4:
 259               	.LM24:
 260               	/* prologue: frame size=0 */
 261 00b6 1F92      		push __zero_reg__
 262 00b8 0F92      		push __tmp_reg__
 263 00ba 0FB6      		in __tmp_reg__,__SREG__
 264 00bc 0F92      		push __tmp_reg__
 265 00be 1124      		clr __zero_reg__
 266 00c0 2F93      		push r18
 267 00c2 3F93      		push r19
 268 00c4 4F93      		push r20
 269 00c6 5F93      		push r21
 270 00c8 6F93      		push r22
 271 00ca 7F93      		push r23
 272 00cc 8F93      		push r24
 273 00ce 9F93      		push r25
 274 00d0 AF93      		push r26
 275 00d2 BF93      		push r27
 276 00d4 EF93      		push r30
 277 00d6 FF93      		push r31
 278               	/* prologue end (size=17) */
 279               	.LM25:
 280 00d8 8091 0000 		lds r24,sensor_timer
 281 00dc 9091 0000 		lds r25,(sensor_timer)+1
 282 00e0 8256      		subi r24,lo8(610)
 283 00e2 9240      		sbci r25,hi8(610)
 284 00e4 08F0      		brlo .+2
 285 00e6 80C0      		rjmp .L12
 286               	.LM26:
 287 00e8 8091 0000 		lds r24,pixelNum
 288 00ec 8F5F      		subi r24,lo8(-(1))
 289 00ee 8093 0000 		sts pixelNum,r24
 290               	.LM27:
 291 00f2 8091 0000 		lds r24,pixelNum
 292 00f6 8031      		cpi r24,lo8(16)
 293 00f8 09F0      		breq .+2
 294 00fa 51C0      		rjmp .L13
 295               	.LM28:
 296 00fc 8091 0000 		lds r24,charNum
 297 0100 8F30      		cpi r24,lo8(15)
 298 0102 61F0      		breq .L19
 299               	.LM29:
 300 0104 1092 0000 		sts pixelNum,__zero_reg__
 301               	.LM30:
 302 0108 8091 0000 		lds r24,charNum
 303 010c 8F5F      		subi r24,lo8(-(1))
 304 010e 8F70      		andi r24,lo8(15)
 305 0110 8093 0000 		sts charNum,r24
 306               	.LM31:
 307 0114 8091 0000 		lds r24,charNum
 308 0118 8F30      		cpi r24,lo8(15)
 309 011a 29F4      		brne .L15
 310               	.L19:
 311               	.LM32:
 312 011c 8EB5      		in r24,78-0x20
 313 011e 887F      		andi r24,lo8(-8)
 314 0120 8EBD      		out 78-0x20,r24
 315               	.LM33:
 316 0122 8FEF      		ldi r24,lo8(-1)
 317 0124 65C0      		rjmp .L18
 318               	.L15:
 319               	.LM34:
 320 0126 8091 0000 		lds r24,charNum
 321 012a E82F      		mov r30,r24
 322 012c FF27      		clr r31
 323 012e E050      		subi r30,lo8(-(topLine))
 324 0130 F040      		sbci r31,hi8(-(topLine))
 325 0132 E081      		ld r30,Z
 326 0134 E052      		subi r30,lo8(-(-32))
 327               	.LM35:
 328 0136 8E2F      		mov r24,r30
 329 0138 8695      		lsr r24
 330 013a 282F      		mov r18,r24
 331 013c 3327      		clr r19
 332 013e 76E0      		ldi r23,6
 333 0140 220F      	1:	lsl r18
 334 0142 331F      		rol r19
 335 0144 7A95      		dec r23
 336 0146 E1F7      		brne 1b
 337 0148 8E2F      		mov r24,r30
 338 014a 9927      		clr r25
 339 014c 8170      		andi r24,lo8(1)
 340 014e 9070      		andi r25,hi8(1)
 341 0150 880F      		lsl r24
 342 0152 991F      		rol r25
 343 0154 282B      		or r18,r24
 344 0156 392B      		or r19,r25
 345 0158 3093 0000 		sts (topChar)+1,r19
 346 015c 2093 0000 		sts topChar,r18
 347               	.LM36:
 348 0160 8091 0000 		lds r24,charNum
 349 0164 E82F      		mov r30,r24
 350 0166 FF27      		clr r31
 351 0168 E050      		subi r30,lo8(-(botLine))
 352 016a F040      		sbci r31,hi8(-(botLine))
 353 016c E081      		ld r30,Z
 354 016e E052      		subi r30,lo8(-(-32))
 355               	.LM37:
 356 0170 8E2F      		mov r24,r30
 357 0172 8695      		lsr r24
 358 0174 282F      		mov r18,r24
 359 0176 3327      		clr r19
 360 0178 6894      		set
 361 017a 15F8      		bld __zero_reg__,6-1
 362 017c 220F      	1:	lsl r18
 363 017e 331F      		rol r19
 364 0180 1694      		lsr __zero_reg__
 365 0182 E1F7      		brne 1b
 366 0184 8E2F      		mov r24,r30
 367 0186 9927      		clr r25
 368 0188 8170      		andi r24,lo8(1)
 369 018a 9070      		andi r25,hi8(1)
 370 018c 880F      		lsl r24
 371 018e 991F      		rol r25
 372 0190 282B      		or r18,r24
 373 0192 392B      		or r19,r25
 374 0194 3093 0000 		sts (botChar)+1,r19
 375 0198 2093 0000 		sts botChar,r18
 376 019c 12C0      		rjmp .L16
 377               	.L13:
 378               	.LM38:
 379 019e 8091 0000 		lds r24,topChar
 380 01a2 9091 0000 		lds r25,(topChar)+1
 381 01a6 0496      		adiw r24,4
 382 01a8 9093 0000 		sts (topChar)+1,r25
 383 01ac 8093 0000 		sts topChar,r24
 384               	.LM39:
 385 01b0 8091 0000 		lds r24,botChar
 386 01b4 9091 0000 		lds r25,(botChar)+1
 387 01b8 0496      		adiw r24,4
 388 01ba 9093 0000 		sts (botChar)+1,r25
 389 01be 8093 0000 		sts botChar,r24
 390               	.L16:
 391               	.LM40:
 392 01c2 42E0      		ldi r20,lo8(2)
 393 01c4 60E0      		ldi r22,lo8(fleds)
 394 01c6 70E0      		ldi r23,hi8(fleds)
 395 01c8 8091 0000 		lds r24,topChar
 396 01cc 9091 0000 		lds r25,(topChar)+1
 397 01d0 00D0      		rcall spieeprom_read
 398               	.LM41:
 399 01d2 42E0      		ldi r20,lo8(2)
 400 01d4 60E0      		ldi r22,lo8(fleds+2)
 401 01d6 70E0      		ldi r23,hi8(fleds+2)
 402 01d8 8091 0000 		lds r24,botChar
 403 01dc 9091 0000 		lds r25,(botChar)+1
 404 01e0 00D0      		rcall spieeprom_read
 405               	.LM42:
 406 01e2 80E0      		ldi r24,lo8(0)
 407 01e4 0DDF      		rcall clock_scroll
 408 01e6 05C0      		rjmp .L11

⌨️ 快捷键说明

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