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

📄 enoronhand.lss

📁 在AVR 平台下的控制代码,通过CAN控制
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     334:	b0 95       	com	r27
     336:	11 23       	and	r17, r17
     338:	91 f5       	brne	.+100    	; 0x39e
     33a:	fe 01       	movw	r30, r28
     33c:	ea 0f       	add	r30, r26
     33e:	fb 1f       	adc	r31, r27
     340:	83 81       	ldd	r24, Z+3	; 0x03
     342:	86 17       	cp	r24, r22
     344:	81 f5       	brne	.+96     	; 0x3a6
     346:	92 2f       	mov	r25, r18
     348:	39 81       	ldd	r19, Y+1	; 0x01
     34a:	23 17       	cp	r18, r19
     34c:	81 f0       	breq	.+32     	; 0x36e
     34e:	4a 81       	ldd	r20, Y+2	; 0x02
     350:	9f 5f       	subi	r25, 0xFF	; 255
     352:	94 17       	cp	r25, r20
     354:	0c f0       	brlt	.+2      	; 0x358
     356:	90 e0       	ldi	r25, 0x00	; 0
     358:	93 17       	cp	r25, r19
     35a:	49 f0       	breq	.+18     	; 0x36e
     35c:	e9 2f       	mov	r30, r25
     35e:	ff 27       	eor	r31, r31
     360:	e7 fd       	sbrc	r30, 7
     362:	f0 95       	com	r31
     364:	ec 0f       	add	r30, r28
     366:	fd 1f       	adc	r31, r29
     368:	83 81       	ldd	r24, Z+3	; 0x03
     36a:	86 17       	cp	r24, r22
     36c:	89 f3       	breq	.-30     	; 0x350
     36e:	89 81       	ldd	r24, Y+1	; 0x01
     370:	98 17       	cp	r25, r24
     372:	79 f0       	breq	.+30     	; 0x392
     374:	ac 0f       	add	r26, r28
     376:	bd 1f       	adc	r27, r29
     378:	e9 2e       	mov	r14, r25
     37a:	ff 24       	eor	r15, r15
     37c:	e7 fc       	sbrc	r14, 7
     37e:	f0 94       	com	r15
     380:	ec 0e       	add	r14, r28
     382:	fd 1e       	adc	r15, r29
     384:	f7 01       	movw	r30, r14
     386:	83 81       	ldd	r24, Z+3	; 0x03
     388:	fd 01       	movw	r30, r26
     38a:	83 83       	std	Z+3, r24	; 0x03
     38c:	f7 01       	movw	r30, r14
     38e:	63 83       	std	Z+3, r22	; 0x03
     390:	0a c0       	rjmp	.+20     	; 0x3a6
     392:	ac 0f       	add	r26, r28
     394:	bd 1f       	adc	r27, r29
     396:	fd 01       	movw	r30, r26
     398:	13 82       	std	Z+3, r1	; 0x03
     39a:	11 e0       	ldi	r17, 0x01	; 1
     39c:	04 c0       	rjmp	.+8      	; 0x3a6
     39e:	ac 0f       	add	r26, r28
     3a0:	bd 1f       	adc	r27, r29
     3a2:	fd 01       	movw	r30, r26
     3a4:	13 82       	std	Z+3, r1	; 0x03
     3a6:	2f 5f       	subi	r18, 0xFF	; 255
     3a8:	3a 81       	ldd	r19, Y+2	; 0x02
     3aa:	23 17       	cp	r18, r19
     3ac:	0c f0       	brlt	.+2      	; 0x3b0
     3ae:	20 e0       	ldi	r18, 0x00	; 0
     3b0:	27 17       	cp	r18, r23
     3b2:	09 f0       	breq	.+2      	; 0x3b6
     3b4:	bc cf       	rjmp	.-136    	; 0x32e
     3b6:	95 2f       	mov	r25, r21
        }
        ucTemp++;
        if (ucTemp >= fh->ucSize)
            ucTemp = 0;
     3b8:	97 17       	cp	r25, r23
     3ba:	79 f0       	breq	.+30     	; 0x3da
     3bc:	e9 2f       	mov	r30, r25
     3be:	ff 27       	eor	r31, r31
     3c0:	e7 fd       	sbrc	r30, 7
     3c2:	f0 95       	com	r31
     3c4:	ec 0f       	add	r30, r28
     3c6:	fd 1f       	adc	r31, r29
     3c8:	83 81       	ldd	r24, Z+3	; 0x03
     3ca:	88 23       	and	r24, r24
     3cc:	09 f4       	brne	.+2      	; 0x3d0
     3ce:	ab cf       	rjmp	.-170    	; 0x326
     3d0:	9f 5f       	subi	r25, 0xFF	; 255
     3d2:	93 17       	cp	r25, r19
     3d4:	8c f3       	brlt	.-30     	; 0x3b8
     3d6:	90 e0       	ldi	r25, 0x00	; 0
     3d8:	ef cf       	rjmp	.-34     	; 0x3b8
    }

    return _TRUE_;
     3da:	81 e0       	ldi	r24, 0x01	; 1
     3dc:	90 e0       	ldi	r25, 0x00	; 0
     3de:	df 91       	pop	r29
     3e0:	cf 91       	pop	r28
     3e2:	1f 91       	pop	r17
     3e4:	ff 90       	pop	r15
     3e6:	ef 90       	pop	r14
     3e8:	08 95       	ret

