📄 system_8c-source.html
字号:
00311 <span class="keywordflow">if</span> ( as2<10 )00312 as2 += 48;00313 <span class="keywordflow">else</span>00314 as2 += 55;00315 00316 <span class="keywordflow">return</span>( ((UINT16)(as1)<<8) + as2 );00317 00318 00319 }00320 00321 00322 <span class="comment">/* Convert ASCII character to numerical */</span>00323 <span class="comment">/* e.g. '1' -> 0x01, 'A' ->0x0A */</span>00324 00325 UINT8 asciitohex (UINT8 ch)00326 {00327 <span class="keywordflow">if</span>( (ch < 58) && (ch > 47) )00328 <span class="keywordflow">return</span>(ch - 48);00329 00330 <span class="keywordflow">if</span>( (ch < 71 ) && (ch > 64) )00331 <span class="keywordflow">return</span>(ch - 55); 00332 }00333 00334 00335 <span class="keywordtype">void</span> ltoa (UINT32 nmbr, UINT8 *ch )00336 {00337 <span class="comment">/* Transforms value of long word to ASCII string */</span>00338 <span class="comment">/* Makes it iterative */</span>00339 00340 UINT16 multiple;00341 UINT32 decade,comp;00342 UINT8 i,found;00343 00344 <span class="comment">/* Init String */</span> 00345 00346 <span class="keywordflow">for</span>( i=0; i<10;i++ )00347 *ch++ = <span class="charliteral">'0'</span>;00348 00349 ch -= 10;00350 00351 <span class="comment">/* See if Zero */</span>00352 00353 <span class="keywordflow">if</span>(nmbr == 0) {00354 *ch++ = <span class="charliteral">'0'</span>;00355 *ch = <span class="charliteral">'\0'</span>;00356 }00357 00358 00359 decade = 1000000000;00360 00361 found = <a class="code" href="system_8h.html#a2">FALSE</a>;00362 00363 <span class="keywordflow">for</span>( i=0; i<10; i++) {00364 00365 <span class="keywordflow">if</span>(i != 0)00366 decade /= 10;00367 00368 <span class="keywordflow">for</span>( multiple=9; multiple>0; multiple--) { 00369 <span class="keywordflow">if</span>( (i==0) && (multiple > 2) )00370 <span class="keywordflow">continue</span>;00371 00372 comp = decade * multiple;00373 00374 <span class="keywordflow">if</span>(nmbr >= comp) {00375 *ch = hextoascii(multiple);00376 nmbr -= comp; 00377 found = <a class="code" href="system_8h.html#a1">TRUE</a>;00378 00379 <span class="keywordflow">break</span>; <span class="comment">/* Still processing */</span>00380 }00381 }00382 00383 <span class="keywordflow">if</span>( found == <a class="code" href="system_8h.html#a1">TRUE</a>)00384 ch++;00385 00386 } 00387 00388 *ch = <span class="charliteral">'\0'</span>; <span class="comment">/* EOL */</span>00389 00390 }00391 00392 00393 00394 00395 <span class="keywordtype">void</span> itoa (UINT16 nmbr, UINT8* ch )00396 {00397 <span class="comment">/* Transforms value of word to ASCII string */</span>00398 <span class="comment">/* Makes it iterative */</span>00399 00400 UINT16 decade, multiple;00401 UINT32 comp;00402 UINT8 i,found;00403 00404 <span class="comment">/* Init String */</span>00405 00406 00407 <span class="keywordflow">for</span>( i=0; i<5;i++)00408 *ch++ = <span class="charliteral">'0'</span>;00409 00410 ch -= 5;00411 00412 <span class="comment">/* See if Zero */</span>00413 00414 <span class="keywordflow">if</span>(nmbr == 0) {00415 *ch++ = <span class="charliteral">'0'</span>;00416 *ch = <span class="charliteral">'\0'</span>;00417 }00418 00419 decade = 10000;00420 00421 found = <a class="code" href="system_8h.html#a2">FALSE</a>;00422 00423 <span class="keywordflow">for</span>( i=0; i<5; i++) {00424 00425 00426 <span class="keywordflow">if</span>(i != 0)00427 decade /= 10;00428 00429 <span class="keywordflow">for</span>( multiple=9; multiple>0; multiple--) { 00430 <span class="keywordflow">if</span>( (i==0) && (multiple > 6) )00431 <span class="keywordflow">continue</span>;00432 00433 comp = decade * multiple;00434 00435 <span class="keywordflow">if</span>(nmbr >= comp) {00436 *ch = hextoascii(multiple);00437 nmbr -= comp; 00438 found = <a class="code" href="system_8h.html#a1">TRUE</a>;00439 00440 <span class="keywordflow">break</span>; <span class="comment">/* Still processing */</span>00441 }00442 }00443 00444 <span class="keywordflow">if</span>( found == <a class="code" href="system_8h.html#a1">TRUE</a>)00445 ch++;00446 00447 } 00448 00449 *ch = <span class="charliteral">'\0'</span>; <span class="comment">/* EOL */</span>00450 00451 }00452 00453 00454 <span class="comment">/* Convert given buffer containing ASCII numbers */</span>00455 <span class="comment">/* to numerical positive INT16 value (max. 32767) */</span>00456 00457 INT16 atoi (UINT8 *buf, UINT8 buflen)00458 {00459 INT16 oval = 0;00460 UINT8 nval = 0;00461 00462 <span class="keywordflow">while</span>(buflen--) {00463 00464 <span class="keywordflow">if</span>(*buf == <span class="charliteral">'\0'</span>)00465 <span class="keywordflow">break</span>;00466 00467 <span class="keywordflow">if</span>( isnumeric(*buf) == 0 )00468 <span class="keywordflow">return</span>(-1);00469 00470 nval = asciitohex(*buf++);00471 00472 oval = oval * 10;00473 oval += nval; 00474 00475 <span class="comment">/* Overflow? */</span>00476 00477 <span class="keywordflow">if</span>(oval < nval)00478 <span class="keywordflow">return</span>(-1);00479 00480 }00481 00482 <span class="keywordflow">return</span>(oval);00483 00484 }00485 00486 00487 <span class="comment">/* Debug/String output */</span>00488 00489 <span class="keywordtype">void</span> mputs (UINT8* msg)00490 {00491 00492 <span class="keywordflow">while</span>( *msg !=<span class="charliteral">'\0'</span>) {00493 sendchar(0,*msg);00494 msg++;00495 }00496 }00497 00498 <span class="comment">/* Debug/Hex output a number*/</span>00499 <span class="keywordtype">void</span> mputhex(UINT8 nbr) {00500 00501 UINT16 i;00502 00503 i=hextoascii(nbr);00504 sendchar(0,i>>8);00505 sendchar(0,(UINT8)i);00506 }00507 00508 <span class="comment">/* Watchdog refresh */</span>00509 00510 <span class="keywordtype">void</span> kick_WD (<span class="keywordtype">void</span>) {00511 WDTC_WTE=0; 00512 }00513 00514 <span class="comment">/* Wait for unaccurate use */</span>00515 00516 <span class="keywordtype">void</span> wait (INT16 i)00517 {00518 <span class="keywordflow">for</span>(;i;i--) kick_WD();00519 }00520 00521 00522 <span class="comment">/* Return "Random" Number */</span>00523 00524 UINT32 random (<span class="keywordtype">void</span>)00525 {00526 <span class="comment">/* TODO: Return REAL random number */</span>00527 <span class="keywordflow">return</span>(0x345A2890);00528 }00529 00530 <span class="comment">/* Do nothing */</span>00531 00532 <span class="keywordtype">void</span> dummy (<span class="keywordtype">void</span>)00533 {00534 <span class="comment">/* That's it */</span>00535 }00536 00537 <span class="comment">/* Power saving mode */</span>00538 00539 <span class="keywordtype">void</span> enter_power_save (<span class="keywordtype">void</span>)00540 {00541 <span class="comment">/* Are we on sleep mode already? */</span>00542 00543 <span class="keywordflow">if</span> (sleep_mode)00544 <span class="keywordflow">return</span>;00545 00546 <a class="code" href="system_8c.html#a1">sleep_mode</a> = 1;00547 00548 <span class="comment">/* Shut down the RS transmitter chip */</span>00549 00550 PDR8_P82 = 0;00551 00552 <span class="comment">/* Set the CPU to intermitted operation mode */</span>00553 00554 LPMCR = 0x1E;00555 00556 <span class="keywordflow">return</span>;00557 }00558 00559 00560 00561 <span class="keywordtype">void</span> exit_power_save (<span class="keywordtype">void</span>)00562 {00563 UINT8 i;00564 00565 <span class="keywordflow">if</span> (sleep_mode) {00566 <span class="comment">/* Release RS transmitter chip */</span>00567 00568 PDR8_P82 = 1;00569 00570 <span class="comment">/* Set CPU to normal mode */</span>00571 00572 LPMCR = 0x18;00573 00574 <span class="comment">/* Wait for a while */</span>00575 00576 <span class="keywordflow">for</span>( i=0; i<128; i++)00577 <a class="code" href="system_8c.html#a1">sleep_mode</a> = 0;00578 00579 }00580 00581 }00582 00583 </pre></div><hr><address style="align: right;"><small>Generated on Sun Aug 3 20:33:00 2003 for OpenTCP by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -