신변잡기2008. 4. 28. 14:23
평소에 자전거 출퇴근을 하고 있는 나 (2km -_-;)
차끌고다니는 친구 (약 15km)

친구에게 자출을 강력히 권했다 -_-b

자신없어 하길래 그럼 주말에 한번 가보자고 ~ 자전거가 없다고? 지하철에서 빌리지 뭐 ㅋ

해서 지하철역으로 고고싱

자전거는 각 지하철역에 구비되어있고,

-> "자전거 빌리려고 하는데요?"
<- "신분증 맡기삼"
-> (신분증 제시)
<- (자전거 열쇠 제시)

이런 식이었다.

대전 시민이 아니어도 가능하지만 시설 내부를 이용하는게 아니라 외부로 나가는 용도인데 신분증을 맡긴다는게 조금 찝찝할 수 도...

대여 시간은 오전 6시 ~ 오후 10시 까지 가능하고 반납은 자기가 빌린 역에서 하면 된다.

사용자 삽입 이미지

자전거 자물쇠를 풀고있는 친구.
자전거는 접이식 미니벨로들인데 20인치~22인치 크기가 보였다.
사용자 삽입 이미지
사용자 삽입 이미지


자~ 출발해보자구?
사용자 삽입 이미지
사용자 삽입 이미지


유채꽃한번 많다 ㅡ.ㅡ
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


앞서가고 있는 나
사용자 삽입 이미지


왜 안오냐? ㅡ.ㅡ
사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


내 자전거와 빌린 자전거 ㅡ.ㅡ
친구네 회사앞 편의점에서 음료수 마시며 한 컷.
사용자 삽입 이미지

대략 왕복 24.X km ?
가는데 40분이나 걸렸다 ㄷㄷㄷ
(나 혼자 가는 시간이었다면 반밖에 안걸렸을텐데... - _-)
사용자 삽입 이미지


뒷이야기.
대전지하철에서 빌리는 자전거로 10km 이상의 거리를 가기엔 영 ~ -_-;
사용자 삽입 이미지
대전 지하철 자전거의 특징
1. 체인링?이 작다.
2. 크랭크암이 짧다.
3. 안장이 낮다.
=> 도저히 포지션이 안나온다.
=> 힘이 제대로 전달이 안된다.

한마디로 표현하면?
=> 애들 자전거 뺐어서 타는 기분이다.

짧은 거리 산책용으로는 괜찮을 듯함.
















.







.








.









.










에효.. 사내놈들끼리 뭐하는 짓인지 OTL
Posted by freezn
신변잡기2008. 4. 22. 17:21
사용자 삽입 이미지

중국지사 직원(베이징출신)이 교육을 받으러 왔다.

이게 3번째 한국 방문인가?

올때마다 안되는 영어에 손짓 발짓 해가며 설명을 해줬었는데...
(이 친구는 영어를 수준급으로 하지만 한국말은 "안녕하세요", "수고하세요" 밖에 모른다 OTL)
(나는? 한국어는 좀 한다 -_-ㅋ)

이번에는 작은 선물을 준비했다며 건네주더라
(아래쪽 미니어쳐술병들은 진짜 술이긴 하지만 마시진 않는 내 수집품들 -_-;;)

(나의 손짓발짓에 감동했나?)

이게 "중궈지에" 라는 발음으로 들렸는데 "중궈"가 "중국"인건 알겠지만 "지에"는 뭐지? -_-a

