реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> установка бита, жки
goodking
сообщение Apr 1 2010, 12:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 21-12-09
Пользователь №: 54 383



Привет! Объясните пожалуйста этот кусок программы из примера

Код
  Помимо вывода графики побайтно также существует возможность установки или сброса одного бита в байте по заданному адресу. Это позволяет управлять отдельными точками на экране. Ниже приведена функция, позволяющая засвечивать или гасить отдельный бит по заданному адресу.

void PutPixelXYLCD(unsigned char X,unsigned char Y,unsigned char bt)
{
unsigned int i;

i=(unsigned int)X/6;
i=(unsigned int)(LCD_GraphicHome)+(unsigned int)X/6+(unsigned int)Y*0x28;
SetAddrLCD((unsigned int)(LCD_GraphicHome)+(unsigned int)X/6+(unsigned int)Y*0x28);//Установка адреса

while ((GetStatusLCD()&0x03)!=0x03);
//Вывод точки.
if (bt)
Send8LCD(1,(0xf8|(5-(X-(X/6)*6))));
else
Send8LCD(1,(0xf0|(5-(X-(X/6)*6))));
}

      В этой функции используется функция установки указателя адреса, позволяющая выполнять эту операцию в одной строке, что облегчает читаемость программы. Вот ее текст:

void SetAddrLCD(unsigned int addr)
{

while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,(unsigned char)addr);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,(unsigned char)(addr>>8));
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x24);
}



конкретно интересует


вот этот
Код
5-(X-(X/6)*6)))

момент ?? Для чего эти вычисления?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 1 2010, 15:24
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Очевидно, что X-(X/6)*6 - остаток от деления X на 6. Зачем он вычисляется - надо смотреть систему команд контроллера дисплея.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 1 2010, 16:01
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



похоже на вычисление позиции точки в знакоместе
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 1 2010, 16:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Apr 1 2010, 18:24) *
Очевидно, что X-(X/6)*6 - остаток от деления X на 6.

Наличие такого
X-(X/6)*6
вместо
X%6
однозначно свидетельствует о том, что изучения этот исходник не заслуживает.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016