реклама на сайте
подробности

 
 
> Нужна помощь Atmega8+HD44780 40x2 +клавиатура со светодиодами.
Pacifist
сообщение Dec 28 2014, 06:36
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 28-12-14
Пользователь №: 84 331



В общем нужна помощь знающих. Имеется символьный дисплей LM40x21a на HD44780 2строки 40 знакомест. Клавиатура из 9 кнопок и 8 светодиодов. Ну ещё пьезо-пищалка. Всем этим рулит Atmega8. Устройство предполагается использовать как выносную панель управления. Мозгов особых от неё не нужно, только принимать команды, зажигать нужные диоды, выводить информацию на дисплей и передавать коды нажатых кнопок. Задача не архи сложная. И всё это уже нормально работает в протусе, однако в железе не желает. А происходит вот что, при подаче команды на включение светодиода она выполняется, диод загорается, но дальше устройство зависает и не любые команды из терминала не реагирует. То же самое и с командами вывода на экран, только тут могут сработать несколько команд и потом опять контроллер уходит в себя и не возвращается. Однако на нажатия кнопок он при этом реагирует исправно и посылает коды кнопок в терминал.
Смущает то что всё в принципе срабатывает как минимум один раз. А в протусе так вообще всё идёт на ура! Как такое возможно? По железу всё проверено на 100 рядов.
Схема, и исходник на CVAVR прилагаются.
Прикрепленные файлы
Прикрепленный файл  ______WinRAR.rar ( 29.08 килобайт ) Кол-во скачиваний: 25
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Pacifist
сообщение Dec 29 2014, 20:05
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 28-12-14
Пользователь №: 84 331



Цитата(demiurg1978 @ Dec 29 2014, 20:50) *
Несколько правил при написании программ:
Никаких магических чисел. Вменяемые названия переменных, битов, портов ввода-вывода.
Модульность программ. Разбивайте программы на модули. Клавиатура, дисплей, UART - все это модули. В дальнейшем вы проекты будете собирать как конструктор из кубиков-программных модулей.
Автоматное программирование.
К примеру, опрос клавиатуры можно (и нужно) сделать на КА (конечный автомат).
Цикл статей Татарчевского.
Прикрепил архив, там посмотрите примеры.
Удачи.


Спасибо! Учту рекомендации. Я и так стараюсь примерно так всё и делать, но это не просто. Опыта у меня пока маловато. Примеры пока изучаю.
Цитата(Dmitry Dubrovenko @ Dec 29 2014, 23:42) *
Выдвину версию, что где-то напортачили с "чтение-модификация-запись".

Я примерно так и думаю, но где конкретно пока загадка.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Dec 30 2014, 08:37
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(Pacifist @ Dec 30 2014, 02:05) *
Спасибо! Учту рекомендации. Я и так стараюсь примерно так всё и делать, но это не просто. Опыта у меня пока маловато. Примеры пока изучаю.

Я примерно так и думаю, но где конкретно пока загадка.

Примеры я вам дал. Иногда есть смысл переосмыслить проект и переписать программу. С учетом вышеизложенных советов... Согласен, сделанного жалко, а что поделать, если не работает? Вам уже посоветовали, разбейте программу на кусочки-модули. Отладили кусочек-модуль, следующий кусочек, так у вас программа и соберется. И ЗАБУДЬТЕ ПРО ПРОТЕУС!!! Симулятор AVR-Studio, собранная железка (пусть даже на макетке), если требуется, программные закладки (светодиодом помигать в нужный момент), осциллограф и ПК (для приема-передачи по UART, раз он у вас есть в проекте). Вот ваши инструменты. А то выросло младое поколение, блин, паяльника в руках не держали, в протеусе все гоняют, а потом плачутся, почему не работает...

Сообщение отредактировал demiurg1978 - Dec 30 2014, 13:31
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pacifist   Нужна помощь Atmega8+HD44780 40x2 +клавиатура со светодиодами.   Dec 28 2014, 06:36
- - kovigor   Цитата(Pacifist @ Dec 28 2014, 09:36) Как...   Dec 28 2014, 11:48
- - Pacifist   Fuse биту установлены правильно, более того устрой...   Dec 28 2014, 12:52
|- - kovigor   Цитата(Pacifist @ Dec 28 2014, 15:52) уст...   Dec 28 2014, 19:46
|- - demiurg1978   Несколько правил при написании программ: Никаких м...   Dec 29 2014, 14:50
- - Dmitry Dubrovenko   Цитата(Pacifist @ Dec 28 2014, 09:36) в п...   Dec 29 2014, 17:42
- - Pacifist   Видимо никто не пытался вникнуть в то что я тут вы...   Dec 30 2014, 13:54
|- - kovigor   Цитата(Pacifist @ Dec 30 2014, 17:54) И ч...   Dec 30 2014, 16:00
- - Marian   Какой смысл выкладывать файл протеуса, если нет др...   Dec 31 2014, 13:27
- - Marian   ЦитатаКакой смысл выкладывать файл протеуса, если ...   Jan 1 2015, 19:46
- - Pacifist   Цитата(Marian @ Dec 31 2014, 19:27) Какой...   Jan 7 2015, 06:34
|- - demiurg1978   Еще раз, забудьте о протеусе. И плевать, что в нем...   Jan 7 2015, 08:23
- - Pacifist   А вот и нет, не накосячил. Нашёл в чём беда. А дел...   Jan 7 2015, 08:44
- - demiurg1978   "Я его не брошу, потому что он хороший"....   Jan 7 2015, 08:54


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016