ЗУ для автомобильных аккумуляторов на Atmega8
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
флаги прерываний выставляются ВСЕГДА. но если конкретное прерывание запрещено, оно не вызовется.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- вани
- Открыл глаза
- Сообщения: 47
- Зарегистрирован: Пн янв 23, 2012 17:04:50
- Откуда: Казахстан,Кустанай
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
[uquote="вани",url="/forum/viewtopic.php?p=3401460#p3401460"]Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.[/uquote]
Проверяй всю цепь измерения тока. При подключенной батарее без начала заряда ток всегда 0.0А, и как не крути подстроечник ничего не измениться, через шунт ток не течёт. А АЦП у тебя меряет какое-то падение на шунте, по сути это заряд не идет, а падение напряжения есть, т.е. вся цепь измерения неисправна. Если плату разводил сам, то может выводы контроллера перепутал. Может тиристор приоткрывается, КЗ (т.е. сопля) где-то между проводниками. Может не работаем преобразование -5В (что скорее всего). Гадать можно долго, проверяй железо.
Добавлено after 50 minutes 23 seconds:
Всем привет.
Пошел маленький дождишко, лодырям отдышка. Вот и у меня появилось время выложить свой вклад в общее дело.
Выкладываю исходник на С. Функционал полностью исходный + небольшие доработки (для себя, а там может кому и понравится).
Аппаратная часть идентична авторской, за одним исключением. У автора LCD 0802 (судя по фото и по исходнику), т.е. на 8 символов в строке, а у меня классический 1602, т.е. 16 символов в строке. Соответственно под него и сделано. У него 2 недостатка: 1-й - нет подсветки, что не сильно критично (поэтому на плате поставил 78l05, вместо 7805, такой мощный не нужен), 2-й - в нет кирилицы, поэтому все сообщения на аглицком. В некоторых словах сознательно сделаны ошибки и выброшены некоторые вспомогательные глаголы. Всё для того, что бы вместить в длину строки LCD.
Если все же кому нужно будет моё творение на LCD 0802 могу допилить.
Теперь о том, что дополнено:
1. У нас частенько выключают свет. Поэтому если такое случилось, после включения ЗУ перейдет в тот же режим в котором оно выключилось. Если был заряд, то с тем током, который был выставлен энкодером.
Если режим хранения, то он продолжится. Если был в режиме какой-либо ошибки, то сообщит что до выключения была ошибка, и будет ждать когда снимут клеммы с батареи.
2. Если подключаемая батарея убита и у неё напряжение меньше 9В, то заряжать не даст, сообщив об этом. Но если все же хочется заряжать такую батарею, то перед включением 220в удерживайте нажатым энкодер до первого сообщения на экране, блокировка будет отключена.
3. Если при какой-либо внештатной ситуации сработает WDT, что при нормальной работе не должно происходить в принципе, высветится сообщение об этом (типа BSOD в windows) и будет ждать когда снимут клеммы с батареи. Я долго думал сообщать или продолжить прерванный режим, не мог решить как поступить, выбрал сообщение.
Если у кого есть кирилица в LCD можете загрузить прошивку для неё.
Для настройки можно временно скомпилить и зашить пока настаивается с разкомментированным определением #define _TUNE_ADC_, это даёт следующее. Значение напряжения и тока выводятся не преобразованными в В и А, а в значениях измеренными АЦП. Так можно точнее настроить. Например: измеряем напряжение мультиметром, допустим 12.26В () и переводим в значение АЦП = ЦЕЛОЕ(12.26 * 100 / 6) = 204. Для тока формула та же. После настройки зашиваем рабочую прошивку. Если измерение тестером до десятых, все это не имеет смысла делать.
Язык сообщений выбираем закомментировано или нет определение #define _RU_
Если разводке платы перепутали ноги энкодера (как я например), можно разрезать дорожки и запаять проводами, а можно скомрилить с разкомментированным определением #define _SWAP_ENCODER_BITS_.
Написано для кварца 8МГц, если ставите другой, то в определении зайте свою частоту кварца #define F_CPU 8000000UL. Все задержки будут пересчитаны под неё.
Ну и для понтов (как же без них), в процессе зарядки выводится прогресс-бар напряжения. Шкала растянутая от 9В до 14.4В.
Исходник на С, и прошивки для EN и RU прилагаю. Компилил в AtmelStudio 7.0, но думаю и в 6 и в 5 скомпилится без ошибок.
Фьюзы те же, как у автора.
Если что не так пишите поправлю или подскажу.
Проверяй всю цепь измерения тока. При подключенной батарее без начала заряда ток всегда 0.0А, и как не крути подстроечник ничего не измениться, через шунт ток не течёт. А АЦП у тебя меряет какое-то падение на шунте, по сути это заряд не идет, а падение напряжения есть, т.е. вся цепь измерения неисправна. Если плату разводил сам, то может выводы контроллера перепутал. Может тиристор приоткрывается, КЗ (т.е. сопля) где-то между проводниками. Может не работаем преобразование -5В (что скорее всего). Гадать можно долго, проверяй железо.
Добавлено after 50 minutes 23 seconds:
Всем привет.
Пошел маленький дождишко, лодырям отдышка. Вот и у меня появилось время выложить свой вклад в общее дело.
Выкладываю исходник на С. Функционал полностью исходный + небольшие доработки (для себя, а там может кому и понравится).
Аппаратная часть идентична авторской, за одним исключением. У автора LCD 0802 (судя по фото и по исходнику), т.е. на 8 символов в строке, а у меня классический 1602, т.е. 16 символов в строке. Соответственно под него и сделано. У него 2 недостатка: 1-й - нет подсветки, что не сильно критично (поэтому на плате поставил 78l05, вместо 7805, такой мощный не нужен), 2-й - в нет кирилицы, поэтому все сообщения на аглицком. В некоторых словах сознательно сделаны ошибки и выброшены некоторые вспомогательные глаголы. Всё для того, что бы вместить в длину строки LCD.
Если все же кому нужно будет моё творение на LCD 0802 могу допилить.
Теперь о том, что дополнено:
1. У нас частенько выключают свет. Поэтому если такое случилось, после включения ЗУ перейдет в тот же режим в котором оно выключилось. Если был заряд, то с тем током, который был выставлен энкодером.
Если режим хранения, то он продолжится. Если был в режиме какой-либо ошибки, то сообщит что до выключения была ошибка, и будет ждать когда снимут клеммы с батареи.
2. Если подключаемая батарея убита и у неё напряжение меньше 9В, то заряжать не даст, сообщив об этом. Но если все же хочется заряжать такую батарею, то перед включением 220в удерживайте нажатым энкодер до первого сообщения на экране, блокировка будет отключена.
3. Если при какой-либо внештатной ситуации сработает WDT, что при нормальной работе не должно происходить в принципе, высветится сообщение об этом (типа BSOD в windows) и будет ждать когда снимут клеммы с батареи. Я долго думал сообщать или продолжить прерванный режим, не мог решить как поступить, выбрал сообщение.
Если у кого есть кирилица в LCD можете загрузить прошивку для неё.
Для настройки можно временно скомпилить и зашить пока настаивается с разкомментированным определением #define _TUNE_ADC_, это даёт следующее. Значение напряжения и тока выводятся не преобразованными в В и А, а в значениях измеренными АЦП. Так можно точнее настроить. Например: измеряем напряжение мультиметром, допустим 12.26В () и переводим в значение АЦП = ЦЕЛОЕ(12.26 * 100 / 6) = 204. Для тока формула та же. После настройки зашиваем рабочую прошивку. Если измерение тестером до десятых, все это не имеет смысла делать.
Язык сообщений выбираем закомментировано или нет определение #define _RU_
Если разводке платы перепутали ноги энкодера (как я например), можно разрезать дорожки и запаять проводами, а можно скомрилить с разкомментированным определением #define _SWAP_ENCODER_BITS_.
Написано для кварца 8МГц, если ставите другой, то в определении зайте свою частоту кварца #define F_CPU 8000000UL. Все задержки будут пересчитаны под неё.
Ну и для понтов (как же без них), в процессе зарядки выводится прогресс-бар напряжения. Шкала растянутая от 9В до 14.4В.
Исходник на С, и прошивки для EN и RU прилагаю. Компилил в AtmelStudio 7.0, но думаю и в 6 и в 5 скомпилится без ошибок.
Фьюзы те же, как у автора.
Если что не так пишите поправлю или подскажу.
- Вложения
-
- z_m8_44780_1602.7z
- (21.95 КБ) 855 скачиваний
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Уважаемый alex_iag у Вас актуальные доработки, у нас в гаражах отключают свет с 23:00 до 5:00, и делаю на индикаторе 0802 и хотелось что-бы вы допилили для него. И вы делали на плате от автора или на своей.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Спасибо за оценку.
Плату разводил сам для себя. У меня контакты индикатора в один ряд снизу (типа такого https://ru.aliexpress.com/item/1PCS-LCD ... autifyAB=0), контроллер в корпусе DIP28, поэтому разъём программирования не ставил, мс 7660 тоже в корпусе DIP (такую привезли под заказ). Реле вынес на плату с маломощным трансом, не люблю, когда на плате, которую берешь свободно руками присутствует 220В (брр от ударов шерсть дыбом). Если есть желание, могу выложить.
Хорошо, допилю на 0802, но необходимо немного времени. По готовности выложу.
Плату разводил сам для себя. У меня контакты индикатора в один ряд снизу (типа такого https://ru.aliexpress.com/item/1PCS-LCD ... autifyAB=0), контроллер в корпусе DIP28, поэтому разъём программирования не ставил, мс 7660 тоже в корпусе DIP (такую привезли под заказ). Реле вынес на плату с маломощным трансом, не люблю, когда на плате, которую берешь свободно руками присутствует 220В (брр от ударов шерсть дыбом). Если есть желание, могу выложить.
Хорошо, допилю на 0802, но необходимо немного времени. По готовности выложу.
-
vvoleg
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Чт сен 03, 2009 23:03:08
- Откуда: Украина. Черкасская область
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Уважаемый alex_iag! Платой поделитесь? Думаю многие присоединятся к просьбе... Спасибо!
Re: ЗУ для автомобильных аккумуляторов на Atmega8
alex_iag исходя из вашей ссылки на индикатор расположение выводов сверху. Присоединяюсь к просьбе vvoleg выложите пожалуйста свои платы. Ну а индикатор можно и поменять, если будут какие нибудь доработки можно попробовать перевести в I2C, освободятся контакты МК (возможно для дополнительных кнопок) хотя мне зарядное понравилось из-за своей простоты. Есть собранное зарядное и БП от ока275, но иногда надо попроще.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Я честно не особо присматривался к картинке которую привел. Он похож. У меня контакты расположены подобным образом, только вдоль нижнего края с левой стороны если смотреть на лицевую сторону. Вернусь домой плату выложу.
Добавлено after 6 hours 16 minutes 5 seconds:
Прилагаю свою плату, вернее набор плат. Все платы заточены под элементы, которые у меня нашлись (на платах UPSов, принтеров, мониторов и прочего) или привез магазин по заказу, то и поставил.
Шунт сделал из 10 резисторов 1Вт, увы других не было, и smd тоже. Т.к. подсветки в LCD нет, то установлен 78l05.
Плата с микроконтроллером нарисована исходя из того, что верхним принят слой где smd элементы, а слой с микроконтроллером, энкодером, LCD и прочим назначен нижним.
Это 2-й вариант платы с учетом ошибок, которые я сделал делаю своё зарядное. В ней исправлены все допущенные ошибки.
По мимо этого дополнены следующие элементы:
1. Параллельно С8 установлен конденсатор на 0,1мкф
2. на ноги энкодера А,В,2 также добавлены конденсаторы на 0,06 - 0,1мкф для уменьшения дребезга контактов.
Выполнено в SprintLayout 6.0, 5-й его на прочтет, а 6-й в 5-й не сохраняет. Для этого прилагаю viwer для SL6, он свободный. Сам SL6 здесь выкладывать не буду, сочтут как распространителя пиратского ПО. Поэтому либо скачайте на просторах интернета либо выложу куда скажите.
Добавлено after 6 hours 16 minutes 5 seconds:
Прилагаю свою плату, вернее набор плат. Все платы заточены под элементы, которые у меня нашлись (на платах UPSов, принтеров, мониторов и прочего) или привез магазин по заказу, то и поставил.
Шунт сделал из 10 резисторов 1Вт, увы других не было, и smd тоже. Т.к. подсветки в LCD нет, то установлен 78l05.
Плата с микроконтроллером нарисована исходя из того, что верхним принят слой где smd элементы, а слой с микроконтроллером, энкодером, LCD и прочим назначен нижним.
Это 2-й вариант платы с учетом ошибок, которые я сделал делаю своё зарядное. В ней исправлены все допущенные ошибки.
По мимо этого дополнены следующие элементы:
1. Параллельно С8 установлен конденсатор на 0,1мкф
2. на ноги энкодера А,В,2 также добавлены конденсаторы на 0,06 - 0,1мкф для уменьшения дребезга контактов.
Выполнено в SprintLayout 6.0, 5-й его на прочтет, а 6-й в 5-й не сохраняет. Для этого прилагаю viwer для SL6, он свободный. Сам SL6 здесь выкладывать не буду, сочтут как распространителя пиратского ПО. Поэтому либо скачайте на просторах интернета либо выложу куда скажите.
- Вложения
-
- фоточки.7z
- Фотки платы
- (529.92 КБ) 1074 скачивания
-
- Sprint-Layout60_Viewer.7z
- (891.26 КБ) 805 скачиваний
-
- Зарядное_m8_44780.7z
- Сама плата
- (71.31 КБ) 1166 скачиваний
Re: ЗУ для автомобильных аккумуляторов на Atmega8
alex_iag спасибо за платы и фотографии, у меня пару штук 0802 валяются без дела поэтому и сделать хочу на них.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Вот и закончены доработки для 0802. Прилагаю к этому посту следующие прошивки:
1 - Zaryadnoe_m8_44780_en1602.hex и Zaryadnoe_m8_44780_en0802.hex для сообщений на аглицком
2 - Zaryadnoe_m8_44780_ru1602.hex и Zaryadnoe_m8_44780_ru0802.hex для сообщений на русском.
Соответственно выбирайте 1602 или 0802.
Сообщения на русском выводятся согласно следующей кодировке (вреде бы она основная для русифицированных LCD):

Теперь немного ещё о плате. На ней есть такое место

это если D10 не получится найти в smd корпусе, то можно впаять в стеклянном, для этого и предусмотрены отверстия с контактами.
Перемычка на индуктивности создана только для тестирования связей в SprintLayout, в железе она не нужна.
С русской кодировкой не проверял в железе, только в отладчике, по причине отсутствия такого LCD у меня.
1 - Zaryadnoe_m8_44780_en1602.hex и Zaryadnoe_m8_44780_en0802.hex для сообщений на аглицком
2 - Zaryadnoe_m8_44780_ru1602.hex и Zaryadnoe_m8_44780_ru0802.hex для сообщений на русском.
Соответственно выбирайте 1602 или 0802.
Сообщения на русском выводятся согласно следующей кодировке (вреде бы она основная для русифицированных LCD):

Теперь немного ещё о плате. На ней есть такое место
это если D10 не получится найти в smd корпусе, то можно впаять в стеклянном, для этого и предусмотрены отверстия с контактами.
Перемычка на индуктивности создана только для тестирования связей в SprintLayout, в железе она не нужна.
С русской кодировкой не проверял в железе, только в отладчике, по причине отсутствия такого LCD у меня.
- Вложения
-
- Zaryadnoe_m8_44780_ru0802.hex
- (12.84 КБ) 735 скачиваний
-
- Zaryadnoe_m8_44780_ru1602.hex
- (13.12 КБ) 776 скачиваний
-
- Zaryadnoe_m8_44780_en0802.hex
- (12.49 КБ) 681 скачивание
-
- Zaryadnoe_m8_44780_en1602.hex
- (12.9 КБ) 535 скачиваний
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Сотоварищи. При доработке на 0802 я допустил ошибку в логику вывода сообщений и при тестировании не заметил. При выключении зарядки (задав ток =0) зарядка оканчивалась, но не выводилось сообщение.
Ошибку исправил. Исправленные прошивки прилагаю.
В качестве бонуса также прилагаю прошивки для эмуляции русских букв на LCD в котором русского шрифта нет. У меня такой и сообщения на аглицком меня малость не удовлетворяли. Вот и запилил.
Из минусов такой эмуляции:
1 - на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
2 - только заглавные буквы
3 - от прогресс-бара в 1602 пришлось отказаться (он также эмулируется, а места в LCD нет)
Прошивки в архивах по группам на 1602 и 0802
Ошибку исправил. Исправленные прошивки прилагаю.
В качестве бонуса также прилагаю прошивки для эмуляции русских букв на LCD в котором русского шрифта нет. У меня такой и сообщения на аглицком меня малость не удовлетворяли. Вот и запилил.
Из минусов такой эмуляции:
1 - на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
2 - только заглавные буквы
3 - от прогресс-бара в 1602 пришлось отказаться (он также эмулируется, а места в LCD нет)
Прошивки в архивах по группам на 1602 и 0802
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
нужно перед каждым выводом заново записывать в графическую память нужные буквы.alex_iag писал(а):на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Да так-то и делается. После очистки буфер эмуляции очищается. При выводе, если не совпадает по начертанию с латиницей, то заносим в буфер эмуляции. Но беда в том, что в общем эмулировать нужно 19 букв, а буфер максимум 8. Вот поэтому, если на экране нужно отобразить одновременно белее 8 эмулированных букв, то они выводятся *. Благо среди них много не часто используемых, типа ПЮЪЬ.
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
я же сказал: перед выводом заново записывать буквы в графическую память.
а по очереди можно записать хоть 100500 букв, а не только 19...
записал нужные - вывел. записал следующие нужные - опять вывел. и так сколько угодно букв выведешь.
а по очереди можно записать хоть 100500 букв, а не только 19...
записал нужные - вывел. записал следующие нужные - опять вывел. и так сколько угодно букв выведешь.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Неправда Ваша.
Провел эксперимент, ещё раз скурил datasheet. Мои утверждения подтвердились. И в протеусе и в железе.
Код символа выводимого на экран хранится в DDRAM, а то как он выглядит хранится в CGROM и это эти данные нельзя изменить. Для нас доступны только 8 ячеек CGRAM. Содержимое экрана динамически обновляется. Как только мы заменим данные о виде символа в CGRAM он сразу изменит своё начертание на экране.
Поэтому нельзя отобразить ОДНОВРЕМЕННО более 8 своих символов. Очистил экран, отображай другие, которые актуальны для нового сообщения.
Провел эксперимент, ещё раз скурил datasheet. Мои утверждения подтвердились. И в протеусе и в железе.
Код символа выводимого на экран хранится в DDRAM, а то как он выглядит хранится в CGROM и это эти данные нельзя изменить. Для нас доступны только 8 ячеек CGRAM. Содержимое экрана динамически обновляется. Как только мы заменим данные о виде символа в CGRAM он сразу изменит своё начертание на экране.
Поэтому нельзя отобразить ОДНОВРЕМЕННО более 8 своих символов. Очистил экран, отображай другие, которые актуальны для нового сообщения.
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
твоя неправда.
твои 8 символов хранятся в CGRAM. и к CGROM они никакого отношения не имеют.
и в CGRAM ты эти 8 символов можешь записывать сколько угодно раз.
более того, даже не обязательно использовать все 8 записываемых символов в CGRAM. вполне достаточно ОДНОГО программируемого символа.
и никто не мешает при динамическом обновлении экрана сначала записать ОДИН символ в CGRAM, потом его вывести, потом записать следующий, опять его вывести, и так до бесконечности...
твои 8 символов хранятся в CGRAM. и к CGROM они никакого отношения не имеют.
и в CGRAM ты эти 8 символов можешь записывать сколько угодно раз.
более того, даже не обязательно использовать все 8 записываемых символов в CGRAM. вполне достаточно ОДНОГО программируемого символа.
и никто не мешает при динамическом обновлении экрана сначала записать ОДИН символ в CGRAM, потом его вывести, потом записать следующий, опять его вывести, и так до бесконечности...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Возможно мы друг друга не понимаем, ходим вокруг одного дома, но каждый со своей стороны.
Давай так.
1 - Для кода символа 0 заполняем CGRAM (как он будет выглядеть, допустим' Б'). Выводим в позицию 0,0 код символ с кодом 0.
2 - Символ 'Б' на экране видим. ОК
3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
По твоему в позиции 0,0 будет отображена 'Б', а по моему 'Г'. Отображаемый символ поменялся, а мы ничего на экран не выводили.
Запись в ячейку для символа 8, заменяет данные для символа 0 и т.д.
Все это проверено в железе. Можешь проверить или поверь на слово.
Давай так.
1 - Для кода символа 0 заполняем CGRAM (как он будет выглядеть, допустим' Б'). Выводим в позицию 0,0 код символ с кодом 0.
2 - Символ 'Б' на экране видим. ОК
3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
По твоему в позиции 0,0 будет отображена 'Б', а по моему 'Г'. Отображаемый символ поменялся, а мы ничего на экран не выводили.
Запись в ячейку для символа 8, заменяет данные для символа 0 и т.д.
Все это проверено в железе. Можешь проверить или поверь на слово.
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
если ничего не выводим, то на экране остается "Б".alex_iag писал(а):3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
операция вывода перемещает коды символа из CGRAM в DDRAM. а без вывода символа "Г" в DDRAM остался символ "Б".
сам поверь или проверь...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
Только я прежде чем написать предыдущий пост набросал код и проверил его в железе. Результат проверки я там изложил. А там хочешь верь, а хочешь считай по своему.
Но мне кажется, что Вы неверно понимаете как отображаются символы на экране. В DDRAM только коды символов, а в CGRAM и CGROM то, как они выглядят на экране. Из CGRAM в DDRAM НИЧЕГО НЕ ПЕРЕНОСИТСЯ. CGRAM это просто знакогенератор, описание внешнего облика символа для соответствующего кода символа находящегося в DDRAM.
Если бы было так просто, то зачем выпускать с разными кодировками. Загнал свою и пользуйся. Ан нет, только то, что производитель залил, то и есть. Ну для утешения маленькая лазейка для своих нужд.
Ну чтож пусть каждый останется при своём мнении.
Но мне кажется, что Вы неверно понимаете как отображаются символы на экране. В DDRAM только коды символов, а в CGRAM и CGROM то, как они выглядят на экране. Из CGRAM в DDRAM НИЧЕГО НЕ ПЕРЕНОСИТСЯ. CGRAM это просто знакогенератор, описание внешнего облика символа для соответствующего кода символа находящегося в DDRAM.
Если бы было так просто, то зачем выпускать с разными кодировками. Загнал свою и пользуйся. Ан нет, только то, что производитель залил, то и есть. Ну для утешения маленькая лазейка для своих нужд.
Ну чтож пусть каждый останется при своём мнении.
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ЗУ для автомобильных аккумуляторов на Atmega8
согласен, я был не прав. давно с этим экраном не работал. забыл, что в DDRAM хранятся только номера символов, а не их полные коды.
прошу извинения.
но все равно все 19 русских букв одновременно не нужны. поэтому в другом состоянии экрана (устройства) можно сначала запрограммировать другие 8 букв, а потом их вывести.
я не знаю всех состояний экрана в твоем устройстве, поэтому я не знаю, сколько таких русских букв нужно тебе одновременно...
прошу извинения.
но все равно все 19 русских букв одновременно не нужны. поэтому в другом состоянии экрана (устройства) можно сначала запрограммировать другие 8 букв, а потом их вывести.
я не знаю всех состояний экрана в твоем устройстве, поэтому я не знаю, сколько таких русских букв нужно тебе одновременно...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.