Что курят программисты? (про си, контроллер, таблицу и ...)

  • Автор темы Васисуалий
R

Rаmil

  • 22 Сен 2014
Свапы я бы на месте делал, при большом количестве точек вызывать функции накладно по времени. Ну или инлайнить эти функции, или макросом реализовать. Или у тебя это и так макросы ? Эти swap-ы ?

пс. Я вот так и не дошёл до графики на таком низком уровне. Сглаживание линий реализовал ? Чтобы линия выглядела линией а не ступеньками шла. Растеризация сложная тема по нудности и длине её теории. Я сходу, наскоком не смог этого освоить.


ппс. Ну и конкретно по этому коду - то получается что к примеру при условиях
steep != 0 и при этом xt != y до return дело никогда не дойдёт, в лучшем случае функция возвратит мусор. В худшем код пойдёт выполняться дальше за телом этой функции. Гарантированное зависание. А по общему коду вникать, - возможна такая ситуация или нет, желания нет. Но код получается некорректным.
 
S

slav0n

  • 23 Сен 2014
свапы отдельной функцией. скорость пофиг, т.к. проект нагревалки, а она медленная.
тут я вроде получаю величину из заданного диапазона по желаемому смещению...
подзабыл уже, надо припомнить

пс.Да... До каких только извращений не додумаешься под настроение.
Это ж надо - брезенхома впихнуть в нагревалку.
Вот медленный эквивалент вышеприведенной ереси:
Код:
int LCD_LINE(int xt, int x0, int x1, int y0, int y1)
{
	int res = xt * (y1-y0) * 10 / (x1-x0);
	//для прикола округляем до целого
	if(abs(res)%10 >= 5)return ((res>0) ? res/10 + 1 : res/10 - 1);
	else return res/10;
}
 

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

  • Справочная информация

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

    • Диагностика
    • Определение неисправности
    • Выбор метода ремонта
    • Поиск запчастей
    • Устранение дефекта
    • Настройка

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

  • Неисправности

    Все неисправности по их проявлению можно разделить на два вида - стабильные и периодические. Наиболее часто рассматриваются следующие:

    • не включается
    • не корректно работает какой-то узел (блок)
    • периодически (иногда) что-то происходит

    Если у Вас есть свой вопрос по определению дефекта, способу его устранения, либо поиску и замене запчастей, Вы должны создать свою, новую тему в соответствующем разделе.
  • О прошивках

    Большинство современной аппаратуры представляет из себя подобие программно-аппаратного комплекса. То есть, основной процессор управляет другими устройствами по программе, которая может находиться как в самом чипе процессора, так и в отдельных микросхемах памяти.

    На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.


    По вопросам прошивки Вы должны выбрать раздел для вашего типа аппарата, иначе ответ и сам файл Вы не получите, а тема будет удалена.
  • Схемы аппаратуры

    Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:


    Внимательно читайте описание. Перед запросом схемы или прошивки произведите поиск по форуму, возможно она уже есть в архивах. Поиск доступен после создания аккаунта.
  • Справочники

    На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).


    Информация размещена в каталогах, файловых архивах, и отдельных темах, в зависимости от типов элементов.

  • Marking (маркировка) - обозначение на электронных компонентах

    Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.


  • Package (корпус) - вид корпуса электронного компонента

    При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

    • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
    • SOT-89 - пластковый корпус для поверхностного монтажа
    • SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
    • TO-220 - тип корпуса для монтажа (пайки) в отверстия
    • SOP (SOIC, SO) - миниатюрные корпуса для поверхностного монтажа (SMD)
    • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
    • BGA (Ball Grid Array) - корпус для монтажа выводов на шарики из припоя

  • Краткие сокращения

    При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

      Сокращение   Краткое описание
    LEDLight Emitting Diode - Светодиод (Светоизлучающий диод)
    MOSFETMetal Oxide Semiconductor Field Effect Transistor - Полевой транзистор с МОП структурой затвора
    EEPROMElectrically Erasable Programmable Read-Only Memory - Электрически стираемая память
    eMMCembedded Multimedia Memory Card - Встроенная мультимедийная карта памяти
    LCDLiquid Crystal Display - Жидкокристаллический дисплей (экран)
    SCLSerial Clock - Шина интерфейса I2C для передачи тактового сигнала
    SDASerial Data - Шина интерфейса I2C для обмена данными
    ICSPIn-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
    IIC, I2CInter-Integrated Circuit - Двухпроводный интерфейс обмена данными между микросхемами
    PCBPrinted Circuit Board - Печатная плата
    PWMPulse Width Modulation - Широтно-импульсная модуляция
    SPISerial Peripheral Interface Protocol - Протокол последовательного периферийного интерфейса
    USBUniversal Serial Bus - Универсальная последовательная шина
    DMADirect Memory Access - Модуль для считывания и записи RAM без задействования процессора
    ACAlternating Current - Переменный ток
    DCDirect Current - Постоянный ток
    FMFrequency Modulation - Частотная модуляция (ЧМ)
    AFCAutomatic Frequency Control - Автоматическое управление частотой

  • Частые вопросы

    Как мне дополнить свой вопрос по теме Что курят программисты? (про си, контроллер, таблицу и ...)?

    После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

    Кто отвечает в форуме на вопросы ?

    Ответ в тему Что курят программисты? (про си, контроллер, таблицу и ...) как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

    Как найти нужную информацию по форуму ?

    Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

    По каким еще маркам можно спросить ?

    По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

    Какие еще файлы я смогу здесь скачать ?

    При активном участии в форуме Вам будут доступны дополнительные файлы и разделы, которые не отображаются гостям - схемы, прошивки, справочники, методы и секреты ремонта, типовые неисправности, сервисная информация.


  • Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.



