반응형
#define TRUE 1 #define FALSE 0 void printf(unsigned char code *pFmt, unsigned int wVal) { unsigned char ucBff, ucDisp; unsigned char bNotZero = FALSE, bHex = FALSE; unsigned int wDivider = 10000; while(ucBff = *(pFmt++)) { if(ucBff == '%') // check special case { switch( *(pFmt++) ) // check next character { case 'x': // hexadecimal number case 'X': wDivider = 0x1000; bHex = TRUE; case 'd': // decimal number case 'i': if(wVal) { while(wDivider) { ucDisp = wVal / wDivider; wVal = wVal % wDivider; if(ucDisp) { bNotZero = TRUE; } if(bNotZero) { if (ucDisp > 9) { putchar(ucDisp - 0x0a + 'A'); } else { putchar(ucDisp + '0'); } } if(bHex) { wDivider /= 0x10; } else { wDivider /= 10; } } } else { putchar('0'); // Send '0' } break; } } else { putchar(ucBff); // Send Byte } } }
반응형
'개발모듈 > 펌웨어 모듈' 카테고리의 다른 글
- 타이머 딜레이 (0) | 2016.06.03 |
---|---|
- WS2812B(RGB-LED) PIC (0) | 2016.05.24 |
- FND (7-Segment) 모듈 (0) | 2016.03.22 |
- 타이머 처리 (0) | 2016.02.29 |
- UART 송신처리 (0) | 2016.02.27 |