Palxta 0 Report post Posted February 14, 2022 Третий день бьюсь над созданием регулятора мощности. Идея такая. Кнопочками выбираем от 0 до 100 уровень мощности, на выходе светодиод и т.д..... скажем при установке 90% светодиод 90 периодов времени светит , 10 периодов нет. Вроди как просто, но при попытке создания, тот светодиод ведет себя не адекватно, то 50*50 периодов включается, то как задано... разные пути пробовал, не выходит ничего.... Принцип строил такой; КНОПКИ if k1 = 0 and k2 = 1 then must = must + 1 if must > 100 then must = must - 1 endif if k1 = 1 and k2 = 0 then must = must - 1 if must < 20 then must = must + 1 endif write 5, must PAUSE 10 Mrab = must mpau = 100- must return отсчет периодов (м - включение в 1 по программе, out - светодиод, must - переменная установки вых. мощности, mrab - переменная времени работы, mpau- переменная паузы) if m = 1 then if mpau >0 then mpau = mpau - 1 out = 0 endif if mrab = 0 then mpau = 100 - must mrab = must endif if mpau = 0 then mrab = mrab - 1 out = 1 endif endif Share this post Link to post Share on other sites
Palxta 0 Report post Posted February 14, 2022 Ща создаю схемку в протеусе с 7ми сегментником, и прошивку... чуть позже выложу Share this post Link to post Share on other sites
Evgeniy 285 Report post Posted February 14, 2022 в 628 контроллере встроен аппаратный модуль ШИМ, поэтому с ним проблем вообще не должно быть проблем. Share this post Link to post Share on other sites
Palxta 0 Report post Posted February 17, 2022 Как и обещал REGULJATOR.pdsprj REGUL.pbp Share this post Link to post Share on other sites
Evgeniy 285 Report post Posted February 18, 2022 Попробуй так regulator.zip Share this post Link to post Share on other sites
Palxta 0 Report post Posted February 21, 2022 Оч. интересно... но только учусь, сейчас как раз изучаю прерывания... сложно пока) хочу перейти на пик 676 Share this post Link to post Share on other sites
Evgeniy 285 Report post Posted February 21, 2022 Да ничего сложного там нет. Просто нужно разобраться. Для расчёта таймеров на винду есть программа PIC Timer Calculator. Есть сайты, где можно рассчитать частоту или период срабатывания таймеров. Либо их задать, и получить всё настройки. Прерывания у всех PIC-ов одинаковые, отличие лишь в наличии или отсутствии тех или иных устройств внутри микроконтроллеров. Например Timer2 или Timer3 отсутствует в 628 и 676 микроконтроллере. В 676 есть аналоговый вход, есть и прерывание, связанное с ним. На 16f84, 16f628, 12f629, 12f675 есть даташиты на русском языке. Рекомендую их почитать. Там расписаны всё регистры, что за что отвечает. Всё что там написано распространяется и на остальные микроконтроллеры микрочип. Share this post Link to post Share on other sites