기념으로 걸어놓고 지저분하지만 책상샷 ㅡㅠㅡ
Posted by freezn


 BITMAPFILEHEADER bmFileHeader;
 BITMAPINFOHEADER bmInfoHeader;

 // BMP 헤더
 bmFileHeader.bfSize  = sizeof(BITMAPFILEHEADER);
 bmFileHeader.bfType  = 0x4D42;
 bmFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
 
 bmInfoHeader.biSize    = sizeof(BITMAPINFOHEADER);
 bmInfoHeader.biWidth   = 320; // 너비
 bmInfoHeader.biHeight   = 240; // 높이
 bmInfoHeader.biPlanes   = 1;
 bmInfoHeader.biBitCount   = 24; // 색상 비트
 bmInfoHeader.biCompression = 0;
 bmInfoHeader.biSizeImage = bmInfoHeader.biWidth * bmInfoHeader.biHeight * (bmInfoHeader.biBitCount/8);

 bmInfoHeader.biXPelsPerMeter = 0;
 bmInfoHeader.biYPelsPerMeter = 0;
 bmInfoHeader.biClrUsed = 0;
 bmInfoHeader.biClrImportant = 0;

 // BMP는 아래에서 위로 저장되는 형식이기 때문에 순서대로 저장하면 뒤집히므로 파일로 저장할 데이터를 뒤집기
 SPixel* rgbTemp = new SPixel[BUFSIZE]; // 파일저장할 데이터를 보관할 임시공간
 for(int i=0; i<BUFSIZE; i++) {
  rgbTemp[i].r = g_rgb[BUFSIZE-1-i].r;
  rgbTemp[i].g = g_rgb[BUFSIZE-1-i].g;
  rgbTemp[i].b = g_rgb[BUFSIZE-1-i].b;
 }

 // 파일로 저장
 CFile file;
 file.Open(_T("파일명"), CFile::modeNoTruncate | CFile::modeCreate | CFile::modeReadWrite );
 file.Write(&bmFileHeader, sizeof(BITMAPFILEHEADER));
 file.Write(&bmInfoHeader, sizeof(BITMAPINFOHEADER));
 file.Write(rgbTemp, bmInfoHeader.biSizeImage);
 file.Close();
 
 delete rgbTemp;

 AfxMessageBox(strFilename + _T("\nwas saved"));

Posted by freezn

void Conv16bit565_TO_24bitRGB(USHORT rgb565, BYTE *r, BYTE *g, BYTE *b)
{
 // 16비트로 RGB를 표현하는 RGB 565에서 R,G,B값을 각각 분리해낸다.
 // 각 비트를보면 다음과 같이 되어있다.
 // RRRRRGGGGGGBBBBB (R: Red, G: Green, B: Blue)

 BYTE red = (rgb565 & 0xF800) >> 11;
 BYTE green = (rgb565 & 0x7E0) >> 5;
 BYTE blue = (rgb565 & 0x1F);

 *r = red << 3;
 *g = green << 2;
 *b = blue << 3;
}

그러므로 24bit -> 16bit -> 24bit 식으로 변환해보면 red, green, blue에서 각각 3,2,3 비트씩 손실이 일어나는 것임을 알 수 있다.
(이렇게 단순히 비트를 죽이는 방법 말고 다른 방법을 쓴다면 조금 더 살릴 수 있을 진 모르겠다.)
RRRRRRRRGGGGGGGGBBBBBBBB 에서
XXXRRRRRXXGGGGGGXXXBBBBB 으로


16bit rgb 555 에서는?

XRRRRRGGGGGBBBBB 이렇게 16bit를 구성 (X는 더미비트)

32bit XRGB 에서는?
XXXXXXXXRRRRRRRRGGGGGGGGBBBBBBBB

Posted by freezn
삽질기행/잡다정보2008. 4. 19. 12:22

GPLR (Level)
Read Only
해당 핀의 High/Low 상태 확인 (해당 비트가 1이면 High)

GPDR (Direction)
Read/Write
핀의 경로 설정. 0이면 Input, 1이면 Output.

GPSR (Set) / GPCR (Clear)
Write Only (Read도 되던가?ㅡ.ㅡ;)
GPSR - 핀에 High를 Set함(1로 만듬), GPCR의 반대 기능
GPCR - 핀을 Low로 떨어뜨림(0으로 만듬), GPSR의 반대 기능

GRER (Rising Edge) / GFER (Falling Edge)
Write Only (Read도 되던가?ㅡ.ㅡ;)
핀 레벨엣지 감시. GRER의 해당 비트를 1로 만들면 Rising을, GFER의 해당 비트를 1로 만들면 Falling을 감시한다. 검출된 결과는 GEDR의 해당 비트가 1로 됨으로 써 알 수 있다.

사용자 삽입 이미지

GEDR (Edge Detect)
Read/Write
GRER/GFER에서 지정한 핀에서 Edge가 확인하면 해당 비트가 1로 바뀐다.
해당 핀의 비트에 1을 주면 Edge가 검출되었다고 1로 세팅되었던 비트가 0으로 clear된다.

