Преобразование типов при передаче переменных в процедуру - C (СИ)
Формулировка задачи:
Есть код
Почему то l и h неправильно передаются в функцию GLCD_WriteData.
Но если написать GLCD_WriteData(0x1F), то все работает
void GLCD_WriteData(unsigned char dataToWrite) { SED1335_DATA_PORT = dataToWrite; SED1335_DATA_DIR = 0xFF; SED1335_CONTROL_PORT &= ~(SED1335_CS | SED1335_A0 | SED1335_WR); asm("nop"); SED1335_CONTROL_PORT |= (SED1335_CS | SED1335_A0 | SED1335_WR); } void Set_X_Y(int x,int y) { //unsigned char l,h=0; unsigned int line=0; line=x*240+y; unsigned char l=line&0x00FF; unsigned char h=((line&0xFF00)>>8); GLCD_WriteCommand(0x46); GLCD_WriteData(l); GLCD_WriteData(h); POS_X=x; POS_Y=y; }
Решение задачи: «Преобразование типов при передаче переменных в процедуру»
textual
Листинг программы
unsigned char l=line&0x00FF; unsigned char h=((line&0xFF00)>>8);
Объяснение кода листинга программы
- Переменная
line
содержит значение, которое будет использоваться в коде. - Результат операции
line&0x00FF
сохраняется в переменнойl
. - Результат операции
((line&0xFF00)>>8)
сохраняется в переменнойh
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д