Микроконтроллеры | Ликбез по программированию PIC |
|
---|---|---|
В аттаче |
|
|
В предыдущей программе много странностей и лишностей. picmanicу. Усреднять значение периода будем? Или будем по одному значению работать. Просто, если будем, надо сразу в прграмму закладывать. |
|
|
Будем усреднять конечно. |
|
|
picmaniac: На работе много дел, пока участвовать активно в обсуждении не могу. Тут вот у меня идейка одна возникла. Сразу, после измерения периода, вычислять ошибку Тном. - Тизм., где Тном.=40мс. Если Тизм. > Тном., т. е. флаг С устанавливается в 0, инвертируем результат (дополнение). Вот тут встает вопрос, а не пора ли нам "в рабочем порядке" скорректировать ТЗ. А теперь о самом главном и страшном! Встает такой вопрос. Если подсчитать суммарные цифры, то получится, 40мс +/- (3.75-6.25)% и 40 +/- (8.85-11.25)%. Такова точность наших измерений. Мне думается, что такая точность совсем "не в трубу"! В противном случае, при нашей точности измерения, усреднение бессмысленно, т. е. не прибавит точности, если конечно не усреднять, например по 100 отсчетам. Короче, начал я программу писать, но, чувствую, что рано! Много еще проблемных и несогласованных с МК-сообществом на форуме, моментов. А мой алгоритм не смотрели? Правда в силу вышеизложенного все наверное переделывать надо. |
|
|
Так, в общем я за этот вечер наваял черновой вариант программы на асме. t = 250 мкс. Пока это лишь набросок. Немного погонял в MPLAB5 и чуть-чуть в PIC Simulator IDE. |
|
|
picmaniac: Вопрос ко всем участникам: выложить код сюда на обсуждение, или будем совместно с нуля писать? |
|
|
Ну всё!!!Казалось бы отладил цикл,но тут вылезла ещё одна трабла.Как например сделать так чтобы '01111111' после RLF '0' появлялся в первом бите сразу ,а не после двух тактов.И только один ,а не два? |
|
|
Zandy, некоторые моменты я попытался учесть в программе. Вечером выложу, обсудим детально. Программа на домашнем компе. Nikus: Ну всё!!! Задавайте вопросы точнее. Я же сказал - телепаты в отпуске! Например: условие такое-то, получить хочу то-то и то-то, как это сделать? Не следует выдёргивать мысль из контекста. |
|
|
Привет picmaniac |
|
|
Ну вот, другое дело. Теперь задача понятна. Это просто. Например так. Сдвигаем регистр влево. Затем сбрасываем младший бит в 0. Тестируем С, и если там 1 - то устанавливаем младший бит в 1. Только сами регистры портов лучше не сдвигать, а предусмотреть отдельный регистр для сдвига, и из него потом сразу байт в порт переписывать. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2025 |