Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR и Siemens M55
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
Cyber_RAT
судя по всему "многоуровневые" вы поняли как-то по своему smile.gif
я имелл ввиду меню - курсорчиком выбираешь пункт, ентер - следующее меню и тд... (может это называется вложенные) smile.gif
если такое - то постараюсь сфоткать
011119xx
именно такое
John Silver
Цитата(011119xx @ Nov 13 2008, 12:33) *
А можно заценить? Исходник или фото.


Тоже интересуюсь, будьте так любезны показать код.
У меня меню на автомате состояний, 20 состояний и 3 кнопки. Уже очень массивный код получается.
Наверно есть какой-то более изящный путь построения меню.
Cyber_RAT
а кто сказал что у меня не громоздкий sad.gif
у меня эти меню львиную долю кода отъедают...
cp условие
brne не то
иначе переход на подменю
не то:
cp условие
brne
и тд и тп

строка которая активна это бит в байте - в случае от перехода вверх-вниз я его сдвигаю...
в отрисовке меню на этом бите идет инверсия (или курсор своего цвета)
при проверке кнопки Enter учитывается этот бит как пункт меню на котором стою.
при переходе в подменю он сохраняется для возврата в эту же позицию и тд.
только у меня ограничение строк в меню максимум столько - сколько влазит на экран... (в подменю так же.)
011119xx
Цитата(Cyber_RAT @ Nov 13 2008, 16:50) *
а кто сказал что у меня не громоздкий sad.gif
у меня эти меню львиную долю кода отъедают...
cp условие
brne не то
иначе переход на подменю
не то:
cp условие
brne
и тд и тп

строка которая активна это бит в байте - в случае от перехода вверх-вниз я его сдвигаю...
в отрисовке меню на этом бите идет инверсия (или курсор своего цвета)
при проверке кнопки Enter учитывается этот бит как пункт меню на котором стою.
при переходе в подменю он сохраняется для возврата в эту же позицию и тд.
только у меня ограничение строк в меню максимум столько - сколько влазит на экран... (в подменю так же.)

Не ужели вы меню на ассемблере сделали. 05.gif
Cyber_RAT
Цитата(011119xx @ Nov 13 2008, 14:30) *
Не ужели вы меню на ассемблере сделали. 05.gif

ну да...
какая разница какой язык, просто писать больше...

по теме:
если есть на экране активное окно - а я рисую линию через него... получится? или при попадании в окно начнет заполнять его?
МП41
Если на ассемблере постараться, то меню будет меньше места занимать, чем на Си, но будет несколько неудобно с исходниками возиться.
John Silver
Цитата(Cyber_RAT @ Nov 13 2008, 14:41) *
по теме:
если есть на экране активное окно - а я рисую линию через него... получится? или при попадании в окно начнет заполнять его?


ставишь указатель вне окна? дойдешь до окна - в нем и останешься.
AleksBoy
Добрый день

Случайно набрёл на ваш форум, и загорелось...
к тому же нашёлся и LS020

Одно вот только, дулаю на ПЛИС и слова о программном
SPI на 16 МГц не очём не говорят.
Сделал вроде всё как у вас на форуме говорится, но результата
нет - экран светится белым всё время, и ничего не происходит.

Наверное всё дело во временных интервалах протокола...
Если кто знает, ПЛИЗ-З-З-З, помогите определиться - длина такта CLK,
время между передачей слов (или байтов?, как всё-таки делается начальная
инициализация - словами или байтами)

Буду крайне благодарен за советы...
Cyber_RAT
посмотрите на сайте суперкрантца - там есть скрин с осциллографа...
и паузы при инициализации все выдерживаете?
AleksBoy
Цитата(Cyber_RAT @ Nov 14 2008, 15:41) *
посмотрите на сайте суперкрантца - там есть скрин с осциллографа...
и паузы при инициализации все выдерживаете?


Если имеете ввиду паузы между группами команд, то да.

