반응형
아래 코드는 I2C unsinged int 값을 2 byte unsigned char로 변환하여 나눠서 저장. address pointer=하위바이트,
* address pointer+1=상위바이트 순으로 저장하는 코드 역으로 작업하는 코드는 그 아래~
주석 참고하시고, Atmega 2560에서 사용하는 코드입니다.
/**
* I2C unsinged int 값을 2 byte unsigned char로 변환하여 나눠서 저장. address pointer=하위바이트,
* address pointer+1=상위바이트 순으로 저장. * @param integer unsigned int, 변환할 정수값 * @param pchar unsigned char *, 변환하여 return하는 문자열 포인터 * @return */ void Int2Char(unsigned int integer, unsigned char *pchar) { *pchar = (unsigned char) ((integer>>8)&0xFF); *(pchar+1) = (unsigned char) (integer&0xFF); return; } void IntToChar(unsigned int integer, unsigned char *pchar, unsigned char pc_opt) { if (pc_opt) { *pchar = (unsigned char) ((integer>>8)&0xFF); *(pchar+1) = (unsigned char) (integer&0xFF); } else { *(pchar+1) = (unsigned char) ((integer>>8)&0xFF); *pchar = (unsigned char) (integer&0xFF); } } /** * I2C 2 byte unsigned char pointer의 데이터를 unsigned integer로 변환 * @param pchar unsigned char *, 변환할 문자열 포인터 * @return unsigned int, 변환하여 return하는 정수값 */ unsigned int Char2Int(unsigned char *pchar) { /* unsigned int lui_temp; lui_temp = ((unsigned int )*(pchar+1)<<8)+ *(pchar); return lui_temp; */ return ((((unsigned int)*(pchar))<<8)+ *(pchar + 1)); } unsigned int CharToInt(unsigned char *pchar, unsigned char pc_opt) { unsigned int lui_temp; if (pc_opt) { lui_temp = ((unsigned int )*(pchar)<<8)+ *(pchar + 1); } else { lui_temp = ((unsigned int )*(pchar+1)<<8)+ *(pchar); } return lui_temp; }
반응형
'개발자 > Algorithm' 카테고리의 다른 글
Top programmer’s blogs (0) | 2015.04.01 |
---|---|
stray ‘\302’ in program, stray ‘\240’ in program 에러 해결 방법 (2) | 2015.03.17 |
프로그래밍 배울 수 있는 사이트 (2) | 2015.02.15 |
개발 명장이 되는 길 (0) | 2014.05.15 |
BCD를 binanry으로 변환과 binary를 BCD로 변환 코드 (0) | 2014.03.25 |
좋은 프로그래머가 되기위한 10 가지 방법 (1) | 2014.01.21 |
소스코드 분석, 코드 리뷰 분석 방법 모아봤습니다. (5) | 2013.12.26 |
Cadence OrCAD v16.0 설치방법 - Windows 7에 설치 ( XP 에서도 가능) (5) | 2013.05.21 |
더욱 좋은 정보를 제공하겠습니다.~ ^^