0
마스킹과 비트 쉬프트에 관한 질문이 있습니다.4 비트 LCD 제어를위한 PIC 비트 마스킹 및 쉬프트
I가 다음 코드를 가지고
void WriteLCD(unsigned char word, unsigned commandType, unsigned usDelay)
{
// Most Significant Bits
// Need to do bit masking for upper nibble, and shift left by 8.
LCD_D = (LCD & 0x0FFF) | (word << 8);
EnableLCD(commandType, usDelay); // Send Data
// Least Significant Bits
// Need to do bit masking for lower nibble, and shift left by 12.
LCD_D = (LCD & 0x0FFF) | (word << 12);
EnableLCD(commandType, usDelay); // Send Data
}
은 "단어"8 비트, 및 4 비트 LCD 인터페이스를 통해 넣어되고있다. 의미 나는 데이터를 보내기 전에 가장 중요한 비트와 최하위 비트를 분리해야합니다.
LCD_D는 16 비트 숫자이며, 여기서 가장 중요한 비트 만 전달됩니다. 실제로는 "수행"하고 싶습니다. 이전 12 비트는 다른 작업을 수행 할 때를 대비하여 보존해야합니다.
비트 마스킹과 LCD_D에 상단 및 하단 니블을 적절하게 전달하는 측면에서 "단어"를 이동한다는 측면에서 논리가 맞습니까?
도움 주셔서 감사합니다.
감사합니다. 던지기는 그것을했다. –