R

Rаmil

  • 25 Сен 2014
Когда я пытался вникать в эти алгоритмы я запомнил что есть версии алгоритма без делений, суть там была в том что направление следующей точки зависело только от знака какого-то простого выражения. Типа меньше ноля рисуем точку выше, больше ноля рисуем, ниже или что то в этом духе. Или же от знака зависело что брать за функцию, а что за аргумент, т.е. то ли y(x) то ли x(y) - это так как у тебя это сделано.
Точно не помню.

пс. А чем нагревалка не подходит для брезенхема ?
 
S

slav0n

  • 27 Сен 2014
Rаmil сказал(а):
А чем нагревалка не подходит для брезенхема ?
подходит конечно. Но если нагревалка это какая нибудь одно-двухканальная печка, то чтобы держать пару температурных профилей зачем там супербыстрый алгоритм
 
S

SSergeB

  • 7 Окт 2014
slav0n сказал(а):
Это ж надо - брезенхома впихнуть в нагревалку.
Вот медленный эквивалент вышеприведенной ереси
Он не только медленный. Он еще и ошибку накопит, как любой другой с плавающей точкой в целочисленной среде. А вот по Брезенхэму ошибка всегда не больше 1/2 шага, независимо от того, насколько далеко ушагали.
В нагревалках брезенхэм, чтобы рулить периодами сети, а не фазой, дешево и без ошибок. Почему полагается именно периоды пропускать - сам знать должен...

Васисуалий - все-таки камушек, с которым балуешь, указывать надо. АРМы, они разные... А инициализация камня - это вообще отдельная песня. Которую компилятор не слышит.
 
S

slav0n

  • 9 Окт 2014
SSergeB сказал(а):
Он не только медленный. Он еще и ошибку накопит, как любой другой с плавающей точкой в целочисленной среде. А вот по Брезенхэму ошибка всегда не больше 1/2 шага, независимо от того, насколько далеко ушагали.
В нагревалках брезенхэм, чтобы рулить периодами сети, а не фазой, дешево и без ошибок. Почему полагается именно периоды пропускать - сам знать должен...
ты сам-то хоть понял что тут написал?
где ты увидел накопление ошибки и руление фазой?
 
В

Васисуалий

Команда форума
  • 8 Сен 2015
А вот теперь вопрос...

Исходя из этого :

Код:
      unsigned char screen [11][22];
      unsigned char table_a = 0;
      unsigned char table_b = 0;
//	  int screen [11][22];
//	  int table_a = 0;
//	  int table_b = 0;

тут ля-ля-ля ------


         while(table_a<=11)
              {
	            while (table_b<=21)
	                  {
		                screen [table_a][table_b]= 0;
		                table_b++;
	                  }
	           table_a++ ;
	           table_b = 0 ;
              }

в строке unsigned char screen [11][22]; получаем таблицу какого размера? Т.е. вот она у нас будет с ячейки с адресом 0, 0, до ячейки 11, 22 или 10,21 ? ;)

Т.е. когда мы обьявляем таблицу, то сколько у нее ячеек? Столько, сколько обьявили от нулевой или от первой?

Добавлено 08-09-2015 12:36

Пысы. Понадобился этот дисплей вдруг для одного дела, откопал эту недописанную "рыбу" и наконец то нашел ошибку! Чего мы ее раньше не увидели? :lol:
 
L

LDZ

  • 8 Сен 2015
что курят программисты я не в курсе... не программист я... любитель...
если я правильно понял вопрос... :)
в квадратных скобках объявляем количество переменных... считаем от 1...
при обращении к конкретной переменной данного массива, считаем от 0...
например:
Код:
char screen [2][3] = {
 {a, b, c},
 {d, e, f}
};
две строки по три символа...
Код:
x = screen[0][0];   // x = a
y = screen[0][1];   // y = b
z = screen[1][2];   // z = f
 
M

MarKruT

Забанен
  • 14 Дек 2015
все вы фигнёй маеесь. хоть делом занялись бы.
 

Верх Низ