Страница 1 из 1

Как объединить две программы в одну

СообщениеДобавлено: 01 дек 2017, 17:41
uuu000
Как объединить две программы в одну?Например , зажигание лед кнопкой и регулируемый кнопками генератор.

Re: Как объединить две программы в одну

СообщениеДобавлено: 02 дек 2017, 09:44
Прохожий
Привет! Правильно, что с Горизонта сюда пришёл :) По вопросу. Всё, что и как не делай в контроллере, в любом случае, сделается последовательно :) Если хочешь в чём то приоритет, делай на прерываниях (например, кнопку можно сделать в основном цикле, а можно на прерывании, тогда нажав кнопку на прерывании будет использоваться алгоритм который к ней привязан). Но в момент обработки этого алгоритма всё остальное будет стоять :) Поэтому разработчики, в отличие от любителей, во всю пользуются периферийными микросхемами. Например драйвер 7-ми сегментного индикатора MAX7219 (7221). данные в него закинул и не паришься, что контроллер на каких либо приоритетных задачах может "притормозить". То же самое с часами точного времени. Взял микросхему и дёргаешь из неё готовые данные, что бы обработать и на дисплей засандалить, контроллер резетнётся, а никто и не заметит :)на одном контроллере всё равно точные часы не сделать :)Или генерирование сигналов, то-же самое...да и в общем много чего такого :)
Очень рекомендую видео-курсы:
https://www.youtube.com/channel/UC2Oa6O ... Qqq88xDmeQ
https://www.youtube.com/watch?v=jqBGJPGA8lo

Этот видеоканал тоже бы посмотреть не помешало, для общего представления:
https://www.youtube.com/watch?v=AcxN13_ ... 0d5BOtF_HU

Re: Как объединить две программы в одну

СообщениеДобавлено: 02 дек 2017, 09:47
Андрей
Выложите ваши две программы в файлах ФК и протеуса. Там дальше разберёмся чем вам помочь.

Re: Как объединить две программы в одну

СообщениеДобавлено: 02 дек 2017, 17:14
uuu000
Спасибо.

Re: Как объединить две программы в одну

СообщениеДобавлено: 23 дек 2017, 19:47
uuu000
1 attiny2313 .fcf_avr
2generator attiny 2313.fcf_avr
Собрал программу для переключения кнопкой двух leds и второй кнопкой трех leds.Требуется добавить в эту диаграмму генератор (хотя бы без регулировки частоты)-это второй файл.Пробовал сделать макрос генератора,получилось,
но не знаю куда его можно вставить в диаграмму и как обеспечить независимую работу программы и макроса.К сожалению,я только начал изучать Flowcode и еще плаваю во многих понятиях.Обе программы в Proteus работают.

Re: Как объединить две программы в одну

СообщениеДобавлено: 24 дек 2017, 08:34
Андрей
В вашем случае подставить вывод на D3 можно без проблем но паузы для получения меандра подставлять уже нельзя (т. к. они испортят всё остальное в программе). Поэтому как один из способов можно сделать на инкрементном счетчике, всю настройку вывода импульсов на D3 придётся настраивать с помощью осциллографа. Следует помнить что данный способ зависим от других процедур в программе и тактовой частоты. Ещё один из способов задействовать аппаратный PWM (у attiny2313 их 4) но тогда для получения меандра 1 гц. тактовую частоту придётся понизить очень сильно (меньше 1 мгц.) и PWM выводится на другие ноги МК.

Re: Как объединить две программы в одну

СообщениеДобавлено: 24 дек 2017, 13:31
Андрей
Третий вариант я думаю получиться, использовать прерывание по TMR1 (он помедленнее чем TMR0). Сделать прерывание с частотой 2 гц., дальше в обработчике прерывания изменять значение переменной с тип Bool c 0 на 1. затем тамже в обработчике по условию этой переменной выводить 0 или 1 на D3, тогда получиться меандр с частотой 1 гц. Плюс в том что от других процедур в программе зависимости не будет, единственное возможно придётся подобрать кварц на какую нибудь некратную частоту. Инфы по прерываниям на этом форуме как морковки на грядке.

Re: Как объединить две программы в одну

СообщениеДобавлено: 24 дек 2017, 14:11
uuu000
Спасибо.Буду пробовать.
:)