000003ea <KeyboardScan>:
}

Bool KeyboardScan(Void)
{
     3ea:	cf 93       	push	r28
    Un_Sizet_1 ucVirtualKey = GetKeyCode();
     3ec:	0e 94 e1 03 	call	0x7c2
     3f0:	c8 2f       	mov	r28, r24
    if ( ucVirtualKey )
     3f2:	88 23       	and	r24, r24
     3f4:	09 f4       	brne	.+2      	; 0x3f8
     3f6:	85 c0       	rjmp	.+266    	; 0x502
    {
        if ( ucVirtualKey == t_KeyboardData.ucLastKey )
     3f8:	28 2f       	mov	r18, r24
     3fa:	33 27       	eor	r19, r19
     3fc:	80 91 e9 00 	lds	r24, 0x00E9
     400:	99 27       	eor	r25, r25
     402:	87 fd       	sbrc	r24, 7
     404:	90 95       	com	r25
     406:	28 17       	cp	r18, r24
     408:	39 07       	cpc	r19, r25
     40a:	09 f0       	breq	.+2      	; 0x40e
     40c:	5a c0       	rjmp	.+180    	; 0x4c2
        {
            if ( t_KeyboardData.wFirstDelay &&
     40e:	40 91 e1 00 	lds	r20, 0x00E1
     412:	50 91 e2 00 	lds	r21, 0x00E2
     416:	41 15       	cp	r20, r1
     418:	51 05       	cpc	r21, r1
     41a:	09 f4       	brne	.+2      	; 0x41e
     41c:	6f c0       	rjmp	.+222    	; 0x4fc
     41e:	60 91 e5 00 	lds	r22, 0x00E5
     422:	70 91 e6 00 	lds	r23, 0x00E6
     426:	80 91 e7 00 	lds	r24, 0x00E7
     42a:	90 91 e8 00 	lds	r25, 0x00E8
     42e:	0e 94 ae 02 	call	0x55c
     432:	88 23       	and	r24, r24
     434:	09 f4       	brne	.+2      	; 0x438
     436:	62 c0       	rjmp	.+196    	; 0x4fc
                 tdCompareTickCount(t_KeyboardData.dwLastTick, t_KeyboardData.wFirstDelay))
            {
                if(g_KeyInfo.bFastRepeatKeyEnable||g_KeyInfo.bSlowRepeatKeyEnable)
     438:	80 91 d8 00 	lds	r24, 0x00D8
     43c:	83 70       	andi	r24, 0x03	; 3
     43e:	51 f0       	breq	.+20     	; 0x454
                {
                    tdAddVirtualKey(ucVirtualKey);
     440:	6c 2f       	mov	r22, r28
     442:	89 ed       	ldi	r24, 0xD9	; 217
     444:	90 e0       	ldi	r25, 0x00	; 0
     446:	0e 94 32 03 	call	0x664
                    g_KeyInfo.bRepeatKeyDown = _TRUE_;
     44a:	80 91 d8 00 	lds	r24, 0x00D8
     44e:	80 62       	ori	r24, 0x20	; 32
     450:	80 93 d8 00 	sts	0x00D8, r24
                }
                 //set g_KeyInfo.bKeyboardDown flag
                g_KeyInfo.bKeyboardDown = _TRUE_;
     454:	80 91 d8 00 	lds	r24, 0x00D8
     458:	80 61       	ori	r24, 0x10	; 16
     45a:	80 93 d8 00 	sts	0x00D8, r24

                if(g_KeyInfo.bSlowRepeatKeyEnable)
     45e:	81 ff       	sbrs	r24, 1
     460:	17 c0       	rjmp	.+46     	; 0x490
                    t_KeyboardData.dwLastTick = tdGetTickCount() - t_KeyboardData.wFirstDelay
     462:	0e 94 a3 02 	call	0x546
     466:	9b 01       	movw	r18, r22
     468:	ac 01       	movw	r20, r24
     46a:	80 91 e1 00 	lds	r24, 0x00E1
     46e:	90 91 e2 00 	lds	r25, 0x00E2
     472:	aa 27       	eor	r26, r26
     474:	bb 27       	eor	r27, r27
     476:	28 1b       	sub	r18, r24
     478:	39 0b       	sbc	r19, r25
     47a:	4a 0b       	sbc	r20, r26
     47c:	5b 0b       	sbc	r21, r27
     47e:	80 91 e3 00 	lds	r24, 0x00E3
     482:	90 91 e4 00 	lds	r25, 0x00E4
     486:	88 0f       	add	r24, r24
     488:	99 1f       	adc	r25, r25
     48a:	88 0f       	add	r24, r24
     48c:	99 1f       	adc	r25, r25
     48e:	12 c0       	rjmp	.+36     	; 0x4b4
                                                + t_KeyboardData.wRepeatDelay*4;
                else
                    t_KeyboardData.dwLastTick = tdGetTickCount() - t_KeyboardData.wFirstDelay
     490:	0e 94 a3 02 	call	0x546
     494:	9b 01       	movw	r18, r22
     496:	ac 01       	movw	r20, r24
     498:	80 91 e1 00 	lds	r24, 0x00E1
     49c:	90 91 e2 00 	lds	r25, 0x00E2
     4a0:	aa 27       	eor	r26, r26
     4a2:	bb 27       	eor	r27, r27
     4a4:	28 1b       	sub	r18, r24
     4a6:	39 0b       	sbc	r19, r25
     4a8:	4a 0b       	sbc	r20, r26
     4aa:	5b 0b       	sbc	r21, r27
     4ac:	80 91 e3 00 	lds	r24, 0x00E3
     4b0:	90 91 e4 00 	lds	r25, 0x00E4
     4b4:	aa 27       	eor	r26, r26
     4b6:	bb 27       	eor	r27, r27
     4b8:	82 0f       	add	r24, r18
     4ba:	93 1f       	adc	r25, r19
     4bc:	a4 1f       	adc	r26, r20
     4be:	b5 1f       	adc	r27, r21
     4c0:	15 c0       	rjmp	.+42     	; 0x4ec
                                                + t_KeyboardData.wRepeatDelay;
            }
        }
        else
        {
            g_KeyInfo.bFastRepeatKeyEnable = _FALSE_;
     4c2:	80 91 d8 00 	lds	r24, 0x00D8
            g_KeyInfo.bSlowRepeatKeyEnable = _FALSE_;
            g_KeyInfo.bRepeatKeyDown = _FALSE_;
     4c6:	8c 7d       	andi	r24, 0xDC	; 220
     4c8:	80 93 d8 00 	sts	0x00D8, r24
            tdAddVirtualKey( ucVirtualKey );
     4cc:	6c 2f       	mov	r22, r28
     4ce:	89 ed       	ldi	r24, 0xD9	; 217
     4d0:	90 e0       	ldi	r25, 0x00	; 0
     4d2:	0e 94 32 03 	call	0x664

            //set g_KeyInfo.bKeyboardDown flag
            g_KeyInfo.bKeyboardDown = _TRUE_;
     4d6:	80 91 d8 00 	lds	r24, 0x00D8
     4da:	80 61       	ori	r24, 0x10	; 16
     4dc:	80 93 d8 00 	sts	0x00D8, r24
 
            t_KeyboardData.ucLastKey = ucVirtualKey;
     4e0:	c0 93 e9 00 	sts	0x00E9, r28
            t_KeyboardData.dwLastTick = tdGetTickCount();
     4e4:	0e 94 a3 02 	call	0x546
     4e8:	dc 01       	movw	r26, r24
     4ea:	cb 01       	movw	r24, r22
     4ec:	80 93 e5 00 	sts	0x00E5, r24
     4f0:	90 93 e6 00 	sts	0x00E6, r25
     4f4:	a0 93 e7 00 	sts	0x00E7, r26
     4f8:	b0 93 e8 00 	sts	0x00E8, r27
        }
        return _TRUE_;
     4fc:	81 e0       	ldi	r24, 0x01	; 1
     4fe:	90 e0       	ldi	r25, 0x00	; 0
     500:	20 c0       	rjmp	.+64     	; 0x542
    }
    else
    {
        if (g_KeyInfo.bKeyboardDown)
     502:	80 91 d8 00 	lds	r24, 0x00D8
     506:	84 ff       	sbrs	r24, 4
     508:	18 c0       	rjmp	.+48     	; 0x53a
        {
            if (g_KeyInfo.bRepeatKeyDown)       //clear repeat key in fifo
     50a:	85 ff       	sbrs	r24, 5
     50c:	06 c0       	rjmp	.+12     	; 0x51a
                tdClearKeyInFIFO((FifoHandle)t_VirtualKeyBuffer, t_KeyboardData.ucLastKey);
     50e:	60 91 e9 00 	lds	r22, 0x00E9
     512:	89 ed       	ldi	r24, 0xD9	; 217
     514:	90 e0       	ldi	r25, 0x00	; 0
     516:	0e 94 83 01 	call	0x306
            
            g_KeyInfo.bKeyboardDown = _FALSE_;
     51a:	90 91 d8 00 	lds	r25, 0x00D8
            g_KeyInfo.bRepeatKeyDown = _FALSE_;
     51e:	89 2f       	mov	r24, r25
     520:	8f 7c       	andi	r24, 0xCF	; 207
     522:	80 93 d8 00 	sts	0x00D8, r24
            if (g_KeyInfo.bKeyStatusUpEnable)
     526:	92 ff       	sbrs	r25, 2
     528:	08 c0       	rjmp	.+16     	; 0x53a
                tdAddVirtualKey(t_KeyboardData.ucLastKey | _VK_STATUS_UP_);
     52a:	80 91 e9 00 	lds	r24, 0x00E9
     52e:	80 68       	ori	r24, 0x80	; 128
     530:	68 2f       	mov	r22, r24
     532:	89 ed       	ldi	r24, 0xD9	; 217
     534:	90 e0       	ldi	r25, 0x00	; 0
     536:	0e 94 32 03 	call	0x664
        }
        
        t_KeyboardData.ucLastKey = 0;
     53a:	10 92 e9 00 	sts	0x00E9, r1
        return _FALSE_;
     53e:	80 e0       	ldi	r24, 0x00	; 0
     540:	90 e0       	ldi	r25, 0x00	; 0
     542:	cf 91       	pop	r28
     544:	08 95       	ret

00000546 <tdGetTickCount>:
{                        

    Dword t;
//    _DI();
    t = t_dwTimerCount;
     546:	80 91 ea 00 	lds	r24, 0x00EA
     54a:	90 91 eb 00 	lds	r25, 0x00EB
     54e:	a0 91 ec 00 	lds	r26, 0x00EC
     552:	b0 91 ed 00 	lds	r27, 0x00ED
//    _EI();
    return t;
}
     556:	bc 01       	movw	r22, r24
     558:	cd 01       	movw	r24, r26
     55a:	08 95       	ret

0000055c <tdCompareTickCount>:
     55c:	cf 92       	push	r12
     55e:	df 92       	push	r13
     560:	ef 92       	push	r14
     562:	ff 92       	push	r15
     564:	0f 93       	push	r16
     566:	1f 93       	push	r17
     568:	cf 93       	push	r28
     56a:	df 93       	push	r29
     56c:	6b 01       	movw	r12, r22
     56e:	7c 01       	movw	r14, r24
     570:	8a 01       	movw	r16, r20
     572:	0e 94 a3 02 	call	0x546
     576:	e8 01       	movw	r28, r16
     578:	ee 27       	eor	r30, r30
     57a:	ff 27       	eor	r31, r31
     57c:	9b 01       	movw	r18, r22
     57e:	ac 01       	movw	r20, r24
     580:	2c 1b       	sub	r18, r28
     582:	3d 0b       	sbc	r19, r29
     584:	4e 0b       	sbc	r20, r30
     586:	5f 0b       	sbc	r21, r31
     588:	62 17       	cp	r22, r18
     58a:	73 07       	cpc	r23, r19
     58c:	84 07       	cpc	r24, r20
     58e:	95 07       	cpc	r25, r21
     590:	60 f4       	brcc	.+24     	; 0x5aa
     592:	dc 01       	movw	r26, r24
     594:	cb 01       	movw	r24, r22
     596:	8c 19       	sub	r24, r12
     598:	9d 09       	sbc	r25, r13
     59a:	ae 09       	sbc	r26, r14
     59c:	bf 09       	sbc	r27, r15
     59e:	8c 17       	cp	r24, r28
     5a0:	9d 07       	cpc	r25, r29
     5a2:	ae 07       	cpc	r26, r30
     5a4:	bf 07       	cpc	r27, r31
     5a6:	70 f4       	brcc	.+28     	; 0x5c4
     5a8:	0a c0       	rjmp	.+20     	; 0x5be
     5aa:	6c 15       	cp	r22, r12
     5ac:	7d 05       	cpc	r23, r13
     5ae:	8e 05       	cpc	r24, r14
     5b0:	9f 05       	cpc	r25, r15
     5b2:	40 f0       	brcs	.+16     	; 0x5c4
     5b4:	2c 15       	cp	r18, r12
     5b6:	3d 05       	cpc	r19, r13
     5b8:	4e 05       	cpc	r20, r14
     5ba:	5f 05       	cpc	r21, r15
     5bc:	18 f4       	brcc	.+6      	; 0x5c4
     5be:	80 e0       	ldi	r24, 0x00	; 0
     5c0:	90 e0       	ldi	r25, 0x00	; 0
     5c2:	02 c0       	rjmp	.+4      	; 0x5c8
     5c4:	81 e0       	ldi	r24, 0x01	; 1
     5c6:	90 e0       	ldi	r25, 0x00	; 0
     5c8:	df 91       	pop	r29
     5ca:	cf 91       	pop	r28
     5cc:	1f 91       	pop	r17
     5ce:	0f 91       	pop	r16
     5d0:	ff 90       	pop	r15
     5d2:	ef 90       	pop	r14
     5d4:	df 90       	pop	r13
     5d6:	cf 90       	pop	r12
     5d8:	08 95       	ret

000005da <tdSleep>:
     5da:	ef 92       	push	r14
     5dc:	ff 92       	push	r15
     5de:	0f 93       	push	r16
     5e0:	1f 93       	push	r17
     5e2:	cf 93       	push	r28
     5e4:	df 93       	push	r29
     5e6:	ec 01       	movw	r28, r24
     5e8:	0e 94 a3 02 	call	0x546
     5ec:	7b 01       	movw	r14, r22
     5ee:	8c 01       	movw	r16, r24
     5f0:	ae 01       	movw	r20, r28
     5f2:	c8 01       	movw	r24, r16
     5f4:	b7 01       	movw	r22, r14
     5f6:	0e 94 ae 02 	call	0x55c
     5fa:	88 23       	and	r24, r24
     5fc:	c9 f3       	breq	.-14     	; 0x5f0
     5fe:	df 91       	pop	r29
     600:	cf 91       	pop	r28
     602:	1f 91       	pop	r17
     604:	0f 91       	pop	r16
     606:	ff 90       	pop	r15
     608:	ef 90       	pop	r14
     60a:	08 95       	ret

0000060c <tdClearFIFO>:
 * @see tdGetFIFO
 * @see tdSetFIFO
 */
void tdClearFIFO(FifoHandle fh) 
{
     60c:	fc 01       	movw	r30, r24
    fh->ucHead = 0;
     60e:	10 82       	st	Z, r1
    fh->ucTail = 0;
     610:	11 82       	std	Z+1, r1	; 0x01
     612:	08 95       	ret

00000614 <tdInitFIFO2>:

⌨️ 快捷键说明

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