2013-05-10 62 views

回答

0

對不起......

我只是發現SHIFTOUT的實現()函數:

void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) 
{ 
uint8_t i; 
digitalWrite(clockPin, LOW);  
for (i = 0; i < 8; i++) { 
    if (bitOrder == LSBFIRST) 
     digitalWrite(dataPin, !!(val & (1 << i))); 
    else  
     digitalWrite(dataPin, !!(val & (1 << (7 - i)))); 
    digitalWrite(clockPin, HIGH); 
    digitalWrite(clockPin, LOW);  
} 
} 

目前我只是想支持MSBFIRST,所以我的函數看起來像...

#define GPIO0_WRITE(Pin,Value) if (Value == 0) { LPC_GPIO0->FIOCLR|= (1 << Pin); } else { LPC_GPIO0->FIOSET |= (1 << Pin); } 


GPIO0_WRITE(CLOCK_PIN, LOW); 
for (i = 0; i < 8; i++) 
{ 
    GPIO0_WRITE(DATA_PIN, !!(CMD_TEMPERATURE & (1 << (7 - i)))); 

    GPIO0_WRITE(CLOCK_PIN,HIGH); 
    GPIO0_WRITE(CLOCK_PIN,LOW); 
} 

任何建議都歡迎。