GAFR (Alternate Function)
Write Only
이놈만 한 핀당 2비트다.
회로 설계에 따라 어찌할지 정해야한다.
(초짜 SW쟁이라 잘 모르겠다 -_-; 그냥 HW팀에서 해달라는대로 해줬다.)

00 : General Purpose I/O
01 : alternate function 1
10 : alternate function 2
11 : alternate function 3


---------------------------------------------
example.

GPIO핀 하나에 LED를 물렸다.
이 LED를 켜려면?

GPDR의 해당 비트는 1로 되어있어야한다.
그리고 해당 GPSR에 1을 준다.
끄려면?
GPDR의 해당 비트는 1로 되어있어야한다.
그리고 해당 GPCR에 0을 준다.

장치로부터 Level Edge 인터럽트를 받고자 하며, Rising과 Falling 둘다 필요한데 상황에 따라 처리할 내용이 다르다. 구분은 어떻게?
일단 GRER과 GFER을 모두 세팅해놓는다.
GEDR 감시로 인터럽트 발생을 확인한다.
Edge가 발생되면 GPLR로 핀레벨을 확인하여 확인된 Edge가 Rising인지 Falling인지 알 수 있다.

---------------------------------------------

오늘의 잡템.

사용자 삽입 이미지

급조한거지만 비트를 한 눈으로 못읽는 나같은 이들을 위해 만든(사실을 나를 위해-_-;)
2가지 기능을 가진 잡템 -_-;

(GPLR을 예로 들면 GPLR0은 0~31, GPLR1은 32~63을 담당한다.)
핀번호 넣고 gen을 눌러주면 된다.

현재 세팅하는 값을 알기 위한 기능으로 Reg2GPIO -_-;;
GPLR2에서 읽힌 값이 0x80000000 이었다면 이게 몇번 핀들을 의미하는지 알기 위한 기능 ㅡ.ㅡ;;

invalid-file

GPIO Bit 계산기


나말고 다른 사람에게 쓸모가 있을지는 모르겠다 -_-;

----------------------------

아래는 내가 쓰려고 대충 만든것보다 좋아뵈는거 있어서 퍼왔다. ㅎㅎ




(1)해당 비트에 마우스를 가져다가 클릭해 보세요. 값이 변화를 보일 것입니다.
(2)직접 값을 입력하고 싶을 때는 HEX 창이나 DEC창에 값을 입력 한 이후 TEST 버튼을 눌러보세요.
(3)해당 값의 반전(NOT) 을 취하고 싶을 경우 해당 버튼을 누르세요
(4)해당 값을 원하는 수만큼 쉬프트 시키고 싶을 경우 쉬프트 할 비트수를 입력하고 좌/우 화살표(<<, >>)을 눌러 보세요.
(5)두개의 이진값을 &(AND), |(OR), ^(XOR) 합니다.
(6)To Result 버튼은 연산의 결과를 (1)번의 비트표시창으로 연동시켜 줍니다. 눌러보세요. 1번 윈도우의 비트값이 변화를 보일 것입니다.
(7)어드레스 베이스 값에 원하는 오프셋값을 더하고 빼는 것을 도와 줍니다.
(8)연산의 바로 직전 값을 확인 할 수 있도록 해 줍니다.
(9)Mapping Bits 버튼은 비트 값을 파일로 만들어서 INPUT 시킬 수 있는 기능 인데 사용법을 모르겠습니다.

http://www.hongikcom.com/zb/view.php?id=technote&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=28

Posted by freezn
삽질기행/잡다정보2008. 4. 19. 11:43
A 알파(alpa)
B 브라보(bravo)
C 찰리(charlie)
D 델타(delta)
E 에코(echo)
F 폭스트롯(foxtrot)
G 골프(golf)
H 호텔(hotel)
I 인디아(india)
J 줄리엣(juliett)
K 킬로(kilo)
L 리마(lima)
M 마이크(mike)
N 노벰버(november)
O 오스카(oscar)
P 파파(papa)
Q 퀘백(quebec)
R 로미오(romeo)
S 세라또는 시에라(sierra)
T 탱고(tango)
U 유니폼(uniform)
V 빅터(victor)
W 위스키(whiskey)
X 엑스레이(x-ray)
Y 양키(yangkee)
Z 줄루(zulu)
Posted by freezn