Что касается скрина суперкранца, то на ней вроде 16-битная посылка,
а во всех источниках по SPI - 8-битная. К тому же на скрине сосвсем
не видно временных данных. А ещё там всего одна команда - а какое
время между командами в одной группе? Какой бит (старший или
младший) передаётся первым? Как относится длина тактового импульса
к частоте кварца AVR?

Вообщем вопросов целая куча ... А одна осцилограмма разом бы на всё ответила ...
Juras Pr.
Исходите из того, что максимальная частота SPI по даташиту - 13МГц, но вообще-то люди подавали и больше.
В AVR длина импульса относится к частоте SPI по взаимообратному закону (T=1/Fspi) , а частота SPI устанавливается делителем путем деления частоты кварца и не может быть больше, чем половина частоты последнего.
anaconda
Вопрос слегка не в тему. Есть модуль Nokia 3510i(дисплей с динамиком). Как осуществить подсветку дисплея? На самом модуле как я понял светодиодов нет.
Juras Pr.
Установить на плату SMD-светодиоды бокового свечения и установить модуль на плату, как это делается в телефоне. В этом плане модуль не очень удобный.
Cyber_RAT
AleksBoy: начало инициализации S65 на atmega32? может чем поможет.
p.s. ресет сразу в 0 на 1мс, потом вс время 1. (тут выкушен для более детального графа)
Krik99
Вот после изучени дисплея от Siemens S65 вот результаты, МК использовал ATmega8, картинку выводить не пробовал так-как памяти маловато, теперь надо изучать работу с ММС. Если у когото есть исходники работы с ММС под Cи, попрошу поделится. beer.gif
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Juras Pr.
Хорошие результаты, а MMC для чего будет?
011119xx
Цитата(Krik99 @ Nov 17 2008, 21:42) *
Вот после изучени дисплея от Siemens S65 вот результаты, МК использовал ATmega8, картинку выводить не пробовал так-как памяти маловато, теперь надо изучать работу с ММС. Если у когото есть исходники работы с ММС под Cи, попрошу поделится.

Что за шрифт? Где брал?
John Silver
Цитата(Krik99 @ Nov 17 2008, 18:42) *
Если у когото есть исходники работы с ММС под Cи, попрошу поделится. beer.gif

Смотри сдесь:
http://electronix.ru/forum/index.php?showt...25402&st=80

