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

📄 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	scrollChar
  19               	.global	scrollChar
  20               		.section .bss
  23               	scrollChar:
  24 0000 0000      		.skip 2,0
  25               	.global	pixelNum
  26               	.global	pixelNum
  29               	pixelNum:
  30 0002 00        		.skip 1,0
  31               	.global	charNum
  32               	.global	charNum
  35               	charNum:
  36 0003 00        		.skip 1,0
  37               	.global	botChar
  38               	.global	botChar
  41               	botChar:
  42 0004 0000      		.skip 2,0
  43               	.global	topChar
  44               	.global	topChar
  47               	topChar:
  48 0006 0000      		.skip 2,0
  49               	.global	line_shift
  50               		.data
  53               	line_shift:
  54 0000 0F        		.byte	15
  55               	.global	cur_line
  58               	cur_line:
  59 0001 FF        		.byte	-1
  60               	.global	line_timer_l
  63               	line_timer_l:
  64 0002 10        		.byte	16
  65               	.global	line_timer_h
  66               	.global	line_timer_h
  67               		.section .bss
  70               	line_timer_h:
  71 0008 00        		.skip 1,0
  72               	.global	dynamicCounter
  73               		.data
  76               	dynamicCounter:
  77 0003 3030 3030 		.string	"0000"
  77      00
  78               	.global	dynamicType
  79               	.global	dynamicType
  80               		.section .bss
  83               	dynamicType:
  84 0009 00        		.skip 1,0
  85               	.global	newDynamicPtr
  86               	.global	newDynamicPtr
  89               	newDynamicPtr:
  90 000a 0000      		.skip 2,0
  91               	.global	dynamicPtr
  92               	.global	dynamicPtr
  95               	dynamicPtr:
  96 000c 0000      		.skip 2,0
  97               	.global	dInfo
  98               		.section	.progmem.data,"a",@progbits
 101               	dInfo:
 102 0000 00        		.byte	0
 103 0001 19        		.byte	25
 104 0002 00        		.byte	0
 105               	.global	lines
 108               	lines:
 109 0003 2020 2052 		.string	"   REV COUNT:         0000      "
 109      4556 2043 
 109      4F55 4E54 
 109      3A20 2020 
 109      2020 2020 
 110               		.text
 111               	.global	clock_scroll
 113               	clock_scroll:
 114               	.LFB2:
 115               	.LM1:
 116               	/* prologue: frame size=0 */
 117 0000 CF93      		push r28
 118               	/* prologue end (size=1) */
 119 0002 C82F      		mov r28,r24
 120               	.LM2:
 121 0004 8091 0000 		lds r24,fleds
 122 0008 00D0      		rcall spi_transfer
 123               	.LM3:
 124 000a 8091 0000 		lds r24,fleds+1
 125 000e 00D0      		rcall spi_transfer
 126               	.LM4:
 127 0010 8091 0000 		lds r24,fleds+2
 128 0014 00D0      		rcall spi_transfer
 129               	.LM5:
 130 0016 8091 0000 		lds r24,fleds+3
 131 001a 00D0      		rcall spi_transfer
 132               	.LM6:
 133 001c CC23      		tst r28
 134 001e 79F0      		breq .L2
 135               	.LM7:
 136 0020 C830      		cpi r28,lo8(8)
 137 0022 20F4      		brsh .L3
 138               	.LM8:
 139 0024 6C2F      		mov r22,r28
 140 0026 8091 0000 		lds r24,fleds+4
 141 002a 08C0      		rjmp .L6
 142               	.L3:
 143               	.LM9:
 144 002c 8091 0000 		lds r24,fleds+4
 145 0030 00D0      		rcall spi_transfer
 146               	.LM10:
 147 0032 C850      		subi r28,lo8(-(-8))
 148               	.LM11:
 149 0034 21F0      		breq .L2
 150               	.LM12:
 151 0036 6C2F      		mov r22,r28
 152 0038 8091 0000 		lds r24,fleds+5
 153               	.L6:
 154 003c 00D0      		rcall spi_transfer_n
 155               	.L2:
 156               	.LM13:
 157 003e 949A      		sbi 50-0x20,4
 158               	.LM14:
 159               	/* #APP */
 160 0040 0000      		nop
 161 0042 0000      		nop
 162 0044 0000      		nop
 163 0046 0000      		nop
 164               	.LM15:
 165               	/* #NOAPP */
 166 0048 9498      		cbi 50-0x20,4
 167               	/* epilogue: frame size=0 */
 168 004a CF91      		pop r28
 169 004c 0895      		ret
 170               	/* epilogue end (size=2) */
 171               	/* function clock_scroll size 44 (41) */
 172               	.LFE2:
 174               	.global	__vector_6
 176               	__vector_6:
 177               	.LFB3:
 178               	.LM16:
 179               	/* prologue: frame size=0 */
 180 004e 1F92      		push __zero_reg__
 181 0050 0F92      		push __tmp_reg__
 182 0052 0FB6      		in __tmp_reg__,__SREG__
 183 0054 0F92      		push __tmp_reg__
 184 0056 1124      		clr __zero_reg__
 185 0058 2F93      		push r18
 186 005a 8F93      		push r24
 187 005c 9F93      		push r25
 188               	/* prologue end (size=8) */
 189               	.LM17:
 190 005e 8091 0000 		lds r24,hall_debounce
 191 0062 8F3F      		cpi r24,lo8(-1)
 192 0064 29F0      		breq .L8
 193               	.LM18:
 194 0066 8091 0000 		lds r24,hall_debounce
 195 006a 8F5F      		subi r24,lo8(-(1))
 196 006c 8093 0000 		sts hall_debounce,r24
 197               	.L8:
 198               	.LM19:
 199 0070 8091 0000 		lds r24,sensor_timer
 200 0074 9091 0000 		lds r25,(sensor_timer)+1
 201 0078 8F5F      		subi r24,lo8(-1)
 202 007a 9F4F      		sbci r25,hi8(-1)
 203 007c 49F0      		breq .L9
 204               	.LM20:
 205 007e 8091 0000 		lds r24,sensor_timer
 206 0082 9091 0000 		lds r25,(sensor_timer)+1
 207 0086 0196      		adiw r24,1
 208 0088 9093 0000 		sts (sensor_timer)+1,r25
 209 008c 8093 0000 		sts sensor_timer,r24
 210               	.L9:
 211               	.LM21:
 212 0090 8091 0000 		lds r24,line_timer_l
 213 0094 8F5F      		subi r24,lo8(-(1))
 214 0096 8093 0000 		sts line_timer_l,r24
 215               	.LM22:
 216 009a 8091 0000 		lds r24,line_timer_l
 217 009e 8823      		tst r24
 218 00a0 29F4      		brne .L7
 219               	.LM23:
 220 00a2 8091 0000 		lds r24,line_timer_h
 221 00a6 8F5F      		subi r24,lo8(-(1))
 222 00a8 8093 0000 		sts line_timer_h,r24
 223               	.L7:
 224               	/* epilogue: frame size=0 */
 225 00ac 9F91      		pop r25
 226 00ae 8F91      		pop r24
 227 00b0 2F91      		pop r18
 228 00b2 0F90      		pop __tmp_reg__
 229 00b4 0FBE      		out __SREG__,__tmp_reg__
 230 00b6 0F90      		pop __tmp_reg__
 231 00b8 1F90      		pop __zero_reg__
 232 00ba 1895      		reti
 233               	/* epilogue end (size=8) */
 234               	/* function __vector_6 size 56 (40) */
 235               	.LFE3:
 237               	.global	set_all
 239               	set_all:
 240               	.LFB9:
 241               	.LM24:
 242               	/* prologue: frame size=0 */
 243               	/* prologue end (size=0) */
 244               	.LM25:
 245 00bc 8093 0000 		sts fleds+3,r24
 246 00c0 8093 0000 		sts fleds+2,r24
 247 00c4 8093 0000 		sts fleds+1,r24
 248 00c8 8093 0000 		sts fleds,r24
 249               	.LM26:
 250 00cc 80E0      		ldi r24,lo8(0)
 251 00ce 98DF      		rcall clock_scroll
 252               	/* epilogue: frame size=0 */
 253 00d0 0895      		ret
 254               	/* epilogue end (size=1) */
 255               	/* function set_all size 11 (10) */
 256               	.LFE9:
 258               	.global	__vector_4
 260               	__vector_4:
 261               	.LFB4:
 262               	.LM27:
 263               	/* prologue: frame size=0 */
 264 00d2 1F92      		push __zero_reg__
 265 00d4 0F92      		push __tmp_reg__
 266 00d6 0FB6      		in __tmp_reg__,__SREG__
 267 00d8 0F92      		push __tmp_reg__
 268 00da 1124      		clr __zero_reg__
 269 00dc 2F93      		push r18
 270 00de 3F93      		push r19
 271 00e0 4F93      		push r20
 272 00e2 5F93      		push r21
 273 00e4 6F93      		push r22
 274 00e6 7F93      		push r23
 275 00e8 8F93      		push r24
 276 00ea 9F93      		push r25
 277 00ec AF93      		push r26
 278 00ee BF93      		push r27
 279 00f0 EF93      		push r30
 280 00f2 FF93      		push r31
 281               	/* prologue end (size=17) */
 282               	.LM28:
 283 00f4 8091 0000 		lds r24,sensor_timer
 284 00f8 9091 0000 		lds r25,(sensor_timer)+1
 285 00fc 8256      		subi r24,lo8(610)
 286 00fe 9240      		sbci r25,hi8(610)
 287 0100 08F0      		brlo .+2
 288 0102 A2C0      		rjmp .L13
 289               	.LM29:
 290 0104 8091 0000 		lds r24,pixelNum
 291 0108 8F5F      		subi r24,lo8(-(1))
 292 010a 8093 0000 		sts pixelNum,r24
 293               	.LM30:
 294 010e 8091 0000 		lds r24,pixelNum
 295 0112 8031      		cpi r24,lo8(16)
 296 0114 09F0      		breq .+2
 297 0116 61C0      		rjmp .L14
 298               	.LM31:
 299 0118 1092 0000 		sts pixelNum,__zero_reg__
 300               	.LM32:
 301 011c 8091 0000 		lds r24,charNum
 302 0120 8F5F      		subi r24,lo8(-(1))
 303 0122 8F70      		andi r24,lo8(15)
 304 0124 8093 0000 		sts charNum,r24
 305               	.LM33:
 306 0128 8091 0000 		lds r24,charNum
 307 012c E82F      		mov r30,r24
 308 012e FF27      		clr r31
 309 0130 E050      		subi r30,lo8(-(topLine))
 310 0132 F040      		sbci r31,hi8(-(topLine))
 311 0134 E081      		ld r30,Z
 312 0136 E052      		subi r30,lo8(-(-32))
 313               	.LM34:
 314 0138 8E2F      		mov r24,r30
 315 013a 8695      		lsr r24
 316 013c 282F      		mov r18,r24
 317 013e 3327      		clr r19
 318 0140 F6E0      		ldi r31,6
 319 0142 220F      	1:	lsl r18
 320 0144 331F      		rol r19
 321 0146 FA95      		dec r31
 322 0148 E1F7      		brne 1b
 323 014a 8E2F      		mov r24,r30
 324 014c 9927      		clr r25
 325 014e 8170      		andi r24,lo8(1)
 326 0150 9070      		andi r25,hi8(1)
 327 0152 880F      		lsl r24
 328 0154 991F      		rol r25
 329 0156 282B      		or r18,r24
 330 0158 392B      		or r19,r25
 331 015a 3093 0000 		sts (topChar)+1,r19
 332 015e 2093 0000 		sts topChar,r18
 333               	.LM35:
 334 0162 8091 0000 		lds r24,charNum
 335 0166 E82F      		mov r30,r24
 336 0168 FF27      		clr r31
 337 016a E050      		subi r30,lo8(-(botLine))
 338 016c F040      		sbci r31,hi8(-(botLine))
 339 016e E081      		ld r30,Z
 340 0170 E052      		subi r30,lo8(-(-32))
 341               	.LM36:
 342 0172 8E2F      		mov r24,r30
 343 0174 8695      		lsr r24
 344 0176 282F      		mov r18,r24
 345 0178 3327      		clr r19
 346 017a 76E0      		ldi r23,6
 347 017c 220F      	1:	lsl r18
 348 017e 331F      		rol r19
 349 0180 7A95      		dec r23
 350 0182 E1F7      		brne 1b
 351 0184 8E2F      		mov r24,r30
 352 0186 9927      		clr r25
 353 0188 8170      		andi r24,lo8(1)
 354 018a 9070      		andi r25,hi8(1)
 355 018c 880F      		lsl r24
 356 018e 991F      		rol r25
 357 0190 282B      		or r18,r24
 358 0192 392B      		or r19,r25
 359 0194 3093 0000 		sts (botChar)+1,r19
 360 0198 2093 0000 		sts botChar,r18
 361               	.LM37:
 362 019c 8091 0000 		lds r24,charNum
 363 01a0 E82F      		mov r30,r24
 364 01a2 FF27      		clr r31
 365 01a4 E050      		subi r30,lo8(-(scrollLine))
 366 01a6 F040      		sbci r31,hi8(-(scrollLine))
 367 01a8 E081      		ld r30,Z
 368 01aa E052      		subi r30,lo8(-(-32))
 369               	.LM38:
 370 01ac 8E2F      		mov r24,r30
 371 01ae 8695      		lsr r24
 372 01b0 282F      		mov r18,r24
 373 01b2 3327      		clr r19
 374 01b4 6894      		set
 375 01b6 15F8      		bld __zero_reg__,6-1
 376 01b8 220F      	1:	lsl r18
 377 01ba 331F      		rol r19
 378 01bc 1694      		lsr __zero_reg__
 379 01be E1F7      		brne 1b
 380 01c0 8E2F      		mov r24,r30
 381 01c2 9927      		clr r25
 382 01c4 8170      		andi r24,lo8(1)
 383 01c6 9070      		andi r25,hi8(1)
 384 01c8 880F      		lsl r24
 385 01ca 991F      		rol r25
 386 01cc 282B      		or r18,r24
 387 01ce 392B      		or r19,r25
 388 01d0 3093 0000 		sts (scrollChar)+1,r19
 389 01d4 2093 0000 		sts scrollChar,r18
 390 01d8 1BC0      		rjmp .L15
 391               	.L14:
 392               	.LM39:
 393 01da 8091 0000 		lds r24,topChar
 394 01de 9091 0000 		lds r25,(topChar)+1
 395 01e2 0496      		adiw r24,4
 396 01e4 9093 0000 		sts (topChar)+1,r25
 397 01e8 8093 0000 		sts topChar,r24
 398               	.LM40:
 399 01ec 8091 0000 		lds r24,botChar
 400 01f0 9091 0000 		lds r25,(botChar)+1
 401 01f4 0496      		adiw r24,4
 402 01f6 9093 0000 		sts (botChar)+1,r25
 403 01fa 8093 0000 		sts botChar,r24
 404               	.LM41:
 405 01fe 8091 0000 		lds r24,scrollChar
 406 0202 9091 0000 		lds r25,(scrollChar)+1
 407 0206 0496      		adiw r24,4
 408 0208 9093 0000 		sts (scrollChar)+1,r25
 409 020c 8093 0000 		sts scrollChar,r24
 410               	.L15:
 411               	.LM42:
 412 0210 42E0      		ldi r20,lo8(2)
 413 0212 60E0      		ldi r22,lo8(fleds)
 414 0214 70E0      		ldi r23,hi8(fleds)
 415 0216 8091 0000 		lds r24,topChar
 416 021a 9091 0000 		lds r25,(topChar)+1
 417 021e 00D0      		rcall spieeprom_read
 418               	.LM43:
 419 0220 42E0      		ldi r20,lo8(2)
 420 0222 60E0      		ldi r22,lo8(fleds+2)
 421 0224 70E0      		ldi r23,hi8(fleds+2)
 422 0226 8091 0000 		lds r24,botChar
 423 022a 9091 0000 		lds r25,(botChar)+1
 424 022e 00D0      		rcall spieeprom_read
 425               	.LM44:
 426 0230 42E0      		ldi r20,lo8(2)
 427 0232 60E0      		ldi r22,lo8(fleds+4)
 428 0234 70E0      		ldi r23,hi8(fleds+4)
 429 0236 8091 0000 		lds r24,scrollChar
 430 023a 9091 0000 		lds r25,(scrollChar)+1
 431 023e 00D0      		rcall spieeprom_read
 432               	.LM45:
 433 0240 8091 0000 		lds r24,line_shift
 434 0244 DDDE      		rcall clock_scroll
 435 0246 07C0      		rjmp .L12

⌨️ 快捷键说明

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