0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 4
|
||||||
1 | ||||||
Частотомер на ATmega12815.05.2020, 01:02. Показов 3657. Ответов 25
Здравствуйте, не могу разобраться в чем проблема. Написан код для того, что бы на выход PB4 подавался ШИМ сигнал, а с входа PD6 считывалась частота и всё это выводилось на ЖКИ. При подключении в протеусе у соответствующих портов мигают идикаторы, то есть сигнал приходит, но на ЖКИ ничего не выводится
0
|
15.05.2020, 01:02 | |
Ответы с готовыми решениями:
25
Частотомер Частотомер. Частотомер Частотомер |
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,076
|
|
17.05.2020, 19:18 | 2 |
А схема считаете не нужна?
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
|
17.05.2020, 20:55 | 3 |
Какой ЖКИ-то вообще?
Добавлено через 1 час 16 минут В Proteus "LM044L"?
0
|
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 4
|
|
18.05.2020, 00:29 [ТС] | 4 |
В Proteus "LM016L"
0
|
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 4
|
|
18.05.2020, 00:31 [ТС] | 5 |
Вот схема
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
|||||||||||
18.05.2020, 12:18 | 6 | ||||||||||
Исправил некоторые косячки в программе
Кликните здесь для просмотра всего текста
Это код выводит просто символ C в дисплей. Код приспособлен под CodeVisionAVR(CVAVR). Добавлено через 7 минут И посмотрите там в Протеусе проводник на левом выводе конденсатора C1, я его переделал. Добавлено через 13 минут cfire4, а Вас код противоречит сам себе. Вот эта команда не выполнится
Вероятно требуется шина данных 8-бит. Смешали 2 сложные темы: 1) Дисплей HD44780 и 2) частотомер. Это 2 итак большие темы, а Вы их смешали, да еще и не понимаете ничего. Нужна шина данных 8-бит, как Вы 4-битной шиной собрались управлять дисплеем? Частотомер - это отдельная тема и большая я бы сказал. Ей может быть посвящена отдельная статья.
0
|
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 4
|
|
18.05.2020, 13:35 [ТС] | 7 |
Просто знаний мало, много чего непонятно в связи, с тем, что нормальных занятий нет, а работы нужно выполнить
Можно поподробнее почему не получится управлять дисплее с помощью 4-х битной шины, в прошлой работе необходимо было выводить текст на жки, менять его местами и стирать и всё получалось. Так же одногруппники в похожих работах тоже используют 4-х битные
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
||||||||||||||||
18.05.2020, 17:18 | 8 | |||||||||||||||
Потому что константа LCD_FUNCTION = 0x20 вылазит слева при таком фильтре & 0x0F и вообще сотрется после этой операции.
Как же Вы упихнете такое число в 8-битный регистр OCR бедного Timer0
Добавлено через 3 часа 17 минут cfire4, вот правильная настройка Таймера0, у Вас неправильно он настроен
Добавлено через 1 минуту И вообще, про дисплей, надо делать шину данных 8-бит и еще 2 бита на управление - сигналы RS и E. Добавлено через 11 минут Вот нарегулировал частоту 1000(Гц). Настройка Таймера0
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
||||||
18.05.2020, 21:26 | 9 | |||||
В общем, при объединении этих двух вещей - частотомера и ЖК дисплея нужно понимать следующее: подсчет частоты входящего сигнала осуществляется через прерывания.
1 тезис: При появлении или при пропадании сигнала на измерительном входе присходит прерывание (останавливаются все работающие функции и начинается запуск подсчета значений таймера для вычисления частоты). 2 тезис: Для вывода информации на жки(хоть в 4х пров. хоть в 8проводном режиме) контроллер тратит определенное (конкретное) время. Вывод: если прерывание по измерительному входу вызовиться в момент передачи информации на дисплей, время передачи сигналов на ЖКИ изменятся и это могжет вызвать зависание ЖК дисплея.(и на практике часто вызывает). Чтобы исключить такое необходимо: 1. 1 секунду измеряешь частоту, потом отключаешь прерывание по входу и 0,1с обновляешь дисплей и так по циклу: меришь, останавливаешь измерения, выводишь и заново запускаешь измерения. 2. Для понимания процесса вывода на дисплей можешь посмотреть урок на сайте
там очень хорошо и простыми словами написана как работает библиотека для работы с LCD.
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
|
19.05.2020, 09:55 | 10 |
Здравствуйте. А как там задавать в этом дисплее 4-битный и 8-битный режим? Я вот в 8-битный режим попробовал перегнать, что-то не получается ничего. Там 4-битный режим пишут, что надо 0x0011 послать 2 раза, чтобы заработал 4-битный режим. Может и для 8-битного режима что-нибудь нужно вначале?
Марка дисплея HD44780, в Proteuse - LM016L.
0
|
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,696
|
|
19.05.2020, 11:12 | 11 |
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
|
19.05.2020, 12:10 | 12 |
Да я уже запутался совсем. У автора такой код беспонтовый что это вообще.
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
||||||
19.05.2020, 18:47 | 13 | |||||
Вот скидываю свою библиотеку для работы с LCD в 4проводном режиме.
rs подключаешь на PORTB.0 e подключаешь на PORTB.1 4 ножки дисплея подключаешь к ножкам PORTB.4 - PORTB.7
Даже в моей библиотеке каждая буква отправляется за 4мс. Если слово будешь отправлять 4мс умножай на количество букв в слове. Встроенная библиотека примерно так же работает- тратит примерно столько же времени.
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
|
23.05.2020, 17:46 | 14 |
Попробовал код - ну не работает опять. Может у меня с Протеусом глюки? Пустой экран(LCD) и все.
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
||||||
24.05.2020, 09:07 | 15 | |||||
Вот тебе рабочая часть, отнасящаяся только к работе с дисплеем:
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
|
24.05.2020, 09:08 | 16 |
И вот само подключение к дисплею в протеусе:
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
|||||||||||
24.05.2020, 09:19 | 17 | ||||||||||
Теперь для измерения времени отправки каждого слова и буквы добавляю такую функцию:
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
|
24.05.2020, 09:22 | 18 |
И по картинке видна длительность передачи каждого слова.
И для того, чтобы дисплей не зависал, желательно перед отправкой на него значений надо остановить прерывание по измерительному входу. И тогда все получиться.
0
|
2127 / 1209 / 504
Регистрация: 11.10.2018
Сообщений: 6,100
|
|
24.05.2020, 11:39 | 19 |
Осциллограф это одно, но Digital Analyser - это другое. Крутой инструмент, правда пока допетрил, как им пользоваться...
Ну в общем я по нему раньше смотрел и вроде правильно микроконтроллер передает сигналы, но все-равно ничего не отображается.
0
|
125 / 43 / 12
Регистрация: 23.03.2018
Сообщений: 169
|
|
24.05.2020, 12:04 | 20 |
Говорю же тебе: у меня в программе других строк нет. Попробуй эти же строки применить. Эти строки и проект протеуса это я собрал и проверил сегодня утром - должен работать.
Или у тебя в протеусе частота микроконтроллера не та установлена
0
|
24.05.2020, 12:04 | |
24.05.2020, 12:04 | |
Помогаю со студенческими работами здесь
20
частотомер Частотомер на Tiny12L Сделал частотомер частотомер на atmega8 частотомер на at89c51 Цифровой частотомер Частотомер и atmega16 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |