2009-10-28

【C語言】秀出數值的二進位表示

#include <stdio.h>

void showBinary(int value, int size) {
int i ;

for(i=(size<<3)-1 ; i>=0 ; i--)
(value & (1<<i) ) ? putchar('1') : putchar('0') ;
}

int main() {
int i=5 ;
char j = 15 ;

//example1: show int type, value is 5
showBinary(i, sizeof(i)) ;
putchar('\n') ;
//example2: show char type, value is 15
showBinary(j, sizeof(j)) ;

getchar() ;
return 0 ;
}

2009-10-22

資工 = 宅 ... @@!?


這圖到底是怎麼回事...實在很不想承認這個事實...
你好~我是宅系出身的正統宅男...@@"

2009-10-11

步進馬達: TS3653NE9

步進馬達區分每條顏色各自為A、A'、B、B'與COM的方法
  1. 將線條分類為兩組:A、A'與COM;B、B'與COM(若控制線只有五條表示只有一個COM)
    用三用電表的電阻擋測試,會三條三條彼此短路,如此便能分為兩大類(A與B)
  2. 找出各自的COM
    一樣使用三用電表的電阻擋量測,A與COM的電阻值會等於A'與COM的電阻值;同樣的,B與COM的電阻值會等於B'與COM的電阻值
    或是A與COM的電阻值會等於2倍的A與A'的電阻值
  3. 分辨出A、A'、B與B'
    將步驟2找出的COM都接到Vcc,四條中挑一條接在Gnd此時馬達會轉一格,然後接續從三條中挑一條接上Gnd,如果順序符合A→B→A'→B'→...的話馬達會順著同一方向旋轉。
    如此便能分辨出A、A'、B與B'
TS3653N3E9這顆步進馬達顏色表示:
COM→黃、白
A→黑
A'→綠
B→藍
B'→紅

2009-10-04

【C語言】左移&右移巨集

恩...就左移與右移巨集函數

#include <stdio.h>

#define ROTATE_LEFT(NUM,BIT) ( \
(NUM<<BIT) | (NUM>>( (sizeof(unsigned)<<3)-BIT) ) \
)

#define ROTATE_RIGHT(NUM,BIT) ( \
(NUM>>BIT) | (NUM<<( (sizeof(unsigned)<<3)-BIT) ) \
)

int main() {
unsigned int x = 0xff000000 ;
printf("0x%8X\t0x%08X\n", x, ROTATE_RIGHT(x,4)) ;
printf("0x%8X\t0x%08X\n", x, ROTATE_LEFT(x,4)) ;
system("pause") ;
return 0 ;
}