команда PulsIn
|
|
dimitriy-bc |
Дата: Чт, 11.10.2012, 20:35 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
150
Замечания:
±
На сайте с 19.03.2012
Статус:
Offline
|
Всем доброго времени суток. В описании по Протону Анатолия Медведева и Владимира Хилинского сказано, что команда PulsIn может работать с размерами больше слова. У меня рабочий вариант получается два байта. В описании опечатка или я чего-то недопонял?
|
|
|
|
mikhail09p |
Дата: Чт, 11.10.2012, 22:56 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Непонятен вопрос. В описании красиво написано: тип Word то максимальное значение измеренной переменной может быть 65535 тип Byte, а частота тактового генератора 4 МГц, что соответствует дискретности измерения в 10 мкс, то максимальное измеренное значение будет равняться 255 единицам
Дальше цитировать?
|
|
|
|
dimitriy-bc |
Дата: Чт, 11.10.2012, 23:02 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
150
Замечания:
±
На сайте с 19.03.2012
Статус:
Offline
|
PulsIn Синтаксис: Variable = PulsIn Pin, State Команда PulsIn переключает выбранный вывод микроконтроллера в состояние входа и измеряет длительность импульса поступающего на этот вход. Параметры Variable - определенная пользователем переменная типа Bit, Byte, Byte_ARRAY, Word, Word_ARRAY, DWord, или Float в которую сохраняется измеренное значение.
Сообщение отредактировал
dimitriy-bc - Чт, 11.10.2012, 23:07
|
|
|
|
dimitriy-bc |
Дата: Вс, 14.10.2012, 12:22 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
150
Замечания:
±
На сайте с 19.03.2012
Статус:
Offline
|
Всем доброго времени суток. Написал программу для измерения длительности импульса под Dword. Но для экономии времени работы, хочется определять начало счета не задержкой PA_000: If PORTA.0 = 0 Then ' ждем импульс, (высокий уровень) GoTo PA_000 EndIf а прерыванием по POTRB.0. Но почему-то на POTRB.0 сидит единица. Такое впечатление, что он сформирован как выход, а не вход. Подскажите, где я допустил ошибку.
|
|
|
|
mikhail09p |
Дата: Чт, 18.10.2012, 23:12 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Неужели трудно нормально спрашивать? Что Вы хотите услышать, если не показываете программу??? У Вас в архиве два исходника - Name : BStart.BAS ' Author : Анатолий Медведев .......................... Где Ваша программа?
|
|
|
|
dimitriy-bc |
Дата: Вс, 21.10.2012, 12:13 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
150
Замечания:
±
На сайте с 19.03.2012
Статус:
Offline
|
Всем доброго времени суток. mikhail09p, возможно, я действительно невразумительно задал свои вопросы. Попробую исправиться. Мне поставлена задача, перевести на новую элементную базу станок, собирающий резиновый рукав в бухту. Станок работает на двух двигателях постоянного тока. В редукторы этих двигателей вмонтированы энкодеры. Поскольку станок на старом оборудовании подергивается, осциллографом снять длительности импульсов поступающих с энкодеров, не получается. Поэтому решил заложить в программу переменную в четыре байта. Измерение длительности импульсов выполняют PIC16F628A (программа Skaltek_D). Контроллер U2, эмитирует работу привода вращающего катушку. Он является задающим. Контроллер U5, эмитирует работу перемещена катушки по горизонтали и привязывается к скорости вращения катушки. Контроллер U4 (программа Skaltek_М), принимает данные с контроллера U2 и контроллера U5, сравнивает их, и изменяет скорость передвижения катушки. При помощи потенциометра вводится коррекция соотношений U2 и U5. Проблемы следующие. 1) При анализе в Протеусе, U2 и U5 иногда выдают ложные значения. 2) Пытался изменить работу U2 и U5. Хотел, чтоб измерение начиналось по прерыванию порта В0. но Порт В0 не хочет включаться как вход. И еще вопрос. Насколько надежна передача информации командой RSOut?
Сообщение отредактировал
dimitriy-bc - Вс, 21.10.2012, 12:14
|
|
|
|
MiXaS |
Дата: Пн, 08.04.2013, 23:33 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Привет коллеги! Есть вопрос. Решил окончательно разобраться с таймерами TMR0...TMRX. Нашел код на компе, кто-то дал на нашем форуме год назад наверно. Раскурил код, раскурил даташит, короче разобрался и написал свой. Так вот в "чужом" коде я нашел слово, которое распознает компилятор. Но я нигде не нашел описание этой команды. Зовут её Nop. Стоит она перед GoTo.
Nop Nop GoTo main End
Самое интересное, что если их (Nop) заморозить, то прога работает также. Подскажите что Ето такое и как его едят! Спасибо!
Сообщение отредактировал
MiXaS - Пн, 08.04.2013, 23:34
|
|
|
|
anatol |
Дата: Вт, 09.04.2013, 00:22 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Nop - это ассемблер, пустая операция. Занимает один такт процессора, т.е 4 периода генератора. Используют для формирования точных задержек.
|
|
|
|
MiXaS |
Дата: Вт, 09.04.2013, 09:21 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Спасибо большое! Я догадывался, что это ассемблер, но не знал значение. Спасибо!!
|
|
|
|