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

📄 uimgr.lst

📁 mg128+Ov7620实现图象采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
 209:UIMgr.c       **** 					need to NCK this request, since its too
 210:UIMgr.c       **** 					large...reset everything...*/
 211:UIMgr.c       **** 					charCount=0;
 212:UIMgr.c       **** 					charIndex=0;
 213:UIMgr.c       **** 					tokenCount=0;
 214:UIMgr.c       **** 					receivedCmd = invalidCmd;
 215:UIMgr.c       **** 				}
 216:UIMgr.c       **** 				else
 217:UIMgr.c       **** 				{
 218:UIMgr.c       **** 					/* tokenCount is still in range...*/
 219:UIMgr.c       **** 					UIMgr_convertTokenToValue();
 220:UIMgr.c       **** 					tokenCount++;
 221:UIMgr.c       **** 				}
 222:UIMgr.c       **** 			}
 223:UIMgr.c       **** 		}
 224:UIMgr.c       **** 		else if ( (tmpData >= 'A' && tmpData <= 'Z') ||
 225:UIMgr.c       **** 				   (tmpData >= '0' && tmpData <= '9') )
 226:UIMgr.c       **** 		{
 227:UIMgr.c       **** 			/* a valid range of token was received */
 228:UIMgr.c       **** 			asciiTokenBuffer[charIndex] = tmpData;
 229:UIMgr.c       **** 			charCount++;
 230:UIMgr.c       **** 			charIndex++;
 231:UIMgr.c       **** 			if (charCount > MAX_TOKEN_LENGTH)//=3
 232:UIMgr.c       **** 			{
 233:UIMgr.c       **** 				/* we have received a token that cannot be handled...
 234:UIMgr.c       **** 				set the received cmd to an invalid cmd, and wait
 235:UIMgr.c       **** 				for the \r to process it */
 236:UIMgr.c       **** 				receivedCmd = invalidCmd;
 237:UIMgr.c       **** 				charIndex = 0;  /* ...so we won't overwrite memory */
 238:UIMgr.c       **** 			}
 239:UIMgr.c       **** 		}
 240:UIMgr.c       **** 		else
 241:UIMgr.c       **** 		{
 242:UIMgr.c       **** 			/* an invalid character was received */
 243:UIMgr.c       **** 			receivedCmd = invalidCmd;
 229               	.LM16:
 230 006e 9091 0000 		lds r25,UIMgr_rxFifoHead
 231 0072 8091 0000 		lds r24,UIMgr_rxFifoTail
 232 0076 9817      		cp r25,r24
 233 0078 09F4      		brne .+2
 234 007a 81C0      		rjmp .L29
 235 007c C6E0      		ldi r28,lo8(6)
 236               	.L27:
 238               	.LM17:
 239 007e 0E94 0000 		call UIMgr_readRxFifo
 240 0082 382F      		mov r19,r24
 242               	.LM18:
 243 0084 8D30      		cpi r24,lo8(13)
 244 0086 69F5      		brne .L11
 246               	.LM19:
 247 0088 8091 0000 		lds r24,tokenCount
 248 008c 8823      		tst r24
 249 008e 19F4      		brne .L12
 251               	.LM20:
 252 0090 0E94 0000 		call UIMgr_convertTokenToCmd
 253 0094 07C0      		rjmp .L13
 254               	.L12:
 256               	.LM21:
 257 0096 0E94 0000 		call UIMgr_convertTokenToValue
 259               	.LM22:
 260 009a 8091 0000 		lds r24,tokenCount
 261 009e 8F5F      		subi r24,lo8(-(1))
 262 00a0 8093 0000 		sts tokenCount,r24
 263               	.L13:
 265               	.LM23:
 266 00a4 84E6      		ldi r24,lo8(100)
 267 00a6 90E0      		ldi r25,hi8(100)
 268 00a8 0E94 0000 		call Utility_delay
 270               	.LM24:
 271 00ac 8091 0000 		lds r24,receivedCmd
 272 00b0 8550      		subi r24,lo8(-(-5))
 273 00b2 8230      		cpi r24,lo8(2)
 274 00b4 30F4      		brsh .L14
 276               	.LM25:
 277 00b6 0E94 0000 		call UIMgr_sendNck
 279               	.LM26:
 280 00ba 80E9      		ldi r24,lo8(-112)
 281 00bc 0E94 0000 		call Exec_writeEventFifo
 282 00c0 07C0      		rjmp .L15
 283               	.L14:
 285               	.LM27:
 286 00c2 0E94 0000 		call UIMgr_sendAck
 288               	.LM28:
 289 00c6 80E9      		ldi r24,lo8(-112)
 290 00c8 0E94 0000 		call Exec_writeEventFifo
 292               	.LM29:
 293 00cc 0E94 0000 		call UIMgr_executeCmd
 294               	.L15:
 296               	.LM30:
 297 00d0 1092 0000 		sts tokenCount,__zero_reg__
 299               	.LM31:
 300 00d4 80E4      		ldi r24,lo8(64)
 301 00d6 E0E0      		ldi r30,lo8(tokenBuffer)
 302 00d8 F0E0      		ldi r31,hi8(tokenBuffer)
 303 00da 1192      		st Z+,__zero_reg__
 304 00dc 8A95      	        dec r24
 305 00de E9F7      		brne .-6
 306 00e0 47C0      		rjmp .L9
 307               	.L11:
 309               	.LM32:
 310 00e2 8032      		cpi r24,lo8(32)
 311 00e4 21F5      		brne .L17
 313               	.LM33:
 314 00e6 8091 0000 		lds r24,tokenCount
 315 00ea 8823      		tst r24
 316 00ec 41F4      		brne .L18
 318               	.LM34:
 319 00ee 0E94 0000 		call UIMgr_convertTokenToCmd
 321               	.LM35:
 322 00f2 8091 0000 		lds r24,tokenCount
 323 00f6 8F5F      		subi r24,lo8(-(1))
 324 00f8 8093 0000 		sts tokenCount,r24
 325 00fc 39C0      		rjmp .L9
 326               	.L18:
 328               	.LM36:
 329 00fe 8091 0000 		lds r24,tokenCount
 330 0102 9927      		clr r25
 331 0104 0196      		adiw r24,1
 332 0106 8034      		cpi r24,64
 333 0108 9105      		cpc r25,__zero_reg__
 334 010a 4CF0      		brlt .L20
 336               	.LM37:
 337 010c 1092 0000 		sts charCount,__zero_reg__
 339               	.LM38:
 340 0110 1092 0000 		sts charIndex,__zero_reg__
 342               	.LM39:
 343 0114 1092 0000 		sts tokenCount,__zero_reg__
 345               	.LM40:
 346 0118 C093 0000 		sts receivedCmd,r28
 347 011c 29C0      		rjmp .L9
 348               	.L20:
 350               	.LM41:
 351 011e 0E94 0000 		call UIMgr_convertTokenToValue
 353               	.LM42:
 354 0122 8091 0000 		lds r24,tokenCount
 355 0126 8F5F      		subi r24,lo8(-(1))
 356 0128 8093 0000 		sts tokenCount,r24
 357 012c 21C0      		rjmp .L9
 358               	.L17:
 360               	.LM43:
 361 012e 8154      		subi r24,lo8(-(-65))
 362 0130 8A31      		cpi r24,lo8(26)
 363 0132 18F0      		brlo .L24
 364 0134 8F5E      		subi r24,lo8(-(17))
 365 0136 8A30      		cpi r24,lo8(10)
 366 0138 C8F4      		brsh .L23
 367               	.L24:
 369               	.LM44:
 370 013a 2091 0000 		lds r18,charIndex
 371 013e 822F      		mov r24,r18
 372 0140 9927      		clr r25
 373 0142 FC01      		movw r30,r24
 374 0144 E050      		subi r30,lo8(-(asciiTokenBuffer))
 375 0146 F040      		sbci r31,hi8(-(asciiTokenBuffer))
 376 0148 3083      		st Z,r19
 378               	.LM45:
 379 014a 8091 0000 		lds r24,charCount
 380 014e 982F      		mov r25,r24
 381 0150 9F5F      		subi r25,lo8(-(1))
 382 0152 9093 0000 		sts charCount,r25
 384               	.LM46:
 385 0156 822F      		mov r24,r18
 386 0158 8F5F      		subi r24,lo8(-(1))
 387 015a 8093 0000 		sts charIndex,r24
 389               	.LM47:
 390 015e 9430      		cpi r25,lo8(4)
 391 0160 38F0      		brlo .L9
 393               	.LM48:
 394 0162 C093 0000 		sts receivedCmd,r28
 396               	.LM49:
 397 0166 1092 0000 		sts charIndex,__zero_reg__
 398 016a 02C0      		rjmp .L9
 399               	.L23:
 401               	.LM50:
 402 016c C093 0000 		sts receivedCmd,r28
 403               	.L9:
 404 0170 9091 0000 		lds r25,UIMgr_rxFifoHead
 405 0174 8091 0000 		lds r24,UIMgr_rxFifoTail
 406 0178 9817      		cp r25,r24
 407 017a 09F0      		breq .+2
 408 017c 80CF      		rjmp .L27
 409               	.L29:
 244:UIMgr.c       **** 		}
 245:UIMgr.c       **** 	}  /* end while */
 246:UIMgr.c       **** 	
 247:UIMgr.c       **** 	asm volatile("clt"::);  /* clear out the T flag in case it wasn't
 411               	.LM51:
 412               	/* #APP */
 413 017e E894      		clt
 414               	/* #NOAPP */
 415               	/* epilogue: frame size=0 */
 416 0180 CF91      		pop r28
 417 0182 0895      		ret
 418               	/* epilogue end (size=2) */
 419               	/* function UIMgr_processReceivedData size 141 (138) */
 424               	.Lscope3:
 427               	UIMgr_executeCmd:
 248:UIMgr.c       **** 								 cleared already */
 249:UIMgr.c       **** }						
 250:UIMgr.c       **** 
 251:UIMgr.c       **** /***********************************************************
 252:UIMgr.c       **** 	Function Name: UIMgr_executeCmd
 253:UIMgr.c       **** 	Function Description: This function is responsible for
 254:UIMgr.c       **** 	executing whatever cmd is stored in the receivedCmd
 255:UIMgr.c       **** 	object.
 256:UIMgr.c       **** 	Inputs:  none 
 257:UIMgr.c       **** 	Outputs: none
 258:UIMgr.c       **** ***********************************************************/
 259:UIMgr.c       **** static void UIMgr_executeCmd(void)
 260:UIMgr.c       **** {
 429               	.LM52:
 430               	/* prologue: frame size=0 */
 431 0184 CF93      		push r28
 432 0186 DF93      		push r29
 433               	/* prologue end (size=2) */
 261:UIMgr.c       **** 	unsigned char i;//,eepromData, num_writes=0;
 262:UIMgr.c       **** 	unsigned char *pData;
 263:UIMgr.c       **** #if	DEBUG_COLOR_MAP	
 264:UIMgr.c       **** 	unsigned char asciiBuffer[5];
 265:UIMgr.c       **** #endif
 266:UIMgr.c       **** 
 267:UIMgr.c       **** 	if (receivedCmd == pingCmd) 
 435               	.LM53:
 436 0188 8091 0000 		lds r24,receivedCmd
 437 018c 8130      		cpi r24,lo8(1)
 438 018e D9F1      		breq .L30
 268:UIMgr.c       **** 	{
 269:UIMgr.c       **** 	}
 270:UIMgr.c       **** 	else if (receivedCmd == getVersionCmd)
 440               	.LM54:
 441 0190 8823      		tst r24
 442 0192 69F4      		brne .L33
 271:UIMgr.c       **** 	{
 272:UIMgr.c       **** 		pData = AVRcamVersion;
 444               	.LM55:
 445 0194 C0E0      		ldi r28,lo8(AVRcamVersion)
 446 0196 D0E0      		ldi r29,hi8(AVRcamVersion)
 273:UIMgr.c       **** 		while(*pData != 0)
 274:UIMgr.c       **** 		{		
 275:UIMgr.c       **** 			UIMgr_writeTxFifo(*pData++);
 448               	.LM56:
 449 0198 8091 0000 		lds r24,AVRcamVersion
 450 019c 8823      		tst r24
 451 019e 99F1      		breq .L30
 452               	.L36:
 453 01a0 8991      		ld r24,Y+
 454 01a2 0E94 0000 		call UIMgr_writeTxFifo
 455 01a6 8881      		ld r24,Y
 456 01a8 8823      		tst r24
 457 01aa D1F7      		brne .L36
 458 01ac 2CC0      		rjmp .L30
 459               	.L33:
 276:UIMgr.c       **** 		}
 277:UIMgr.c       **** 	}		
 278:UIMgr.c       **** 	else if (receivedCmd == resetCameraCmd)
 461               	.LM57:
 462 01ae 8091 0000 		lds r24,receivedCmd
 463 01b2 8430      		cpi r24,lo8(4)
 464 01b4 19F4      		brne .L38
 279:UIMgr.c       **** 	{
 280:UIMgr.c       **** 		CamInt_resetCam();
 466               	.LM58:
 467 01b6 0E94 0000 		call CamInt_resetCam
 468 01ba 25C0      		rjmp .L30
 469               	.L38:
 281:UIMgr.c       **** 	}
 282:UIMgr.c       **** 	else if (receivedCmd == dumpFrameCmd)
 471               	.LM59:
 472 01bc 8091 0000 		lds r24,receivedCmd
 473 01c0 8330      		cpi r24,lo8(3)
 474 01c2 41F4      		brne .L40
 283:UIMgr.c       **** 	{
 284:UIMgr.c       **** 		/* publish the event that will indicate that
 285:UIMgr.c       **** 		a request has come to dump a frame...this will
 286:UIMgr.c       **** 		be received by the FrameMgr, which will begin
 287:UIMgr.c       **** 		dumping the frame...a short delay is needed
 288:UIMgr.c       **** 		here to keep the Java demo app happy (sometimes
 289:UIMgr.c       **** 		it wouldn't be able to receive the serial data
 290:UIMgr.c       **** 		as quickly as AVRcam can provide it). */
 291:UIMgr.c       **** 		Utility_delay(100);
 476               	.LM60:
 477 01c4 84E6      		ldi r24,lo8(100)
 478 01c6 90E0      		ldi r25,hi8(100)
 479 01c8 0E94 0000 		call Utility_delay
 292:UIMgr.c       **** 		PUBLISH_EVENT(EV_DUMP_FRAME);
 481               	.LM61:
 482 01cc 82E0      		ldi r24,lo8(2)
 483 01ce 0E94 0000 		call Exec_writeEventFifo
 484 01d2 19C0      		rjmp .L30
 485               	.L40:
 293:UIMgr.c       **** 	}
 294:UIMgr.c       **** 	else if (receivedCmd == setCameraRegsCmd)
 487               	.LM62:
 488 01d4 8091 0000 		lds r24,receivedCmd
 489 01d8 8230      		cpi r24,lo8(2)
 490 01da A9F4      		brne .L30
 295:UIMgr.c       **** 	{
 296:UIMgr.c       **** 		/* we need to gather the tokens and
 297:UIMgr.c       **** 		build config cmds to be sent to the camera */
 298:UIMgr.c       **** 		for (i=1; i<tokenCount; i+=2)  /* starts at 1 since first token
 492               	.LM63:
 493 01dc C1E0      		ldi r28,lo8(1)
 494 01de 8091 0000 		lds r24,tokenCount
 495 01e2 C817      		cp r28,r24
 496 01e4 70F4      		brsh .L50
 497               	.L46:
 299:UIMgr.c       **** 											is the CR cmd */
 300:UIMgr.c       **** 		{
 301:UIMgr.c       **** 			CamConfig_setCamReg(tokenBuffer[i],tokenBuffer[i+1]);
 499               	.LM64:
 500 01e6 8C2F      		mov r24,r28
 501 01e8 9927      		clr r25
 502 01ea FC01      		movw r30,r24
 503 01ec E050      		subi r30,lo8(-(tokenBuffer))
 504 01ee F040      		sbci r31,hi8(-(tokenBuffer))
 505 01f0 6181      		ldd r22,Z+1
 506 01f2 8081      		ld r24,Z
 507 01f4 0E94 0000 		call CamConfig_setCamReg
 509               	.LM65:
 510 01f8 CE5F      		subi r28,lo8(-(2))
 511 01fa 8091 0000 		lds r24,tokenCount
 512 01fe C817      		cp r28,r24
 513 0200 90F3      		brlo .L46
 514               	.L50:
 302:UIMgr.c       **** 		}
 303:UIMgr.c       **** 		CamConfig_sendFifoCmds();
 516               	.LM66:
 517 0202 0E94 0000 		call CamConfig_sendFifoCmds
 518               	.L30:
 519               	/* epilogue: frame size=0 */
 520 0206 DF91      		pop r29
 521 0208 CF91      		pop r28
 522 020a 0895      		ret
 523               	/* epilogue end (size=3) */
 524               	/* function UIMgr_executeCmd size 68 (63) */
 530               	.Lscope4:
 533               	UIMgr_convertTokenToValue:
 304:UIMgr.c       **** 	}
 305:UIMgr.c       **** 	

⌨️ 快捷键说明

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