Там и мои сырые сурцы есть.
Krik99
За ссылку спасибо, обязательно посмотрю. ММС будет служит для того чтобы в ней картинки полноэкранные хранить. smile.gif Хотя можно и DataFlash использовать, но пока не нашол где достать.
Alex_1811
Вот моя программа для создания шрифта. Может пригодится. (возможно уже выкладывал)
Juras Pr.
Krik99, может быть инетресно, но на немецком
Библиотека MMC/SD FAT16/FAT32:
http://www.mikrocontroller.net/topic/105869
Фоторамка на базе ATmega8 с экраном S65(LS020) и SD-картой:
http://www.mikrocontroller.net/topic/79738
k34Nex
Немного отсутствовал..Но дело такое..на 52 странице я писал о своей проблеме.Не правильно выводятся цвета и текст(( Ниже 2 фотки дисплея. Первая с исходной инициализацией Нажмите для просмотра прикрепленного файла . Вот код вывода 5 полосок разного цвета
//lcd_fillrect(X1, Y1, X2, Y2,color);
lcd_fillrect(0, 00, 132, 30,white);
lcd_fillrect(0, 30, 132, 60,red);
lcd_fillrect(0, 60, 132, 90,green);
lcd_fillrect(0, 90, 132, 120,blue);
lcd_fillrect(0, 120, 132, 150,orange);
lcd_fillrect(0, 150, 132, 176,sky);
Первая фотка-итог, то, что на экране. Посоветовали
Цитата
Проблема точно в инициализации,когда перебирал в ней биты был и такой случай.
В место 0x4952 замените на 0x4902
Заменил-цвета изменились, но все равно не те!!! см. фото 2.Нажмите для просмотра прикрепленного файла
Помогите, в чем дело? crying.gif
skripach
Ну сразу видно что перепутаны местами красный и синий.
Зелёный на своём месте вроде, может перепутано всё вместе.
R4R3R2R1R0 B5B4B3B2B1B0 G4G3G2G1G0 ->
G4G3G2G1G0 B5B4B3B2B1B0 R4R3R2R1R0
ИЛИ
R4R3R2R1R0 B5B4B3B2B1B0 G4G3G2G1G0 ->
G0G1G2G3G4 B0B1B2B3B4B5 R0R1R2R3R4
Скорее всего меняй местами красный с синим.

Или может я чего-то не понял?
Juras Pr.
k34Nex,
неплохо было бы посмотреть содержимое цветовых констант.
k34Nex
//colors
#define sky 0x54fb
#define black 0x0000
#define white 0xFFFF
#define green 0x07E0
#define blue 0x7FF0
#define red 0xF800
#define yellow 0xDEE0
#define orange 0xAB00
#define pink 0xF97F
#define brown 0x8200
#define grey 0x8410
#define violet 0x91D4
011119xx
Цитата(k34Nex @ Nov 19 2008, 04:03) *
//colors
#define blue 0x7FF0

вот это явно не голубой.

я вот так юзаю:
#define RGB(r,g,cool.gif (((r & 0xF8) << 8) | ((g & 0xFC) << 3) | ((b & 0xF8) >> 3))

#define BLACK RGB(0x00, 0x00, 0x00)
#define WHITE RGB(0xFF, 0xFF, 0xFF)
#define RED RGB(0xFF, 0x00, 0x00)
#define GREEN RGB(0x00, 0xC8, 0x00)
#define BLUE RGB(0x00, 0x00, 0xFF)
#define YELLOW RGB(0xFF, 0xFF, 0x00)
#define MAGENTA RGB(0xFF, 0x00, 0xFF)
#define CYAN RGB(0x00, 0xFF, 0xFF)
#define GRAY RGB(0x80, 0x80, 0x40)
#define SILVER RGB(0xA0, 0xA0, 0x80)
#define GOLD RGB(0xA0, 0xA0, 0x40)
#define BEGH RGB(0xF0 ,0xEC, 0xD8)
#define SKY RGB(0x5A ,0xA0, 0xE6)
#define PINK RGB(0xFF ,0x2D, 0xFF)
#define VIOLET RGB(0x96 ,0x32, 0xC8)
#define ORANGE RGB(0xFF ,0x96, 0x00)

пользуйтесь на здоровье
Krik99
а я так цвета хранил:
#define BLACK (0b0000000000000000)
#define WHITE (0b1111111111111111)
#define RED (0b1111100000000000)
#define GREEN (0b0000011111100000)
#define BLUE (0b0000000000011111)
хотя и приметивно, но я так писал первый раз wink.gif
011119xx
Цитата(Krik99 @ Nov 20 2008, 01:59) *
а я так цвета хранил:
#define BLACK (0b0000000000000000)
#define WHITE (0b1111111111111111)
#define RED (0b1111100000000000)
#define GREEN (0b0000011111100000)
#define BLUE (0b0000000000011111)
хотя и приметивно, но я так писал первый раз wink.gif

так не удобно. в том варианте, что я привел даже расчитывать ничего не нужно, компилятор сам все сделает.
Cyber_RAT
А я цвета выбираю в сетапе - (но у меня 256 цветовой режим, чего мне хватает за глаза)
картинка ниже.
011119xx
Есть у кого-нибудь толковый конвертер 24 битного BMP в 16 битный 5-6-5 с сохранением в текстовом файле под Си?
Чтобы цвет сохранялся так: 5050, или так: 0х2313
Alex_1811
Цитата(011119xx @ Nov 20 2008, 10:14) *
Есть у кого-нибудь толковый конвертер 24 битного BMP в 16 битный 5-6-5 с сохранением в текстовом файле под Си?
Чтобы цвет сохранялся так: 5050, или так: 0х2313

Вот доработал свою прогу.
В bin точно нормально конвертит, а для Си не проверял. Если что пишите.
И еще для прога для выбора цвета.
011119xx
Прога для выбора цвета - хороша, а вот для картинки под Си не идет. сохраняет побайтно, а не пословно
МП41
А кто-нибудь пробовал к экрану подключиться не проводами, а разъёмом каким-нибудь. Да, шаг там нестандартный. Из телефона S65 этот разъём выпаять реально? Если есть у кого фото, покажите.
uriy
Я пробовал и удачно, правда из М55. Феном выпаивается без проблем. Пластик при 350 градусах совершенно не плавился. Кстати на фото видите крепление металлическое... Оно тоже выпаяно с телефона.
011119xx
Вот мой конвертер BMP 24 бита в 16 бит (5-6-5). Сделан под WinAVR. Заранее скажу, что делать под другие не имею желания.
МП41
uriy, а у телефона S65 этот разъём видеть приходилось? Похож на M55?
uriy
У меня щас S65 как-нить разберу и сфоткаю. Дисплей с телефона я еще не снимал. Скорее всего он точно такой же, потому что контактные площадки со стороны телефона вроде одинаковые.
011119xx
Выкладываю тестовую прошивку графики для желающих. После включения на дисплее цветной мусор. При нажатии на кнопку "Вверх" отображается заставка, при нажатии на кнопку "Вправо" - состояние воспроизведения, на кнопку "Вниз" - отображается частичное меню, на кнопку "Влево" - батарея постепенно разряжается, на кнопку "Выбор" - дисплей выключается. В качестве программатора использовал фитоновский ChipProg+. В конфигурации ATmega128L галочки стоят у следующих битов: CKSEL0, CKSEL1, CKSEL3, SUT0, BODEN, BOOTSZ0, BOOTSZ1, EESAVE, SPIEN. Схема и прошивка в архиве.
МП41
Цитата(uriy @ Nov 24 2008, 12:50) *
Скорее всего он точно такой же, потому что контактные площадки со стороны телефона вроде одинаковые.

Разъём возможно такой, но его расположение относительно рамки отличается.
dosikus
Цитата(uriy @ Nov 22 2008, 00:29) *
Я пробовал и удачно, правда из М55. Феном выпаивается без проблем. Пластик при 350 градусах совершенно не плавился. Кстати на фото видите крепление металлическое... Оно тоже выпаяно с телефона.


А даташит на м55 не подкинешь ? Или хотя бы пример управления...
uriy
Цитата
А даташит на м55 не подкинешь ? Или хотя бы пример управления...
Да вот сам щас подцепил дисплей от М55 к LPC2378. Потом начал эту ветку читать она же все таки Siemens М55 называется. А о нем тут ничего толкового оказывается нет. Пишут только о S65. Так и лежит пока у меня эта плата. В инете тоже ничего не нашел.
dosikus
Цитата(uriy @ Nov 25 2008, 23:29) *
Да вот сам щас подцепил дисплей от М55 к LPC2378. Потом начал эту ветку читать она же все таки Siemens М55 называется. А о нем тут ничего толкового оказывается нет. Пишут только о S65. Так и лежит пока у меня эта плата. В инете тоже ничего не нашел.


Упс.. У тебя такой http://sandiding.tripod.com/m55.html ?
Если да, то оба даташита у меня есть.
Значит я ошибся у меня написано LPH8731...

Вот еще до кучи
http://forums.altair-tv.ru/index.php?showt...22791&st=10
dosikus
Гы ... порывшись по ремонтным форумам нашел зацепку .
Похоже у LPH8731 -> S1D15G14 контроллер .... 07.gif
Даташит на него ---> http://mipsa.p.lodz.pl/download/BazaWiedzy...ze/S1D15G14.pdf

Если так, то это полная ж... lol.gif
Столько искать...
Он же и в nokia 3510 (не дисплей а контроллер) .
Faton
Возникли проблемы с выводом масива , переделал подпрограмму зиливки для вывода масива.
Экран от siemens m65 на контролере L2F50.

Код
void foto(void)
{
  unsigned long i;

  PORTB &= ~_BV(LCD_CS);  // select display
  
  lcd_cmd(SD_CSET);
  lcd_dat0(0x08);  // start is 8, not 0
  lcd_dat0(0x01);
  lcd_dat0(0x8B);  // is 00x8B = 0x83+8
  lcd_dat0(0x01);

  lcd_cmd(SD_PSET);
  lcd_dat0(0x00);
  lcd_dat0(0xAF);

  
  lcd_cmd(RAMWR);

  // start data transmission  
  //for (i=0; i<DISP_W*DISP_H; i++)
  for (i=0; i<176*132; i++)
    lcd_dat16(image[i]);
    
  PORTB |= _BV(LCD_CS);  // deselect display    
}




А проблема заключается в том что выводится 16 стобцов масива а остальное залито зеленым цветом почему непонятно, если кто работал и были такиеже проблемы отпишитесь.
uriy
У меня именно LPH8731.
Цитата
Если так, то это полная ж...
Не понял что имелось ввиду. Команды в даташите вроде есть. Надо как-нибудь попробовать.
МП41
Было бы неплохо, если бы модераторы в название темы после "M55" добавили ещё и "S65". А от М55 тоже несколько вариантов экранов бывает?
dosikus
Цитата(uriy @ Nov 26 2008, 09:12) *
У меня именно LPH8731. Не понял что имелось ввиду. Команды в даташите вроде есть. Надо как-нибудь попробовать.


Дык , знаешь сколько я его ищу ? А оказывается он рядом валялся . biggrin.gif


Цитата(МП41 @ Nov 26 2008, 11:39) *
А от М55 тоже несколько вариантов экранов бывает?


Вот что я нашел :


Цитата
Изначально было два тела - один топляк, другой ударник. У одного тип дисплея LPH8731, у другого LM15SGFNZ07 - даже внешне отличимы по компонентам и не взаимозаменяемы. Вскрытие второго показало нерентабельность дальнейшего ремонта - обрыв 14-и пятаков под процем. Первый вываливался с ошибкой EXIT:2000 78 0028, выдавал синий экран и со свойственным E-Gold бзыком вырубался. Грешил на RAM - перекатал (незря!) - рез-тат тотже. После подъема проца нашелся оборванный LCD_CLK (U17) и TDI (U10) - восстановил. ЖКИ и тело ожили. Имея под рукой вторую флешку глупо было не заменить ее, заодно и с ИМЕЕМ поиграться, посмотреть на результат. Заменил - тело включилось, но дисплей синий. Думал, что перегрел перекатанный U17, но замена дисплея на родной все решила. Вот вопрос: программно можно, значит, привязать дисплеи, ведь Джокер их берет из флеши : DisplayID: 37, Philips Epson S1D15G14 и DisplayID: 34, Sharp Hynix HM17CM4101.
dosikus
Цитата(uriy @ Nov 26 2008, 08:12) *
У меня именно LPH8731. Не понял что имелось ввиду. Команды в даташите вроде есть. Надо как-нибудь попробовать.


Да , раскатал я губу.
Получился облом...
Не тот это контроллер , иницилизация не проходит... crying.gif
А так хотелось....
k34Nex
Всем привет, хотелось бы узнать, есть у кого функции вывода 3d предметов? видел где то проект там был вывод вращающегося куба на дисплей S65. Вот из исходников выдрал функцию, но так и не разобрался в алгоритме самом, но частично функция работала,но было давно и все материалы утеряны) Хотелось бы собрать информацию.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.