Помогите разобраться с программой
|
|
retas |
Дата: Сб, 05.03.2011, 11:13 | Сообщение # 16 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
1. На счет доп.ЛОГИКИ - оно дало бы только возможность ОДНОВРЕМЕННО следить за двумя сигналами. МК этого в принципе не может, но пожалуй с вашим подходом (с INT и CCP) вроде должно получиться - у меня такого опыта нет. 2. Какой либо сигнал на выходе логики, появлялся бы только при появлении хоть какого то сдвига между имп. 3. Как то я не пойму "это я рассчитаю только смещение, а мне необходимо знать и ширину"? ПМ, смещение и есть ширина, только выражена в тактах таймера. 4. По вами представлену алгоритму программы, выходит что вам не требуется одновременно следить за несколькими сигналами да и что сравнивать - получили, скажем, 10 импульсов и ширину импульса в 1мс?! 5. По ранее вами написанному "посчитать количество импульсов на оборот от начала отсчета", так вам нужно в МК иметь четко заданную длительность равную необходимой длительности импульса с датчика и её сравнивать с реально получаемой с датчика. Удачи.
Сообщение отредактировал
retas - Сб, 05.03.2011, 11:14
|
|
|
|
Axell |
Дата: Сб, 05.03.2011, 12:14 | Сообщение # 17 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 25.02.2011
Статус:
Offline
|
Quote (retas) По ранее вами написанному "посчитать количество импульсов на оборот от начала отсчета", так вам нужно в МК иметь четко заданную длительность равную необходимой длительности импульса с датчика и её сравнивать с реально получаемой с датчика. Посмотрите выше проект, там это реализовано уже...Мне не надо сравнивать в мк ничего, просто подсчитать кол-во импульсов..Какое должно быть мне уже заранее известно, просто нуно знать, правильно ли оно или нет.. Quote (retas) Как то я не пойму "это я рассчитаю только смещение, а мне необходимо знать и ширину"? ПМ, смещение и есть ширина, только выражена в тактах таймера. Ширина -- это длительность положительного фронта импульса..Импульсы подаются смещенными друг относительно друга..Мне нуно знать величину смещения в тактах и длительность импульса, что бы понять в какую сторону смещен -- для дальнейшей настройки..См. рисунок выше. Quote (retas) По вами представлену алгоритму программы, выходит что вам не требуется одновременно следить за несколькими сигналами да и что сравнивать - получили, скажем, 10 импульсов и ширину импульса в 1мс?! В принципе так оно и есть..Просто на мк заводится три канала с импульсами и в зависимости от выбранной программы выполнять действия... Но..Главные вопросы у меня написаны в предыдущем посте..По поводу прогаммы..
Сообщение отредактировал
Axell - Сб, 05.03.2011, 12:14
|
|
|
|
ADMIN |
Дата: Сб, 05.03.2011, 12:36 | Сообщение # 18 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
На ЖКИ подходит 6 ног минимум. Второе, прерывания можно настроить в том месте, где они тебе будут нужны. Подпрограммы оформляются так: sub function function_name(...) as return_type <объявление локальных переменных> ... end sub В теле Main подпрограмма вызовется как function_name() Прочитай в справке Microbasic - Program organization. Потом, зачем считать нажатия кнопок? Думаю, что по одному таймеру ты можешь начать счет ширины одного импульса, а по приходе второго, не сбрасывать таймер, а зафиксировать в переменную смещение, и продолжать счет всей ширины импульса. Ну как-то так
|
|
|
|
Axell |
Дата: Пт, 11.03.2011, 00:22 | Сообщение # 19 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 25.02.2011
Статус:
Offline
|
Подскажите плиз... Использую модуль ССР, настрроил на захват по переднему фронту.Нуно в теле программы переключится на захват по заднему и расчитать разницу..Подскажите плиз как это сделать, а то мне не очень понятно из документации.. И исче..Я так понимаю, что захваченное значение TMR1 нуно сохранять в регистр или в область памяти,что бы потом произвести математические действия. подскажите плиз как правильно это делать(сохранять)..Я пытался сохранять в переменную(это не правильно)-- оно меняется с каждым изменением значения захвата.. Спасибо..
|
|
|
|
ADMIN |
Дата: Пт, 11.03.2011, 05:00 | Сообщение # 20 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
А где вчерашний вариант? В этом варианте получается, что значение переменной меняется с каждым изменением значения захвата потому, что оно стоит в теле программы, а не в прерывании: Code while TRUE Delay_Ms(200) if PORTB.5 = 0 then pulse= 0 TMR1H = 0 TMR1L = 0 CCPR1L = 0 'А здесь постоянно обнуляется CCPR1 CCPR1H = 0 T1CON.0 = 0
end if
pulse = (TMR1H*256)+TMR1L imp_2 = CCPR1L + (CCPR1H*256) shirina = imp_1 - imp_2 'Здесь постоянно происходит вычитание и так до бесконечности
WordToStr(pulse,pulse_ex) Lcd_Out(1,3, pulse_ex)
WordToStr(imp_2,null_ex) Lcd_Out(2,3,null_ex)
WordToStr(shirina,shiri na_ ex) Lcd_Out(1,11,shirina_ex )
WordToStr(imp_1,imp_1_ex) Lcd_Out(2,11,imp_1_ex ) wend Вариант, который я отправил вчера, содержал две строчки - CCP1CON = 0x05(включает захват по переднему фронту), и CCP1CON = 0x04(включает захват по срезу импульса). Причем этот вариант работал(там нужно было только учесть время в нахождения в прерывании). В момент прихода импульса устанавливается флаг CCP1IF, что вызывает прерывание. В прерывании проверяем, если включен захват по переднему фронту, то значение CCPR1L и CCPR1H закидываем в переменную(это будет точка отсчета ширины импульса) и устанавливаем прерывание по срезу импульса. Потом сбрасываем флаг прерывания CCP1IF и ждем следующего прерывания по срезу. Как только мы вошли в прерывание, то вычитаем текущее значение CCPR1 и значение начала отсчета ширины импульса. Получаем ширину.Что там не понравилось?
|
|
|
|
Axell |
Дата: Пт, 11.03.2011, 06:37 | Сообщение # 21 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 25.02.2011
Статус:
Offline
|
Quote (ADMIN) А где вчерашний вариант? Извините за дублирование. Просто на момент написания этого ответа мой ясчик еще был пуст.. Сча все есть и будем разбираться.. Спасибо Вам..
|
|
|
|
Axell |
Дата: Пт, 11.03.2011, 20:50 | Сообщение # 22 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 25.02.2011
Статус:
Offline
|
Уважаемый ADMIN подскажите плиз, как в ПРОТЕУСЕ подать вот такие 2 последовательности импульсов на разные входа со смещением..А то как не кручу у меня хоть по одному фронту но совпадает.. Спасибо
|
|
|
|
DAlexV |
Дата: Пт, 11.03.2011, 23:22 | Сообщение # 23 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
"Бог в Помощь !!!" (м.ф. Жил был пес) Берем 2 источника прямоугольных импульсов. Частота у обоих одинаковая(какая требуется). Смещение регулируем в генераторе B (задержкой первого фронта) схему прицепил. Успехов
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
ADMIN |
Дата: Сб, 12.03.2011, 07:51 | Сообщение # 24 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Применительно к PIC можно использовать 2 таймера. Один использовать для генерации одной последовательности, другой - для другой. Главное - это вычислить точное время нахождения в прерывании для точной генерации.
|
|
|
|
Axell |
Дата: Сб, 19.03.2011, 00:21 | Сообщение # 25 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 25.02.2011
Статус:
Offline
|
Подскажите плиз, почему проект в протеусе работает в идеале, а как соберу в железе то со счетом начинается свистопляска... Нет стабильности в измерении импульсов..Даже при измерении ширины на каждом импульсе разное значение, хотя импульсы поступают с одинаковым периодом..Правда не такие идеальные, как в Потеусе(у меня есть маленьие срезы на заднем фронте), но все же почему так... ПыСы.Пробовал подовать на контроллер через делитель -- становилось лучше, но не идеально.. Программа нужна для проверки вот такого устройства...Только на приведенной схеме 15В, а у меня устройства на 5В...Принцип один и тот же.. И исче вопрос, как измеряется скважность..?? В доке написано так : конфигурируем на захват по пер.фронту - сохраняем, конфиг.по заднему - высчитываем, конфиг. опять по переднему- высчитываем - сдесь судя по докум. должно сохранится первое и последнее значение, а у меня первое почемуто перепиcываетя последним и ничего не получается..Почему так.? Code if CCP1CON = 0x05 THEN imp_1= CCPR1L + (CCPR1H*256) CCP1CON= 0x04 imp_2 = CCPR1L + (CCPR1H*256) ELSE CCP1CON= 0x05 W = (CCPR1L + (CCPR1H*256)) - imp_2 T=(CCPR1L + (CCPR1H*256)) - imp_1 S=T / W end if Добавлено (19.03.2011, 00.21.40) --------------------------------------------- C предыдущим вопросом разобрался... Возник другой вопрос.. Как правильно вывести результат деления, который получается дробным... Например : двоичный код (0001) / двоичный код (0010) = результат в десятичном (0.5) Как правильно ето оформить в программе..??
Сообщение отредактировал
Axell - Сб, 19.03.2011, 00:23
|
|
|
|
Men |
Дата: Чт, 15.03.2012, 16:31 | Сообщение # 26 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
2
Замечания:
±
На сайте с 15.03.2012
Статус:
Offline
|
Доброго времени!!!На просторах интернета попалась программка...скопировав ее захотелось немного поучится в освоении программирования на примере простой программки.Пытаюсь ее компилировать...а mikroBasic v7.0.0.2 не хочет ничего делать....Помогите пожалуйста....может что то не так в программе...или подскажите что нужно сделать....чтобы получить HEX ?Заранее спасибо!!!
|
|
|
|
ivan_fd |
Дата: Чт, 15.03.2012, 17:46 | Сообщение # 27 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Так это не проект, а какой то набор букв. Посмотрите на примеры среды разработки, там много всего. И скачайте свежий компилятор.
|
|
|
|
Bogdankul |
Дата: Пт, 03.06.2022, 17:53 | Сообщение # 28 |
Группа:
Заблокированные
Ранг:
Начал соображать
Сообщений:
19
Замечания:
±
На сайте с 22.10.2019
Статус:
Offline
|
Привет друзья. Предлагаем Вашему вниманию замечательный сайт для заказа услуг стоматологии в Минске.К вашим услугам лучшие стоматологи Минска с многолетним стажем.стоматология минск,удаление зуба, отбеливание зубов,лечение зуба,удаление зуба мудрости,стоматология минск цены и стоматология платные услуги минск. У нас работают стоматологи высшей категории, доценты и профессора — врачи с высоким уровнем профессионализма и личной ответственности, способные действовать в команде и постоянно совершенствоваться. Наша профессия — это ваша здоровая и красивая улыбка!Мы всегда на связи с вами! Мы предлагаем комплексный подход в решении стоматологических проблем.это команда единомышленников, одни из лучших специалистов в области эстетической и восстановительной стоматологии, ортопедии, ортодонтии, челюстно-лицевой хирурги и периодонтологии, эндодонтии, что позволяет достигать наилучших результатов лечения.Мы верим в построение отношений, основанных на доверии и взаимопонимании. Наши пациенты становятся нашими друзьями. От всей души Вам всех благ! циркониевые коронки из диоксида циркония стоматология пломбирование зуба зубные протезы съемные на нижние зубы швы после удаления зуба мудрости силиконовые протезы съемные зубные зубы вставные металлокерамика удаление зуба в десне съемное протезирование на имплантах удаление гранулемы зуба установка имплантация зубов безметалловая керамика каркас платная стоматология в минске цены проф отбеливание зубов зуб полировка стоматологический металлокерамическая коронка мост цена зуб имплантация минск скол на металлокерамической коронке циркониевые коронки на жевательные зубы протезирование на 6 имплантах уход за полостью рта гигиена хирургическая стоматология лечение имплантация синус лифт удаление зуба имплантация цена внутриканальное отбеливание депульпированного зуба зубное протезирование импланты цены съемные зубные протезы гигиена полости рта в минске стоимость первая имплантация зубов болит зуб пульпит лечение сода после удаления зуба зубной съемный протез коррекция сколько отходит анестезия после лечения зуба пломбирование корневого канала зуба сильная анестезия для зубов абатмент straumann индивидуальный зуб нерв пломбировка удаление удаление зубов под анестезией лифтинг перед имплантацией зубов профессиональная чистка зубов с брекетами съемные конструкции зубных протезов съемный зубной протез две челюсти металлокерамическая коронка минск безметалловая керамическая коронка диоксид циркония керамические виниры стоимость одного зуба отбеливание зубов реальные фото фотоотбеливание зубов цена временная зубная коронка съемный зубной протез на 4 зуба облегченные зубные протезы съемные передних зубы после пломбирования
магнитоэлектрические измерительные приборы
|
|
|
|
Antoniouwk |
Дата: Вт, 21.06.2022, 16:46 | Сообщение # 29 |
Группа:
Заблокированные
Ранг:
Новенький
Сообщений:
2
Замечания:
±
На сайте с 09.07.2021
Статус:
Offline
|
Приветствую Вас друзья! Предлагаем Вашему вниманию замечательный сайт https://dengi-do-zarplaty.ru/ Первое, что приходит в голову – это обратиться в банк. Но здесь есть нюансы. Чтобы оформить деньги в кредит в банке, понадобиться время, которого иногда нет. Или к примеру, если человек имеет плохую кредитную историю, банк однозначно не одобрит ему запрашиваемые средства. Получить желаемую сумму будет также сложно тем, кто не имеет официальной работы и постоянного дохода.Если в Ваши планы входит взять деньги в долг без банков и поручителей, в таком случае единственным выходом из ситуации будет - оформление микрозайма в МФО. Все выше перечисленные категории заемщиков, которые считаются максимально рискованными для банковского сектора, в МФО получают положительное решение по выдачи средств.
пленка под дерево для авто купить
|
|
|
|
Antoniobtl |
Дата: Ср, 12.04.2023, 19:00 | Сообщение # 30 |
Группа:
Заблокированные
Ранг:
Начал соображать
Сообщений:
21
Замечания:
±
На сайте с 19.06.2021
Статус:
Offline
|
Доброго времени суток уважаемые! https://r-notebook.ru/ Сервисный центр «Р-Ноутбук» оказывает услуги по ремонту техники на дому и в мастерской в Москве. Обращайтесь к нам, если ноутбук вышел из строя – перестал запускаться, выдает ошибки, зависает и тормозит или показывает синий экран. В комплекс услуг компании входит ремонт, апгрейд, чистка игровых, профессиональных ноутбуков, а также ультрабуков. Мы работаем с техникой разных брендов и моделей.В нашей команде – только опытные сотрудники, которые легко справляются даже со сложными задачами. Специалисты со стажем от 5 лет оперативно и качественно устранят программные и аппаратные неисправности с использованием оригинальных компонентов. У нас – собственный склад брендовых комплектующих, которые мы используем для замены. Поэтому искать и заказывать запчасти не понадобится. Подробная информация об услугах сервиса – на сайте https://r-notebook.ru/. Обращайтесь! Хорошего дня!Добавлено (12.04.2023, 20:03) --------------------------------------------- Доброго времени суток уважаемые! https://r-notebook.ru/ Ноутбук тормозит или не включается? А может, вы случайно пролили на него жидкость? Не беда. Сервис «Р-Ноутбук» в Москве решит любые проблемы с техникой. Наша компания специализируется на ремонте ультрабуков, игровых и профессиональных ноутбуков разных брендов и моделей. Также мы выполняем апгрейд техники, проводим чистку с заменой термопасты, устанавливаем и настраиваем программное обеспечение. На складе сервиса – полный комплекс оригинальных запчастей. Мы не используем аналоги, поэтому отремонтированные девайсы работают долго и без сбоев.Для мастеров сервисного центра нет сложных задач – они справляются даже с серьезными поломками в сжатые сроки. Мы выполняем ремонт в день обращения – мастер будет у вас максимум через час. С перечнем услуг сервисного центра вы можете ознакомиться на нашем сайте https://r-notebook.ru/. Ждем вашей заявки! Хорошего дня!
воду в дом из скважины цена
|
|
|
|