Узнать частоту
|
|
xvovanx |
Дата: Чт, 14.11.2013, 10:53 | Сообщение # 31 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
327
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата anatol13348Нашел в теле программы такую конструкцию и не понял хитрости - 400 циклов по 10 миллисекунд?
Хитрость в том, что в программе работают часы на прерывании TMR1, а также используютя для зарядки секундные и минутные интервалы. Таймер при переполнении может остановить программу в любом месте, кроме в момент паузы. И если в программе будет стоять пауза из 4000 циклов, таймер прерывания (при попадании в момент паузы) будет ждать целую секунду, пока закончится пауза. О точности часов (+-1 сек при каждом попадании прерывания в момент паузы) говорить не приходится. А так вероятность попадание прерывания в момент паузы уменьшена и точность +- 10 миллисекунд. P.S. Делать 4000 циклов по 1 мсек не стал, побоялся что у МК голова закружится
Сообщение отредактировал
xvovanx - Чт, 14.11.2013, 10:56
|
|
|
|
anatol |
Дата: Чт, 14.11.2013, 12:08 | Сообщение # 32 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Не обращал внимания есть ли команды при входе в прерывание сохранять регистры, а при выходе восстанавливать. Плюньте на точность часов, поставьте "нормальные" (т.е. безцикловые) задержки и проверьте. В конце концов просто помигайте светодиодом с секундным интервалом на примененном кварце.
|
|
|
|
MiXaS |
Дата: Чт, 14.11.2013, 13:50 | Сообщение # 33 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Прелесть прерывание как раз в том, чтобы выполнить подпрограмму, контроллер плюет на все остальное. Я так понял, что у Вас используется программное прерывание. В книге на протон об этом говориться. Но в протоне есть 2 строки, объявляющие прерывания.
On_Hardware_Interrupt - аппаратные прерывания и On Interrupt - программное прерывание.
Цитата On Interrupt Синтаксис: On Interrupt {Goto} Label Команда On Interrupt инициализирует так называемую программную обработку прерываний, в отличие от команды On_Interrupt, которое инициализирует аппаратную обработку прерываний. Встроенный в Proton+IDE редактор отличает эти две команды следующим образом - директиву аппаратного прерывания On_Interrupt он подсвечивает красным полужирным шрифтом, а директиву программного прерывания On Interrupt черным полужирным шрифтом. Это делается для облегчения отладки. Когда используется команда On Interrupt, компилятор просто помечает то, что прерывание произошло и немедленно возвращается к тому, чем до этого он занимался. То есть в отличие от аппаратного прерывания, программа немедленно не переходит к подпрограмме обработки прерывания. Поэтому в случае использования команд довольно большой продолжительности переход на подпрограмму обработки прерывания может привести к значительным задержкам. Например, если основная программа только что перешла к выполнению команды DelayMS 2000 и в это время произошло прерывание, то в этом случае компилятор просто отметит, что произошло прерывание и продолжит выполнение команды DelayMS 2000. А так как эта пауза будет продолжаться целых 2 секунды, то переход к подпрограмме обработки прерывания может затянуться. В случае если основная программа очень критична к времени исполнения команд, то она будет выполняться неправильно, например при мультиплексировании семи сегментного светодиодного индикатора. Для того, чтобы минимизировать такие случаи, следует использовать только такие команды и их конструкции, которые не занимают много времени на свое выполнение. Например, вместо команды DelayMS 2000, можно использовать команду DelayMS 1 в циклах For…Next или Repeat…Until повторяя эти циклы 2000 раз. Такие конструкции позволят компилятору заканчивать каждую команду более быстро, а значит, при возникновении прерывания программа сможет гораздо быстрее перейти к его обработке.
Уважаемый xvovanx, дело конечно Ваше, но пора уже на протон пересажываться.
Разница между протоном и picbasic-ом примерно как ВАЗ2101 и ford mondeo. Вроде обе машины, выполняют свои обязанности, но комфорт различный.
Тем более, что есть литература на русском, с примерами.
|
|
|
|
xvovanx |
Дата: Чт, 14.11.2013, 18:56 | Сообщение # 34 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
327
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата anatol13357Плюньте на точность часов, поставьте "нормальные" (т.е. безцикловые) задержки и проверьте. В конце концов просто помигайте светодиодом с секундным интервалом на примененном кварце.
Да пробовал, нет, это как то не солидно - на крутом дисплее крутого ARI секунды тикают и через раз чуть зависают, потом дальше идут. Поморгать светодиодом это одно, а если в программе полно замеров АЦП и анализ уровней, то импульсы получаются по времени"корявые"
Цитата MiXaS13358Уважаемый xvovanx, дело конечно Ваше, но пора уже на протон пересажываться.
Если чесно, как то даже и не задумывался, в Бейсике написал, скомпилировал, прошил и работает. На Бейсике прогу напишет даже ребенок, а на изучение Протона нужно время, которого как известно всегда не хватает. Но спасибо за наводку, на досуге гляну хотя бы одним глазком.
Сообщение отредактировал
xvovanx - Чт, 14.11.2013, 18:57
|
|
|
|
anatol |
Дата: Чт, 14.11.2013, 21:35 | Сообщение # 35 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
xvovanx, помигать светодиодом я не спроста предложил. Это чтобы не искать черную кошку в темной комнате. Вдруг кварц дуркует или компилятор. С кварцем можно определится зашив чужой хекс мигалки.
|
|
|
|
MiXaS |
Дата: Чт, 14.11.2013, 21:36 | Сообщение # 36 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Я может Вас огорчу, но протон это тоже басик. Снитаксис или очень похож или такой же. Если говорить о свордфишь, то конечно там более значительные отлиция. Некоторые команды в протоне пересекаются с басиком, а остальные можно подсмотреть. Из преимуществ очевидных Вы сразу получаете переменные с плавающей точко, много готовых плагинов, например, быстрые настройки контролера, или дисплея, или 7 сигментного индикатора или юсби и т.д.
|
|
|
|
xvovanx |
Дата: Пт, 15.11.2013, 00:31 | Сообщение # 37 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
327
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата anatol13363xvovanx, помигать светодиодом я не спроста предложил. Это чтобы не искать черную кошку в темной комнате. Вдруг кварц дуркует или компилятор
Ааа, в этом смысле. Нееет, это было проверено в самом начале как только заметил временные несоответсвия команд pause, beep, pwm и при выводе на LCD. Кварцы пробовал разные, даже выпаянные из старых плат. Все больше склонен думать, что виновен компилятор - при задании разных предделителей прерываний частоты получаем правильные, а 4 тактные временные команды выполняет криво.Добавлено (14.11.2013, 21:59) --------------------------------------------- to MiXaS.
Ну чтож, попробуем "на вкус" и мы этот Протончик Добавлено (15.11.2013, 00:31) --------------------------------------------- to MiXaS.
Скачал описание Протона в pdf, кинул глаз. Первые впечатления отличные. Немного напрягают отличия команд, но зная PBP это не затруднит работу. Большой, даже огромный плюс - вычисления с запятой, у меня все проги на 80% состоят из расчетов и приходилось сначала умножать на 1000 переводя всё в mV , чтоб не было десятичних частей. Задание портов LCD тоже одной строчкой, не двумя как в PВP. В общем по простым командам похож, в сложные пока сильно не углублялся. В описании много "полезных" примеров, а не только поморгать светодиодом и вывести HELLO WORLD! Как то даже пожалел, что не Протон мне первым попался на глаза для изучения . Буду пробовать на Протоне. Всем откликнувшимся - огромное СПАСИБО!
Сообщение отредактировал
xvovanx - Чт, 14.11.2013, 21:55
|
|
|
|
MiXaS |
Дата: Пт, 15.11.2013, 08:05 | Сообщение # 38 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Будут вопросы обращайтесь! Здесь на форуме, наверно, уже большая часть пишет на протоне, хотя есть люди уже переходят на более совершенные проги. Firewing, Mikrobasic, Swordfish
|
|
|
|
xvovanx |
Дата: Вс, 17.11.2013, 15:36 | Сообщение # 39 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
327
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Проблема решена. Оказался "битым" компилятор PBP у меня. "Пересел" на Протон, все ОК.
|
|
|
|
MiXaS |
Дата: Вс, 17.11.2013, 15:41 | Сообщение # 40 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Что и требовалось доказать!
|
|
|
|