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

📄 uimgr.lst

📁 mg128+Ov7620实现图象采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
 306:UIMgr.c       **** 	
 307:UIMgr.c       **** }
 308:UIMgr.c       **** 
 309:UIMgr.c       **** /***********************************************************
 310:UIMgr.c       **** 	Function Name: UIMgr_convertTokenToValue
 311:UIMgr.c       **** 	Function Description: This function is responsible for
 312:UIMgr.c       **** 	converting a received token to a hex value It will
 313:UIMgr.c       **** 	access the asciiTokenBuffer directly, and store the
 314:UIMgr.c       **** 	result in the appropriate token buffer.
 315:UIMgr.c       **** 	Inputs:  none 
 316:UIMgr.c       **** 	Outputs: none
 317:UIMgr.c       **** ***********************************************************/	
 318:UIMgr.c       **** static void UIMgr_convertTokenToValue(void)
 319:UIMgr.c       **** {
 535               	.LM67:
 536               	/* prologue: frame size=0 */
 537               	/* prologue end (size=0) */
 320:UIMgr.c       **** 	unsigned int newValue;
 321:UIMgr.c       **** 	
 322:UIMgr.c       **** 	newValue = atoi(asciiTokenBuffer);//The atoi() function converts the initial portion of the string
 539               	.LM68:
 540 020c 80E0      		ldi r24,lo8(asciiTokenBuffer)
 541 020e 90E0      		ldi r25,hi8(asciiTokenBuffer)
 542 0210 0E94 0000 		call atoi
 543 0214 AC01      		movw r20,r24
 323:UIMgr.c       ****                                       //pointed to by \c nptr to integer representation.
 324:UIMgr.c       **** 	if (newValue > 255)
 545               	.LM69:
 546 0216 8F3F      		cpi r24,255
 547 0218 9105      		cpc r25,__zero_reg__
 548 021a 71F0      		breq .L52
 549 021c 68F0      		brlo .L52
 325:UIMgr.c       **** 	{
 326:UIMgr.c       **** 		/* the value is too large */
 327:UIMgr.c       **** 		receivedCmd = invalidCmd;
 551               	.LM70:
 552 021e 86E0      		ldi r24,lo8(6)
 553 0220 8093 0000 		sts receivedCmd,r24
 328:UIMgr.c       **** 		tokenBuffer[tokenCount] = 0xFF;  /* to indicate an error */
 555               	.LM71:
 556 0224 2091 0000 		lds r18,tokenCount
 557 0228 80E0      		ldi r24,lo8(tokenBuffer)
 558 022a 90E0      		ldi r25,hi8(tokenBuffer)
 559 022c FC01      		movw r30,r24
 560 022e E20F      		add r30,r18
 561 0230 F11D      		adc r31,__zero_reg__
 562 0232 8FEF      		ldi r24,lo8(-1)
 563 0234 8083      		st Z,r24
 564 0236 08C0      		rjmp .L53
 565               	.L52:
 329:UIMgr.c       **** 	}
 330:UIMgr.c       **** 	else
 331:UIMgr.c       **** 	{
 332:UIMgr.c       **** 		/* copy the value into the tokenBuffer */
 333:UIMgr.c       **** 		tokenBuffer[tokenCount] = newValue;
 567               	.LM72:
 568 0238 8091 0000 		lds r24,tokenCount
 569 023c 20E0      		ldi r18,lo8(tokenBuffer)
 570 023e 30E0      		ldi r19,hi8(tokenBuffer)
 571 0240 F901      		movw r30,r18
 572 0242 E80F      		add r30,r24
 573 0244 F11D      		adc r31,__zero_reg__
 574 0246 4083      		st Z,r20
 575               	.L53:
 334:UIMgr.c       **** 	}
 335:UIMgr.c       **** 	memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
 577               	.LM73:
 578 0248 83E0      		ldi r24,lo8(3)
 579 024a E0E0      		ldi r30,lo8(asciiTokenBuffer)
 580 024c F0E0      		ldi r31,hi8(asciiTokenBuffer)
 581 024e 1192      		st Z+,__zero_reg__
 582 0250 8A95      	        dec r24
 583 0252 E9F7      		brne .-6
 336:UIMgr.c       **** 	charIndex = 0;
 585               	.LM74:
 586 0254 1092 0000 		sts charIndex,__zero_reg__
 337:UIMgr.c       **** 	charCount = 0;
 588               	.LM75:
 589 0258 1092 0000 		sts charCount,__zero_reg__
 590               	/* epilogue: frame size=0 */
 591 025c 0895      		ret
 592               	/* epilogue end (size=1) */
 593               	/* function UIMgr_convertTokenToValue size 41 (40) */
 598               	.Lscope5:
 601               	UIMgr_convertTokenToCmd:
 338:UIMgr.c       **** }
 339:UIMgr.c       **** /***********************************************************
 340:UIMgr.c       **** 	Function Name: UIMgr_convertTokenToCmd
 341:UIMgr.c       **** 	Function Description: This function is responsible for
 342:UIMgr.c       **** 	parsing a received 2-character command.  It will
 343:UIMgr.c       **** 	access the asciiTokenBuffer directly.
 344:UIMgr.c       **** 	Inputs:  none 
 345:UIMgr.c       **** 	Outputs: none
 346:UIMgr.c       **** ***********************************************************/	
 347:UIMgr.c       **** static void UIMgr_convertTokenToCmd(void)
 348:UIMgr.c       **** {
 603               	.LM76:
 604               	/* prologue: frame size=0 */
 605               	/* prologue end (size=0) */
 349:UIMgr.c       **** 	if ( (asciiTokenBuffer[0] == 'P') &&
 607               	.LM77:
 608 025e 8091 0000 		lds r24,asciiTokenBuffer
 609 0262 8035      		cpi r24,lo8(80)
 610 0264 41F4      		brne .L55
 612               	.LM78:
 613 0266 8091 0000 		lds r24,asciiTokenBuffer+1
 614 026a 8734      		cpi r24,lo8(71)
 615 026c 21F4      		brne .L55
 350:UIMgr.c       **** 		 (asciiTokenBuffer[1] == 'G') )
 351:UIMgr.c       **** 	{
 352:UIMgr.c       **** 		/* we got a "ping" command...but we still need to see
 353:UIMgr.c       **** 		if we are going to get the \r */
 354:UIMgr.c       **** 		receivedCmd = pingCmd;
 617               	.LM79:
 618 026e 81E0      		ldi r24,lo8(1)
 619 0270 8093 0000 		sts receivedCmd,r24
 620 0274 32C0      		rjmp .L56
 621               	.L55:
 355:UIMgr.c       **** 	}
 356:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'G') &&
 623               	.LM80:
 624 0276 8091 0000 		lds r24,asciiTokenBuffer
 625 027a 8734      		cpi r24,lo8(71)
 626 027c 39F4      		brne .L57
 627 027e 8091 0000 		lds r24,asciiTokenBuffer+1
 628 0282 8635      		cpi r24,lo8(86)
 629 0284 19F4      		brne .L57
 357:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'V') )
 358:UIMgr.c       **** 	{
 359:UIMgr.c       **** 		/* we got the "get version" command */
 360:UIMgr.c       **** 		receivedCmd = getVersionCmd;
 631               	.LM81:
 632 0286 1092 0000 		sts receivedCmd,__zero_reg__
 633 028a 27C0      		rjmp .L56
 634               	.L57:
 361:UIMgr.c       **** 	}
 362:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'D') &&
 636               	.LM82:
 637 028c 8091 0000 		lds r24,asciiTokenBuffer
 638 0290 8434      		cpi r24,lo8(68)
 639 0292 41F4      		brne .L59
 640 0294 8091 0000 		lds r24,asciiTokenBuffer+1
 641 0298 8634      		cpi r24,lo8(70)
 642 029a 21F4      		brne .L59
 363:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'F') )
 364:UIMgr.c       **** 	{
 365:UIMgr.c       **** 		/* we should go into frame dump mode */
 366:UIMgr.c       **** 		receivedCmd = dumpFrameCmd;	
 644               	.LM83:
 645 029c 83E0      		ldi r24,lo8(3)
 646 029e 8093 0000 		sts receivedCmd,r24
 647 02a2 1BC0      		rjmp .L56
 648               	.L59:
 367:UIMgr.c       **** 	}
 368:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'C') &&
 650               	.LM84:
 651 02a4 8091 0000 		lds r24,asciiTokenBuffer
 652 02a8 8334      		cpi r24,lo8(67)
 653 02aa 41F4      		brne .L61
 654 02ac 8091 0000 		lds r24,asciiTokenBuffer+1
 655 02b0 8235      		cpi r24,lo8(82)
 656 02b2 21F4      		brne .L61
 369:UIMgr.c       **** 	           (asciiTokenBuffer[1] == 'R') )
 370:UIMgr.c       **** 	{
 371:UIMgr.c       **** 		/* the user wants to set registers in the OV6620 */
 372:UIMgr.c       **** 		receivedCmd = setCameraRegsCmd;
 658               	.LM85:
 659 02b4 82E0      		ldi r24,lo8(2)
 660 02b6 8093 0000 		sts receivedCmd,r24
 661 02ba 0FC0      		rjmp .L56
 662               	.L61:
 373:UIMgr.c       **** 	}
 374:UIMgr.c       **** 	
 375:UIMgr.c       **** 	
 376:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'R') &&
 664               	.LM86:
 665 02bc 8091 0000 		lds r24,asciiTokenBuffer
 666 02c0 8235      		cpi r24,lo8(82)
 667 02c2 41F4      		brne .L63
 668 02c4 8091 0000 		lds r24,asciiTokenBuffer+1
 669 02c8 8335      		cpi r24,lo8(83)
 670 02ca 21F4      		brne .L63
 377:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'S') )
 378:UIMgr.c       **** 	{
 379:UIMgr.c       **** 		receivedCmd = resetCameraCmd;
 672               	.LM87:
 673 02cc 84E0      		ldi r24,lo8(4)
 674 02ce 8093 0000 		sts receivedCmd,r24
 675 02d2 03C0      		rjmp .L56
 676               	.L63:
 380:UIMgr.c       **** 	}
 381:UIMgr.c       **** 	else
 382:UIMgr.c       **** 	{
 383:UIMgr.c       **** 		/* don't recognize the cmd */
 384:UIMgr.c       **** 		receivedCmd = invalidCmd;
 678               	.LM88:
 679 02d4 86E0      		ldi r24,lo8(6)
 680 02d6 8093 0000 		sts receivedCmd,r24
 681               	.L56:
 385:UIMgr.c       **** 	}
 386:UIMgr.c       **** 	memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
 683               	.LM89:
 684 02da 83E0      		ldi r24,lo8(3)
 685 02dc E0E0      		ldi r30,lo8(asciiTokenBuffer)
 686 02de F0E0      		ldi r31,hi8(asciiTokenBuffer)
 687 02e0 1192      		st Z+,__zero_reg__
 688 02e2 8A95      	        dec r24
 689 02e4 E9F7      		brne .-6
 387:UIMgr.c       **** 	charIndex = 0;
 691               	.LM90:
 692 02e6 1092 0000 		sts charIndex,__zero_reg__
 388:UIMgr.c       **** 	charCount = 0;
 694               	.LM91:
 695 02ea 1092 0000 		sts charCount,__zero_reg__
 696               	/* epilogue: frame size=0 */
 697 02ee 0895      		ret
 698               	/* epilogue end (size=1) */
 699               	/* function UIMgr_convertTokenToCmd size 73 (72) */
 701               	.Lscope6:
 704               	UIMgr_sendAck:
 389:UIMgr.c       **** }
 390:UIMgr.c       **** /***********************************************************
 391:UIMgr.c       **** 	Function Name: UIMgr_sendAck
 392:UIMgr.c       **** 	Function Description: This function is responsible for
 393:UIMgr.c       **** 	queuing up an ACK to be sent to the user.
 394:UIMgr.c       **** 	Inputs:  none 
 395:UIMgr.c       **** 	Outputs: none
 396:UIMgr.c       **** ***********************************************************/	
 397:UIMgr.c       **** static void UIMgr_sendAck(void)
 398:UIMgr.c       **** {
 706               	.LM92:
 707               	/* prologue: frame size=0 */
 708               	/* prologue end (size=0) */
 399:UIMgr.c       **** 	UIMgr_writeTxFifo('A');
 710               	.LM93:
 711 02f0 81E4      		ldi r24,lo8(65)
 712 02f2 0E94 0000 		call UIMgr_writeTxFifo
 400:UIMgr.c       **** 	UIMgr_writeTxFifo('C');
 714               	.LM94:
 715 02f6 83E4      		ldi r24,lo8(67)
 716 02f8 0E94 0000 		call UIMgr_writeTxFifo
 401:UIMgr.c       **** 	UIMgr_writeTxFifo('K');
 718               	.LM95:
 719 02fc 8BE4      		ldi r24,lo8(75)
 720 02fe 0E94 0000 		call UIMgr_writeTxFifo
 402:UIMgr.c       **** 	UIMgr_writeTxFifo(0x0D);
 722               	.LM96:
 723 0302 8DE0      		ldi r24,lo8(13)
 724 0304 0E94 0000 		call UIMgr_writeTxFifo
 725               	/* epilogue: frame size=0 */
 726 0308 0895      		ret
 727               	/* epilogue end (size=1) */
 728               	/* function UIMgr_sendAck size 13 (12) */
 730               	.Lscope7:
 733               	UIMgr_sendNck:
 403:UIMgr.c       **** }
 404:UIMgr.c       **** 
 405:UIMgr.c       **** /***********************************************************
 406:UIMgr.c       **** 	Function Name: UIMgr_sendNck
 407:UIMgr.c       **** 	Function Description: This function is responsible for
 408:UIMgr.c       **** 	queueing up an NCK to be sent to the user.
 409:UIMgr.c       **** 	Inputs:  none 
 410:UIMgr.c       **** 	Outputs: none
 411:UIMgr.c       **** ***********************************************************/	
 412:UIMgr.c       **** static void UIMgr_sendNck(void)
 413:UIMgr.c       **** {
 735               	.LM97:
 736               	/* prologue: frame size=0 */
 737               	/* prologue end (size=0) */
 414:UIMgr.c       **** 		UIMgr_writeTxFifo('N');
 739               	.LM98:
 740 030a 8EE4      		ldi r24,lo8(78)
 741 030c 0E94 0000 		call UIMgr_writeTxFifo
 415:UIMgr.c       **** 		UIMgr_writeTxFifo('C');
 743               	.LM99:
 744 0310 83E4      		ldi r24,lo8(67)
 745 0312 0E94 0000 		call UIMgr_writeTxFifo
 416:UIMgr.c       **** 		UIMgr_writeTxFifo('K');
 747               	.LM100:
 748 0316 8BE4      		ldi r24,lo8(75)
 749 0318 0E94 0000 		call UIMgr_writeTxFifo
 417:UIMgr.c       **** 		UIMgr_writeTxFifo('\r');
 751               	.LM101:
 752 031c 8DE0      		ldi r24,lo8(13)
 753 031e 0E94 0000 		call UIMgr_writeTxFifo
 754               	/* epilogue: frame size=0 */
 755 0322 0895      		ret
 756               	/* epilogue end (size=1) */
 757               	/* function UIMgr_sendNck size 13 (12) */
 759               	.Lscope8:
 763               	.global	UIMgr_writeBufferToTxFifo
 765               	UIMgr_writeBufferToTxFifo:
 418:UIMgr.c       **** }
 419:UIMgr.c       **** 
 420:UIMgr.c       **** 
 421:UIMgr.c       **** /***********************************************************
 422:UIMgr.c       **** 	Function Name: UIMgr_writeBufferToTxFifo
 423:UIMgr.c       **** 	Function Description: This function is responsible for
 424:UIMgr.c       **** 	placing "length" bytes into the tx FIFO.
 425:UIMgr.c       **** 	Inputs:  pData -  a pointer to the data to send
 426:UIMgr.c       **** 	         length - the number of bytes to send
 427:UIMgr.c       **** 	Outputs: none
 428:UIMgr.c       **** ***********************************************************/	
 429:UIMgr.c       **** void UIMgr_writeBufferToTxFifo(unsigned char *pData, unsigned char length)
 430:UIMgr.c       **** {
 767               	.LM102:
 768               	/* prologue: frame size=0 */
 769               	/* prologue end (size=0) */
 770 0324 DC01      		movw r26,r24
 431:UIMgr.c       **** 	unsigned char tmpHead;
 432:UIMgr.c       **** 	if (length == 0)
 772               	.LM103:
 773 0326 6623      		tst r22
 774 0328 A9F0      		breq .L67
 433:UIMgr.c       **** 	{
 434:UIMgr.c       **** 		return;
 435:UIMgr.c       **** 	}
 436:UIMgr.c       **** 	
 437:UIMgr.c       **** 	DISABLE_INTS();
 776               	.LM104:
 777               	/* #APP */
 778 032a F894      		cli
 438:UIMgr.c       **** 	while(length-- != 0)
 439:UIMgr.c       **** 	{
 440:UIMgr.c       **** 		UIMgr_txFifo[UIMgr_txFifoHead] = *pData++;
 441:UIMgr.c       **** 	
 442:UIMgr.c       **** 		/* now move the head up */
 443:UIMgr.c       **** 		tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
 444:UIMgr.c       **** 		UIMgr_txFifoHead = tmpHead;
 780               	.LM105:
 781               	/* #NOAPP */
 782 032c 6150      		subi r22,lo8(-(-1))
 783 032e 6F3F      		cpi r22,lo8(-1)
 784 0330 81F0      		breq .L73
 785 0332 20E0      		ldi r18,lo8(UIMgr_txFifo)
 786 0334 30E0      		ldi r19,hi8(UIMgr_txFifo)
 787               	.L71:
 789               	.LM106:
 790 0336 9091 0000 		lds r25,UIMgr_txFifoHead

⌨️ 快捷键说明

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