Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Мусор на дисплее ATMega16 с DS18B20


Мусор на дисплее ATMega16 с DS18B20

Сообщений 1 страница 22 из 22

1

Столкнулся с такой бякой...
Имеем такие подключения:
PORTA ввод                                   вывод
0         АЦП-1
1         АЦП-2
2                                              Включение устр-ва 1
3                                              Включение устр-ва 2
4        Датчик температуры №1
5        Датчик температуры №2
6        Датчик температуры №3
7        Датчик температуры №4

PORTB вывод 1                           вывод 2
0        E дисплея
1        RS дисплея                   "0"
2   
3   
4        D4 дисплея
5        D5 дисплея
6        D6 дисплея                   Направление приводов
7        D7 дисплея                   Направление приводов

Датчики опрашиваются поочередно по давно облизаным способом.  :)
С дисплеем 16х2 тоже уже обыденно...
Программа крутится без прерываний, все обрабатывается в цикле по событиям.

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

Пин 1 порта В при определении направления принудительно ставится в "0".
Пин 0 порта В не трогаю, тогда гаснет дисплей.

Остается порт А...
Кроме датчиков температуры на нем еще две линии АЦП, инициируются при необходимости, когда работают привода.
Но в этом случае 1wire на других пинах неактивен...
Где-то в глубине остатков мозга понимаю, что самостоятельно назначенные параметры для каждого пина порта не должны влиять на остальные пины, а уж тем более порты...

Глюк симуляции ?
Тогда бы это не было постоянно...
Процессор больше 38% не грузится, лог "зеленый"...
Включение/выключение пинов отслежено уже неоднократно, ввиду логики работы программы - это первостепенно, иначе "буквы на цифры налезут"...

Кто что может сказать про это..?  :huh:

0

2

Nord написал(а):

Кто что может сказать про это..?

А где исходник + симуляция?

0

3

sasha_1973 написал(а):

Nord написал(а):Кто что может сказать про это..?
            А где исходник + симуляция?

Сейчас проверил - симуляция нормальная...
Похоже на "проделки" Протеуса... ;)

Здесь - http://www.fayloobmennik.net/5767099

0

4

Nord написал(а):

Похоже на "проделки" Протеуса...

Распространённая ошибка, аналоговая подтяжка!

Смените на цифровую, и всё заработает, по крайней мере то, что касается Протеуса.

0

5

Nord написал(а):

Сразу после запуска симуляции в Протеусе все нормально, градусы прыгают, как положено, но стоит двинуть любым приводом - на дисплее появляются "крокозябры"

Протеус симулирует не только работу схемы, но и помехи от приводов :huh: которые приводят к искажению текста на индикаторе. :D

0

6

Пётр написал(а):

Протеус симулирует не только работу схемы, но и помехи от приводов  которые приводят к искажению текста на индикаторе.

А если человек поверит? Разве так можно шутить!

+1

7

По смайлику в конце видно что это шутка.

0

8

АЦП совсем не обязательно настраивать много раз, --"достаточно одной таблэткы", это-же касается и запуска.

0

9

Пётр написал(а):

По смайлику в конце видно


Они могут не отображаться!

0

10

Nord написал(а):

Nord

Почитайте, если есть желание - здесь и здесь

0

11

sasha_1973 написал(а):

Пётр написал(а):Протеус симулирует не только работу схемы, но и помехи от приводов  которые приводят к искажению текста на индикаторе.
            А если человек поверит? Разве так можно шутить!

А вот если бы Протеус симулировал хотелки моего кота - вообще бы цены этой проге не было бы...  :crazyfun:

0

12

sasha_1973 написал(а):

АЦП совсем не обязательно настраивать много раз, --"достаточно одной таблэткы", это-же касается и запуска.

Так и было, все порты настраивались один раз вначале...
Данный вариант настройки появился уже в ходе поиска выхода...

0

13

sasha_1973 написал(а):

Nord написал(а):Nord
            Почитайте, если есть желание - здесь и здесь

Читал уже...  :huh:
ОК, почитаю повнимательнее.

0

14

Nord написал(а):

Читал уже...


Что-то не очень похоже, в прочем, дело хозяйское.

Nord написал(а):

Данный вариант настройки появился уже в ходе поиска выхода...


Странный подход, а не проще было, сразу спросить.

0

15

sasha_1973 написал(а):

Nord написал(а):Читал уже...
            Что-то не очень похоже, в прочем, дело хозяйское.

Ваши исследования (без обид) очень сложно разбирать...
Авторский подход к написанию, так сказать... ;)
Информации полезной в них море (за что респект), но выколупывать ее оттуда тяжеловато...

sasha_1973 написал(а):

Nord написал(а):Данный вариант настройки появился уже в ходе поиска выхода...
            Странный подход, а не проще было, сразу спросить.

Да как-бы в программировании не первый день и даже год... ;)
Еще со "Спектрумом" КР580ВВ55А выгибал, как хотел... ;)
Тут немного другое...
"Не сразу Москва строилась..." (с) не мое

0

16

Nord написал(а):

но выколупывать ее оттуда тяжеловато...

а именно?

0

17

sasha_1973 написал(а):

Nord написал(а):но выколупывать ее оттуда тяжеловато...
            а именно?

Хотите рецензию ? ;)

0

18

Nord написал(а):

Хотите рецензию ?


Хочу

0

19

sasha_1973 написал(а):

Nord написал(а):Хотите рецензию ?
            Хочу

Можно не сейчас ?
Увлечен проектом... ;)

0

20

Nord написал(а):

Можно не сейчас ?
Увлечен проектом...

Да не вопрос.

0

21

Добрался, наконец, до показометра...
Отрубил программно все, оставил только постоянный опрос датчиков...
И в "моем" варианте, и в предложенном sasha_1973 - все чики-пуки...
Датчики читаются, значения правильные.
http://s2.uploads.ru/t/p1Rmw.jpg
Отсюда делаю вывод, что использование одного и того же порта для работы дисплея и управления периферией - нежелательно, в память дисплея летит "мусор", который и ведет к появлению "крокозябр"...
Насильный "0" на ноге дисплея RS не помогает...

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

Отредактировано Nord (2016-02-12 21:54:29)

0

22

Интересная картинка получается...
В Протеусе использую "подменную" DLL для MT-16S2D (для корректности кириллицы).

Определения обычные:
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.1
Cursor Off, Noblink

Все нормально работает:
http://s7.uploads.ru/t/NRikL.jpg

Стоит добавить эти строки:
InitLcd
Waitms 50

Получаем непонятный курсор, да еще сдвоенный какой-то:
http://s2.uploads.ru/t/0ImWY.jpg

В принципе, все работает и без инициализации дисплея, но интересна природа бяки...  :question:
Склонен грешить на DLL-ку...
Никто не сталкивался ?

Отредактировано Nord (2016-03-09 18:44:59)

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Мусор на дисплее ATMega16 с DS18B20