Пару слов о пороге вхождения. Он зависит от ваших знаний, навыков и амбиций. Если вы не знаете, что вам нужно, то учите всё! Так поступают профессора по отношению к студентам. Доктрина академического образования.
Это бред человека, который не осилил высшее образование. В ВУЗе учат фундаментальным знаниям, но главное, учат САМООБРАЗОВАНИЮ на основе правильного технического (естественного или гуманитарного - зависит от профиля) мировоззрения, которое дают фундаментальные знания. Учить все невозможно и не нужно. И порог вхождения в ЛЮБУЮ тему определяется именно этим самым мировоззрением.
Первый этап закончен. Аналоговый сигнал выводится в параллельном коде на 12 разрядов порта В, каждые 200мс по прерыванию таймера вывод на ЛСД и терминал. Рабочий код для микробейсика.
Решил вывод на ЛСД и терминал включать кнопкой, что бы не сбивать программу. Внешнее прерывание сделал на пин PA0. Для этого в микробейсике нужно поднять 3 флага.
EXTI_FTSR =1 'по спаду EXTI_IMR = 1 ' Set mask NVIC_IntEnable(IVT_INT_EXTI0) ' разрешение прерываний
Ну и сам обработчик от ассистента прерываний, где нужно выбрать EXTI0.
sub procedure inter_PA0() iv IVT_INT_EXTI0 ics ICS_AUTO ' код обработки end sub
Повеселил! Может, всё-таки, LCD или, по-русски, чтобы клаву не переключать, ЖКИ?
Забегает молодой парень в больницу: - Доктор, сделайте мне кастрацию, срочно! - ??? - Срочно, доктор, некогда объяснять! Доктор делает кастрацию. Наутро парень приходит в себя от наркоза, его спрашивают, в чем дело, собственно? - Понимаете, я женился на еврейке, у них так принято по религии. - Так может быть Вам нужно было обрезание? - А я что сказал?!!
Добавлю за прерывания. На другие пины порта А нужно EXTI0 заменить соответственно на EXTI1, EXTI2, EXTI3, EXTI4, EXTI9_5, EXTI15_10. Флаги выставить по степени двойки. Для PA7 EXTI_IMR = 128.
Добавлено after 33 minutes 2 seconds: tonyk, есть другой анекдот, про кота, который, когда нечего делать, занимался правописанием.
Добавлено after 3 hours 3 minutes 25 seconds: Что бы переключить прерывания на порт B нужно выставить флаги в регистрах AFIO. По 4 пина порта на каждый регистр. AFIO_EXTICR1 = 4369 AFIO_EXTICR2 = 4369 AFIO_EXTICR3 = 4369 AFIO_EXTICR4 = 4369
NStorm, пока это просто числа и они не должны вызывать никаких ассоциаций. Как устроены и работают регистры прерываний пока не рассматриваем. Я и так углубился не по делу. Достаточно было одного пина на одно прерывание. Два внешних прерывания в авр считалось роскошью.
linkov1959, ну не понимаю, если вы изучаете и осваиваете - так можно сразу писать нормально и наглядно, а не "просто числа"? А на многих AVR есть PCINT, которых много и почти на любом пине. Конечно на STM32 всё круче, но так-то, справедливости ради. Ну и честно имхо Basic на МК, особенно STM32 малоперспективен. Да, сейчас вам удобнее. Но примеров, библиотек и кода в сети почти нет на бэйсике. 99.9% пишут на C/C++ (не берем в расчет всякие фрэймворки и интерпретаторы). Придется весь путь самому проходить. Оно может звучать хорошо, а не деле будете каждый раз велосипеды изобретать с нуля.
linkov1959, ну не понимаю, если вы изучаете и осваиваете - так можно сразу писать нормально и наглядно, а не "просто числа"?
NStorm, и не поймёшь! Пока не будешь...
Цитата:
...на ЛСД
Диагноз выше:
Цитата:
Это бред человека, который не осилил высшее образование.
Человеку, имеющему образование, знания и опыт, читать эту тему- только портить пищеварение перед обедом. И остальным не рекомендуется, ибо по мере усложнения вопросов такой ЛСД-эшный бред окончательно затуманит мозги читателям и вместо просветления погрузит в бредовый мрак. Использование терминов а-ля "ЛСД" является маркером низкой грамотности и технической культуры пишущего, ИМХО. Тем более печально, когда такое выкладывается на всеобщее обозрение в виде "учебников".
Поставил на выход ЦАП и подал с генератора синусоиду на вход. До 1 кГц качество хорошее, ступенька 20мкС. У меня максимальная частота 775Гц. Для моего проекта самое то, но резерв у АЦП тут большой. Будем посмотреть в сторону регулярной выборки и DMA. Самому интересно.
и даже при этом количество проектов, где оба были бы задействованы с реальной необходимостью, можно перечесть на пальцах. чего уж там говорить о МК типа несчастной atmega328, у которой, по-моему, 20 пинов могут использоваться для внешних запросов прерывания...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Буду теперь делать цифровой фильтр. Немного теории, можно и без нее, но она любопытна. На вход подаем произвольный сигнал, оцифровываем (АЦП), пересчитываем на ходу по программе и обратно в аналог (ЦАП). Все уже испытано, кроме пересчета. Каждый фильтр имеет свой паспорт или импульсную характеристику. Если на вход фильтра подать короткий импульс, то на выходе будет сигнал, растянутый во времени. Эта функция от времени и будет паспортом фильтра, она не зависит от входного сигнала. Все программы цифровых фильтров работают одинаково. Через равные промежутки времени берется входной сигнал в цифре и смешивается по простым правилам с импульсной функцией. Результат в цифре идет на выход фильтра. Программа Filter Solutions рассчитывает не только импульсную функцию, но и код для обработки входного сигнала на нашем любимом языке Си. Это здорово!
Импульсная функция ЦИФРОВОГО фильтра может быть конечной, тогда это КИХ(FIR) - фильтр, а может быть бесконечной - БИХ(IIR)-фильтр. Ни один из них ничего со своей импульсной характеристикой не "смешивает". То, о чем вы тут намекаете называется СВЕРТКОЙ (интегралом свертки). Свертка импульсной характеристики фильтра с входным сигналом даст выходной сигнал. Но на практике есть конкретная математическая реализация КИХ и БИХ. КИХ - это интеграл по окну от произведения сигнала и оконной функции. БИХ - это рекурсивный фильтр. БИХ страдает нелинейностью ГВЗ, требует запаса по разрядности и может быть неустойчив, особенно на float-ах. Простейший БИХ фильтр первого порядка - это экспоненциальный фильтр.
КРАМ, импульсная функция интересна для фильтра в целом, таким, как мы его хотим видеть, а это аналоговое понятие, а импульс бесконечно мал по времени и бесконечно велик по амплитуде. Цифра используется, что бы не мотать индуктивности и не подбирать емкости и никакой магической смысловой нагрузки ни несет в отличии от дельта-функции Дирака, сверстки, преобразований Фурье, Лапласа и др. Работая с цифровыми и аналоговыми фильтрами, мы вольно или невольно прикасаемся к магии мироздания и нужно так подавать материал, что бы он притягивал, а не отпугивал заумными терминами и формулами.
Цифра используется, что бы не мотать индуктивности и не подбирать емкости и никакой магической смысловой нагрузки ни несет в отличии от дельта-функции Дирака, сверстки, преобразований Фурье, Лапласа и др.
Не знаю как там нащщет "сверстки" , но никакой смысловой нагрузки не несут ваши сентенции на тему ЦОС. Кроме перевраных по форме и содержанию рандомных терминов я не углядел в этих сентенциях ничего мало-мальски близкого к истине. Увы.Однако цифровые фильтры самым прямым образом реализуют математику аналоговых фильтров. Естественно, с особенностями функции дискретизации. Мало того, физический смысл цифрового фильтра гораздо ближе дилетанту, чем математика преобразования Лапласа. Попробуйте спросить любого, кто зайдет в тему, а собственно для каких сигналов и зачем применяют преобразование Лапласа и чем оно отличается от преобразования Фурье В ЭТОМ СМЫСЛЕ... А я посмеюсь.
Работая с цифровыми и аналоговыми фильтрами, мы вольно или невольно прикасаемся к магии мироздания и нужно так подавать материал, что бы он притягивал, а не отпугивал заумными терминами и формулами.
Вы попутали аудиторию, милейший... Тут не дом пионеров и не школьники 5-го класса средней школы. Сюсюкать и перевирать истину, пытаясь завлечь школьнега в математику DSP - абсолютно беспонтовое занятие. Это серьезная тема, требующая минимально необходимых знаний математики. Иначе практической пользы от скопипи...ного чужого кода фильтра не будет никакой. Хотя бы потому, что цифровой фильтр не оперирует физическими частотами и привязать его к ним можно, лишь понимая о чем вообще идет речь.
КРАМ, идея в том, что бы любой пионер или школьник, умеющий запрограммировать проц, мог создать фильтр любой сложности с нужными ему свойствами. В программе Filter Solutions он заполнит понятные формы для своего фильтра и получит код, который вставит в свою простую программу. Большого ума тут не требуется, только навыки. Нет ничего сложнее современного смартфона, но даже дети легко cправляются.
linkov1959, если у человека хватит мозгов, чтобы запрограммировать микроконтроллер, я сомневаюсь, что ему сложно будет написать КИХ-фильтр (или иной фильтр). Уж всяко, МК запрограммировать намного сложней. И вряд ли первый попавшийся школьник обладает знаниями С или С++, архитектуры МК, электроники и английского на таком уровне, чтобы МК запрограммировать… А если обладает, то почему бы ему пару книжек по цифровой обработке сигналов не осилить? Там матан простейший - на уровне 2-3 курса технического ВУЗа!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
И еще нужно учесть чтобы время расчета было меньше чем период оцифровки. Особенно без DSP. А этим еще надо управлять и что-то там отображать. И ЦОС на старших курсах не всякий осиливал.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения