Например TDA7294

Форум РадиоКот • Просмотр темы - ATmega8+1602(CVAVR)-некорректное отображение первой строки
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июл 10, 2025 15:05:32

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ATmega8+1602(CVAVR)-некорректное отображение первой строки
СообщениеДобавлено: Вт мар 28, 2017 12:16:32 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 70
Зарегистрирован: Сб мар 05, 2011 09:19:01
Сообщений: 264
Рейтинг сообщения: 0
В недоумении.
Простой проектик (CVAVR 3/12): значение АЦП отображается в первой строке (16 знакомест).
По этой величине вычисляется другая и отображается во второй строке (16 знакомест).
Зацикливаемся. При изменении напряжения на входе АЦП - на LCD меняются показания ТОЛЬКО во второй строке!
Значение в первой строке стоит, как вкопанное. Если сделать сброс, оно обновится.
Работает так, как в Протеусе, так и в железе. Сто раз лепил такое не задумываясь, - и никаких проблем...
Насоветуйте, может, чего...
Под спойлером фрагмент кода, во вложении - проект CVAVR и Протеус

Спойлер...
#include <alcd.h>

// Declare your global variables here
unsigned int v_in, dlit, dlit_max = 1000;
char string_out[16];

...


while (1)
{
//lcd_clear(); // без этого сброса отображение работает некорректно!
v_in=get_adc();

// вывести напряжение в 1 строке
lcd_gotoxy(0,0);
sprintf(string_out," input: %1u.%02u V ", v_in/100, (v_in-(v_in/100)*100));
lcd_puts(string_out);

// вычислить dlit по входному напряжению
dlit = (unsigned long int)dlit_max*v_in/500;

// вывести длительность во 2 строке
lcd_gotoxy(0,1);
sprintf(string_out," impuls: %4u us", dlit);
lcd_puts(string_out);

// выдать импульс на выход
out_impuls(dlit);

// разрядить емкость
RES_OUT = 1;
delay_us(10);
RES_OUT = 0;

delay_us(200);

}


Вложения:
Комментарий к файлу: проекты CVAVR и Протеус
CVAVR & Proteus.zip [136.58 KiB]
Скачиваний: 158
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Вт мар 28, 2017 12:45:03 
Родился

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Вт мар 28, 2017 12:32:15
Сообщений: 16
Рейтинг сообщения: 0
А с другим дисплеем то же самое? Бывает китайские идут с глюками


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Вт мар 28, 2017 13:06:49 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7013
Откуда: Ижевск
Рейтинг сообщения: 0
...

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 02:53:30 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 70
Зарегистрирован: Сб мар 05, 2011 09:19:01
Сообщений: 264
Рейтинг сообщения: 0
Hardegen писал(а):
А с другим дисплеем то же самое?...

Дык в Протеусе так же криво отображается.
Так что вряд ли в дисплее дело. Ну попробовать-то можно.
Может, с настройками проекта в CVAVR что-то не так?
А то код я всяко уже вертел и - сплошной неадекват.
Например, если выводить одну строку дважды по gotoxy(0,0) - она и во второй строке отобразится!
И обе будут правильно ослеживать - показывать!
Я и в string_out[32] обе объединял с одним выводом, - тоже криво, первая строка так же "замерзает" - не меняется.
Весна, что ли действует? :(


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 07:03:44 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 161
Зарегистрирован: Чт апр 03, 2014 23:16:55
Сообщений: 963
Откуда: Россия
Рейтинг сообщения: 2
_abk_ писал(а):
Весна, что ли действует? :(
Несомненно! Но и задумываться надо хоть раз из ста :))
Ошибка здесь:
Код:
char string_out[16]
"просто добавь воды" и магия случится:
Код:
char string_out[17]
Это хорошо, что Вы весь проект показали! :idea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 07:51:56 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18401
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Rtmip писал(а):
char string_out[16]
сам с подозрением на эту строчку смотрел, но в моей практике подобные ошибки приводили не к "замерзанию" строки, а к выводу странного мусора на ЖКИ... потому и смолчал.
а проект целиком смотреть не стал, ибо CVAVR не уважаю...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 08:07:09 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 70
Зарегистрирован: Сб мар 05, 2011 09:19:01
Сообщений: 264
Рейтинг сообщения: 0
Rtmip писал(а):
... Но и задумываться надо хоть раз из ста :)) ...
Дык чо думать, - трясти же надо! :))
Rtmip писал(а):
... и магия случится...

Спасибо Вам большое! Ну и раскройте уж секрет фокуса, а?
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 08:18:39 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18401
Откуда: Новочеркасск
Рейтинг сообщения: 2
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
_abk_ писал(а):
Ну и раскройте уж секрет фокуса, а?
можно я, можно я?!

массив-строку вы сделали из 16 позиций, как размер дисплея, так? а терминирующий ноль, обязательный для строк, куда писать? вот и начинаются чудеса на виражах...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 08:30:10 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 70
Зарегистрирован: Сб мар 05, 2011 09:19:01
Сообщений: 264
Рейтинг сообщения: 0
ARV писал(а):
...можно я, можно я?!...

Можно! :)))
Ну тады и Вам большое спасибо!
Что-то это знание меня стороной обошло. Как только не наступил ни разу на эти грабли прежде, - вот где магия!
Пойду-ка покопаюсь в старых проектах, прям любопытно очень...
Спасибо всем, кто читал и думал!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 08:49:00 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18401
Откуда: Новочеркасск
Рейтинг сообщения: 2
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
У вас в sprintf используется формат с "фиксированным" числом разрядов и, как я понял, вы пробелами догоняете длину формата до 16 позиций. Но не забывайте, что sprintf плюет на ограничение числа разрядов, если выводимое число не умещается в заданное количество позиций! Если у вас перед точкой должно выводиться числ 10, оно и займет 2 позиции, хотя в формате выделена одна... и в этом случае итоговая длина строки будет не 16, а 17 позиций, что уже не поместится в буфер. а еще и нолик в конце...

со строками в Си надо очень осторожным быть...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+1602(CVAVR)-некорректное отображение первой стро
СообщениеДобавлено: Ср мар 29, 2017 10:02:52 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 70
Зарегистрирован: Сб мар 05, 2011 09:19:01
Сообщений: 264
Рейтинг сообщения: 0
ARV писал(а):
...пробелами догоняете длину формата до 16 позиций. Но не забывайте, что sprintf плюет на ограничение числа разрядов, если ...

Спасибо, это я помню. Заполняю 16 позиций здесь, чтобы, не очищая весь LCD, стереть предыдущий текст. По размерности здесь все прогнозируемо, пример очень простой.
Оттого траблы совсем не ожидались. А нужен был источник условно одиночного импульса регулируемой длительности для тестирования другой схемы, что успешно проделал и с "кривой" индикацией. Собственно, 2-я строка и нужна была только. Индикацию делал для наглядности, так-то она нафиг не нужна.
Нашел в литературе про 0х00 - необходимый символ конца строки. Не попадал на это до сих пор, так как обычно использовал строковые переменные большей, чем 16 длины для использования их в программе в разных целях, вот и хватало всегда для LCD.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y