Доброго времени Хм.. тоже проблема с SIM800. Только немного иная. Контроллер Atmega164PA общается c SIM800C по аппаратному UART (2-ому). Передача от контроллера к модулю SIM800C происходит в штатном режиме, модуль отвечает, но сообщения приходят битые или вовсе не приходят. Частота atmega 9216000, скорость передачи 9600. Подключался USB-TTL напрямую к выводу SIM800C - сообщения приходят без ошибок. Не могу разобраться в чем дело. Согласование уровней реализовал как в datasheet на SIM800C (см. картинку ниже), использовал транзисторы BC817. Может в них проблема? Хотя осциллографом смотрел до и после - все идеально.
PS: сейчас набрел на интересную функцию "Config Serialin = Buffered", попробую с ней вечером поэкспериментировать.
Приветствую! Правлю код на BASCOM-AVR, нужно в программу часов дописать подпрограмму перебора цифр, т.е. в конце каждой минуты должен быть быстрый перебор от 0 до 9, в течении 3 секунд, вызов подпрограммы я реализовал, как реализовать сам перебор не могу придумать, думал через Waitms, но Waitms останавливает всю программу как я понял.
Приветствую! Правлю код на BASCOM-AVR, нужно в программу часов дописать подпрограмму перебора цифр, т.е. в конце каждой минуты должен быть быстрый перебор от 0 до 9, в течении 3 секунд, вызов подпрограммы я реализовал, как реализовать сам перебор не могу придумать, думал через Waitms, но Waitms останавливает всю программу как я понял.
через прерывание по таймеру1 Не останавливают.Часы реального времени все равно ж работают.Или у вас без них?
SAU, Динамическая индикация замирает и ничего не отображается. Часовая микросхема отдельно работает. Можно пример кода?
Делал паялку с люминисцентными индикаторами.Там как раз динамическая индикация. В общем, в главном цикле ,при проходе выставляется 1 цифра и счетчик цифр увеличивается на единицу. По достижении последней цифры индикатора,счетчик вновь выставляется в 1. Если будет неярко- можно поиграться с задержкой после зажигания цифры. В любом случае суммарная задержка у вас будет меньше секунды Во втором архиве - часы с двумя индикаторами.Вначале выводятся часы, через 3 секунды минуты.Потом повторяются. Есть еще новогодняя приблуда на лампах.Там каждый столбец по очереди перебирается от 0 до девятки, потом пару секунд текущий год, потом вновь перебираются и выводится будущий год.Затем все повторяется.Если интересно - выложу
Здравствуйте. Кто нибудь может скомпилировать файл bas в hеx? А то при нажатие на кнопку компиляция в программе bascom-avr всё равно создаётся файл bas. Или кто может подскажет как скомпилировать.
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт мар 02, 2023 20:51:31
Встал на лапы
Зарегистрирован: Вс мар 27, 2011 07:48:48 Сообщений: 127 Откуда: г. Екатеринбург
Рейтинг сообщения:0
Я не понял идею. Таймер мне нужен для отсчета секунды, светик - индикатор работы. В первом-то примере все работает нормально. Почему не работает во втором?
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт мар 10, 2023 18:01:09
Встал на лапы
Зарегистрирован: Вс мар 27, 2011 07:48:48 Сообщений: 127 Откуда: г. Екатеринбург
Рейтинг сообщения:2
Да все оказалось просто. На схеме подписал неправильно порты у МК, соответственно не те порты были указаны в коде. В общем, получилась опечатка, которую долго не мог обнаружить. А сама идея и код правильные.
Всем привет ! Есть несколько штук ATmega644-20PU(в smd корпусе), задумал себе сделать линейный блок питания, прикрутил от сотика экран, ЦАП и далее усилитель на биполярных транзюках, а и диф.усилок задействовал на шунт. Проблема появилась при наладке АЦП ! подключаю напряжение стабильное 3 вольта, смотрю на показания АЦП вывожу коэффициент, далее подаю уже 12 вольт и этот коэффициент уже не подходит, напруга получается не 12 вольт если умножить на коэффициент а аж 12.6, подымаю напряжение до 16 вольт и уже если умножить на этот коэффициент показания АЦП то выходит 16.8 вольт. Думаю ладно, подаю напругу 12 вольт, смотрю на АЦП нахожу новый коэффициент, подаю 16 вольт и умножаю показания АЦП на новый коэффициент и снова врет на 0.6 вольт, опускаю напряжение до трех вольт, умножаю показания АЦП на этот коэффициент и тут уже напряжение не завышено а занижено на 0.8 вольт ! В общем нет линейности, плату пересмотрел несколько раз, ставил новый аналогичный чип все тоже самое, АЦП использовать пытался в режимах Free и Single(читал АЦП средствами вернее командами самого басика через GETADC, так и через прерывания со вставками ASM), менял опорное, 1.1, 2.56, 5 вольт все тоже самое с АЦП творится ! Работаю с разными мегами(8,16,32,328) таких проблем нет, есть нелинейность но она постоянна на протяжении от 0-1023, а тут капец. Плюнул, урезал в программе функционал и заменил мегу 644-ю на 16-ю, и что вы думаете АЦП ведет себя как положено. Хочу разобратся что может быть с АЦП 644меги, не выкидывать-же. Курил датащит на эту микру, все тоже самое(ну или почти) что и про 16,32 мегу. Кто может помочь или возможно стыкался с подобным, подсобите по возможности ! Заранее благодарю.
не очень понятно. А как fuses установлены? Кварц какой? Конденсаторы на его линиях есть? /Reset к +Питания подтянули?
А вообще, всё, что я покупал на Али последние 2 года - как "русская рулетка". Оптосимисторы три партии - на выброс. МК atmega8a - у половины сторожевой таймер работает не на своей частоте: ставлю 2048ms, а срабатывает на 1300-1500ms. И так далее... Включая банальные светодиоды: выводы перепутаны!
rojnov, как рекомендация: создайте простую программу, для простого действия, не скопировав ее откуда-то, где можно будет в той или иной степени проверить работоспособность МК. Запишите hex известным способом, програмa. Например blink на все пинах и подключите светодиод + резистор к GND. Потом делайте выводы об имеющихся МК. В противном случае использование внешнего кода имеет много неизвестных.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения