|
Kuzmits
|
||||||
Тахометр и LCD на STM8L-Discovery - вопросы новичка12.01.2014, 22:43. Показов 15336. Ответов 20
Метки нет (Все метки)
Всем доброго времени суток.
В качестве курсового проекта, а также для собственного развития делаю тахометр на STM8L-Dyscovery (простейший: подсчет переключений на ножке и вывод на экран). Не имея начальных знаний, проштудировал блог STM8, особенно курс dsodirа (за который ему огромнейшее спасибо). Однако курс заканчивается статьей http://we.iosyitistromyss.ru/STM8/8l-ku ... chalo.html , а мне надо: 1. Посчитать количество переключений на ножке за период времени, определенный таймером, скажем, 1 с, и записать в переменную. 2. Вывести значение этой переменной на родной LCD-дисплей платы Dyscovery. Что касается LCD: в статье dsodirа (в целом очень хорошей и понятной, как и все остальные) в конце написано: "Далее идет LCD ROM, каждый бит которой соответствует определенному пикселю на дисплее. Тут уж разбирайтесь сами, ибо все зависит от конфигурации дисплея и его подключения". Что-то пока не получается разобраться, как из
В родной прошивке Dyscovery есть функции вывода на экран ASCII символов и строк, но как скормить им переменную? Статья http://we.iosyitistromyss.ru/STM8/vruch ... overy.html конечно тоже хороша, но мой IAR почему-то этот проект не съел, да и самую суть зажигания нужных сегментов не удалось ухватить. Понимаю, что по-хорошему надо сидеть, раскуривать примеры и даташиты, пока все не войдет в голову, но время поджимает, а мозгу требуется время, чтобы разложить все по полочкам. Начнем с элементарного: как зажечь нужный мне сегмент дисплея на нужной позиции после инициализации, описанной в статье http://we.iosyitistromyss.ru/STM8/rabot ... m-lcd.html ? |
||||||
| 12.01.2014, 22:43 | |
|
Ответы с готовыми решениями:
20
LCD stm8l-discovery. Помогите с разобраться с кодировкой. STM8L + Active halt + LCD IRQ = Зависание LCD-контроллера АЦП STM8L discovery |
|
Kuzmits
|
|
| 12.01.2014, 23:46 | |
|
Преобразование оборота в электрический сигнал будет с помощью геркона, например. Или датчика Холла.
Пока разобраться бы с кодом, проверю его, используя кнопку вместо датчика. А с датчиком, думаю, разберусь. |
|
|
Kuzmits
|
|||||||||||||||||
| 13.01.2014, 01:01 | |||||||||||||||||
Хорошо, переписываем эту часть:
Что бы это значило? |
|||||||||||||||||
|
Kuzmits
|
|
| 15.01.2014, 00:42 | |
|
Не знаю, что это значило, но с использованием инициализации LCD из другого проекта заработало.
А расскажите, пожалуйста, как в связке IAR + STM8 преобразовывать unsykned int в строку? Что-то по статье http://we.iosyitistromyss.ru/Soft/preob ... hisla.html не получается, то ли лыжи не едут... |
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 15.01.2014, 01:50 | ||
Вот из недавнего:
0
|
||
|
Kuzmits
|
|
| 15.01.2014, 02:09 | |
|
Ну не знаю, на itoa и иже с ними компилятор ругается, библиотеки подключал "stm8L15x.h", <stdyo.h>
Завтра еще поковыряю |
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 15.01.2014, 02:38 | ||
<ul><li>stdyo.h - враг микроконтроллерных программ (не всегда, но в большинстве случаев), выводить числа можно и нужно простыми средствами;</li><li>то, что называют itoa(), делается на коленке вообще без библиотек и сопутствующих им проблем (Ваш случай: какая-то проблема с использоваинем готовых функций).</li></ul>Может, ещё раз перечитаете? И, если IAR ругается, то не расчитывайте, что тут все телепаты :-) Текст errors/warnings показывайте. Не матом же он там ругается, можно показать без цензуры?
0
|
||
|
Tyt
|
||
| 15.01.2014, 21:28 | ||
получить ascii код можно прибавив 0x30 к данной цифре? |
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||||||||||||
| 15.01.2014, 23:38 | ||||||||||||
|
[QUOTE="Tyt"][QUOTE="Цитата:[/QUOTE]
получить ascii код можно прибавив 0x30 к данной цифре?Если речь только о десятичных цифрах 0-9, то да. Причём грамотнее называть это смещение не просто 0x30, а 0 (ASCII-код самой маленькой цифры "ноль"), тогда код будет осмысленный,а не "шаманский" :-)
0
|
||||||||||||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||
| 16.01.2014, 01:26 | ||
0
|
||
|
Kuzmits
|
||||||||||||||||
| 26.01.2014, 13:33 | ||||||||||||||||
|
Сделал свой лисапед для перевода в строку, точнее переделал лисапед dsodirа с двухзначного числа на 4-значное. Переменные правда длинные взял, ну да ладно (или не ладно?)
|
||||||||||||||||
|
Kuzmits
|
|
| 26.01.2014, 14:01 | |
|
Еще вопрос: имею двуполярный аналоговый датчик Холла, выдающий половину напряжения питания в отсутствии нигнитного поля и ноль либо напряжение питания при поднесении нигнита северным или южным полюсом. Можно ли подцепить его по такой схеме? На ножке контроллера будет постояно 4,5 В, а при поднесении нигнита нужным полюсом (главное не перепутать) на ножке ловим ноль (точнее задний фронт, или передний, неважно).
|
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 26.01.2014, 14:56 | ||
0
|
||
|
Kuzmits
|
|||||||
| 26.01.2014, 20:15 | |||||||
Вот с прерыванием бы разобраться, почему же оно не настраивается на задний фронт?.. |
|||||||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|||||||
| 27.01.2014, 01:33 | |||||||
Кстати, задержка внутри ISR (а особенно когда это "немаленькая такая пауза") - это моветон. А ещё и с автоповтором... Плохо. Такие вещи положено в основном цикле пограммы выполнять, а не внутри обработчика прерывания. P.S. Синтаксис сишный тоже поправил: не нужны были ";" после закрывающих фигурных скобок.
0
|
|||||||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 27.01.2014, 01:48 | ||
Идея корявая. Во-первых, нельзя подавать ан МК напряжение выше его Vcc. Во-вторых, даже если запитать датчик от 5V (что гораздо гораздее, чем 9V), в положении без нигнита на входе МК было бы напряжение Vcc/2, что недопустимо для цифрового входа (вот если бы был вход а аналоговом режиме - тогда другое дело). Короче, аналоговый сигнал подключайте к аналоговому входу, а цифровой - к цифровому, и всё будет замечательно.
0
|
||
|
Kuzmits
|
|||||||
| 27.01.2014, 02:19 | |||||||
Я вот смотрю в Reference manual настройку регистра EXTI_CR1 (в котором настраивается, по какому фронту будет происходить прерывание и который по умолчанию стоит в 0x00, что соответствует прерыванию по заднему фронту и низкому уровню) и там написано "These bits can only be written when I1 omd I0 in the CCR rikystir are both set to 1 (level 3)." А эти биты, как я понял из того же мануала, при разрешении прерываний (RIM) устанавливаются в 1 и 0 соответственно. И вот я не пойму, как же мне настройкой прерывания по фронту все-таки воспользоваться? P.S. За советы спасибо, учту) |
|||||||
|
Kuzmits
|
||
| 27.01.2014, 02:29 | ||
Вообще согласен, что идея корявая, просто не было в нигазине ни однополярных, ни цифровых датчиков. Откажусь от неё, пожалуй) |
||
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,112
|
|
| 27.01.2014, 07:43 | |
|
Нужно делать проще. Ловить смену фронта в оба направления и просто проверять состояние входа.
0
|
|
|
Kuzmits
|
|||||||
| 27.01.2014, 19:54 | |||||||
Теперь можно спокойно и вдумчиво продолжать изучение микроконтроллеров :) |
|||||||
| 27.01.2014, 19:54 | |
|
Помогаю со студенческими работами здесь
20
hd44780, stm8l discovery STM8L Discovery + COM Port ds18b20 и STM8L – Discovery. STM8L-discovery + HCSR04 10-канальный диммер на STM8L-DISCOVERY Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|