Прошивка для микроконтроллера
-
TpaHcryMaHucT
- Родился
- Сообщения: 3
- Зарегистрирован: Вт мар 12, 2013 07:44:11
Прошивка для микроконтроллера
Вообще суть вопроса, такова. Хочу собрать простенькую схему на основе МКРК(микроконтроллера). Предполагается два цифровых светодиодных дисплея на которые будет выводить число равное количеству замыкания цепи(своеобразный счетчик). Так вот как заставить МКРК считать и присвоить определенному кол-ву нажатий необходимую цифру,т.е. набор горящих светодиодов на дисплеи?
- Реклама
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Прошивка для микроконтроллера
Нужно просто объяснить контроллеру что делать, использовав для этого один из языков программирования - т.е. написать прошивку и зашить ее в контроллер.
-
TpaHcryMaHucT
- Родился
- Сообщения: 3
- Зарегистрирован: Вт мар 12, 2013 07:44:11
Re: Прошивка для микроконтроллера
это я понимаю, даже нашел системник с LPT портом и как подавать питание на пины тоже представляю, а вот как создать алгоритм это уже проблематично, хотелось бы какой нить подходящий пример увидеть. собираюсь шить через программу КодВижионАВР на языке СИ
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Прошивка для микроконтроллера
А системник с LPT портом зачем - шить???TpaHcryMaHucT писал(а):... даже нашел системник с LPT портом и как подавать питание на пины тоже представляю..
Что проблематичного в создании алгоритма??? Напишите для себя последовательность действий, какие вы хотите и всё. А вообще почитайте книгу http://sunduk.radiokot.ru/loadfile/?load_id=1347041434 или http://sunduk.radiokot.ru/loadfile/?load_id=1355600998TpaHcryMaHucT писал(а):...как создать алгоритм это уже проблематично..
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
TpaHcryMaHucT
- Родился
- Сообщения: 3
- Зарегистрирован: Вт мар 12, 2013 07:44:11
Re: Прошивка для микроконтроллера
ДаDr. Alex писал(а):А системник с LPT портом зачем - шить???TpaHcryMaHucT писал(а):... даже нашел системник с LPT портом и как подавать питание на пины тоже представляю..
Спб, почитаю
- Реклама
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Прошивка для микроконтроллера
Да незачто))))
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Прошивка для микроконтроллера
На самом деле тут видится множество подводных камней из-за недосказанности.
На самом-то деле, МК для такой задачи вовсе и не обязателен... но в любом случае это не такая уж и проблема. у МК есть аппаратный счетчик - его называют таймером, и один из режимов его работы - подсчет импульсов по внешнему сигналу. Тут делать то ничего не надо! Просто в цикле выводить значение этого счетчика на дисплей всего 2-3 строчками кода на С с использованием соответствующих библиотек. Надо только заранее определится с необходимой разрядностью счетчика, если в выбранном микроконтроллере счетчик-таймер с нужной разрядностью а если нет - дополнить программно. 8-битный может считать до 255, 16-битный до 65535 если не хватает - по переполнению счетчика прибавляем выделенной переменной +1. если счетчик 16 бит и переменная 16 бит - можно считать до 2^32. На более продвинутых контроллерах вроде STM32 счетчики можно выстраивать в цепочки и не прилагать каких-либо усилий.
Вторая проблема касается качества входных импульсов, необходимо ли устранять дребезг? какова скорость их следования, возможная длительность импульса?
Попробуй для начала не решать эту задачу, а взять какой-либо контроллер и просто посмотреть как он работает, а потом попробовать примерить на него эту задачу выискивая возможные проблемы в подходе. Можно счетчик ведь орагнизовать чисто программно - в цикле смотрим есть ли сигнал на выводе изменился ли он с предыдущего раза и прибавляем +1 если изменение произошло с 0 на 1. Но у такого подходя есть один жирный минус - если длительность импульса меньше периода опроса - есть вероятность ПРОПУСТИТЬ такой импульс. Можно для этого использовать прерывания - тогда в обработчике надо будет проверить "1" или "0" на входе и прибавить переменной "+1", прерывание не пропустит даже короткий импульс... но всеравно есть некоторое время между реакцией на прерывание и первым анализом вывода - за это время ситуация изменится и возникнет ошибка в подсчете, надо быть уверенным что за это время напряжение на входе не изменится.
На самом-то деле, МК для такой задачи вовсе и не обязателен... но в любом случае это не такая уж и проблема. у МК есть аппаратный счетчик - его называют таймером, и один из режимов его работы - подсчет импульсов по внешнему сигналу. Тут делать то ничего не надо! Просто в цикле выводить значение этого счетчика на дисплей всего 2-3 строчками кода на С с использованием соответствующих библиотек. Надо только заранее определится с необходимой разрядностью счетчика, если в выбранном микроконтроллере счетчик-таймер с нужной разрядностью а если нет - дополнить программно. 8-битный может считать до 255, 16-битный до 65535 если не хватает - по переполнению счетчика прибавляем выделенной переменной +1. если счетчик 16 бит и переменная 16 бит - можно считать до 2^32. На более продвинутых контроллерах вроде STM32 счетчики можно выстраивать в цепочки и не прилагать каких-либо усилий.
Вторая проблема касается качества входных импульсов, необходимо ли устранять дребезг? какова скорость их следования, возможная длительность импульса?
Попробуй для начала не решать эту задачу, а взять какой-либо контроллер и просто посмотреть как он работает, а потом попробовать примерить на него эту задачу выискивая возможные проблемы в подходе. Можно счетчик ведь орагнизовать чисто программно - в цикле смотрим есть ли сигнал на выводе изменился ли он с предыдущего раза и прибавляем +1 если изменение произошло с 0 на 1. Но у такого подходя есть один жирный минус - если длительность импульса меньше периода опроса - есть вероятность ПРОПУСТИТЬ такой импульс. Можно для этого использовать прерывания - тогда в обработчике надо будет проверить "1" или "0" на входе и прибавить переменной "+1", прерывание не пропустит даже короткий импульс... но всеравно есть некоторое время между реакцией на прерывание и первым анализом вывода - за это время ситуация изменится и возникнет ошибка в подсчете, надо быть уверенным что за это время напряжение на входе не изменится.
- Мастер665
- Потрогал лапой паяльник
- Сообщения: 383
- Зарегистрирован: Чт мар 14, 2013 11:12:58
- Откуда: 46rus
Re: Прошивка для микроконтроллера
Могу посоветовать начинающему поюзать среду алгоритм билдер
http://www.algrom.net/russian.html
(она беплатная),там не надо на первых порах ничего писать,достаточно создать сам алгоритм,в сети к ней есть куча макросов.Или поюзать платную среду флоукод.Потом с них легко перейдёте например в авр студию .Как уже сказали импульсы с порта считать ,находить в массиве вывода на индикатор соответствующую кобинацию бит и выводить их в порт .
http://www.algrom.net/russian.html
(она беплатная),там не надо на первых порах ничего писать,достаточно создать сам алгоритм,в сети к ней есть куча макросов.Или поюзать платную среду флоукод.Потом с них легко перейдёте например в авр студию .Как уже сказали импульсы с порта считать ,находить в массиве вывода на индикатор соответствующую кобинацию бит и выводить их в порт .
Не тужи, дорогой, и не ахай,
Жизнь держи, как коня, за
узду,
Посылай всех и каждого на
х*й,
Чтоб тебя не послали в 3,14зду!(Есенин)
Жизнь держи, как коня, за
узду,
Посылай всех и каждого на
х*й,
Чтоб тебя не послали в 3,14зду!(Есенин)


