ruhi

логическое И на AVR

48 сообщений в этой теме

my504    259

Логическая функция ног - это совершенно тривиальная задача, которая используется в каждом первом случае. Количество инструкций зависит от того кода, в котором этот анализ производится. Две инструкции или пять - ПО БАРАБАНУ. Для уменьшения латентности применяют аппаратные приблуды (прерывание по изменению ног, встроенные микроПЛИСы и т.п.).

То есть даже как этюд задача неинтересна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

:D А я то думаю что это я один только учавствую. Можно тип МК с ПЛИС на борту очень интересно!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

Открываете сайт микрочипа и ищите МК с модулем CLC на борту...

Это очень много МК, включая новые инкарнации атмелевского наследия.

ЗЫ. Количество модулей может быть больше одного, есличо...

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
hasl    54

Когда кажется.

Читают UserGuide, DataSheet и т.д.

когда хотят просто поп....(поговорить), сидят в форуме

;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, my504 сказал:

Для уменьшения латентности применяют аппаратные приблуды (прерывание по изменению ног...

Вот тут трудно не согласиться с Марком. Если изменение сигнала (в Ваших алгоритмах) произойдет сразу за первой инструкцией (in R, pinX), то можете смело удваивать алгоритмы вдвое. Ну разве не джиттер (до 90%)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35

Ключ к архиву: 

AndUnitsCode

В 31.01.2018 в 17:54, Геннадий сказал:

трудно не согласиться с Марком.

С Марком можно сколько угодно соглашаться, но джиттер здесь ни при чем!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259
1 час назад, ruhi сказал:

джиттер здесь ни при чем!

Бездоказательное утверждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
1 час назад, my504 сказал:

Бездоказательное утверждение.

Конечно, потому что тут нечего доказывать, смотрите условия задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

Причем тут условия задачи? Я отметил, что программный логический вентиль будет иметь очень большой джиттер. И все.

Кому джиттер по барабану, тот может это все реализовать. Но если нужно быстро, то как может не волновать джиттер? Однако есть и такой класс задач. Просто их совсем мало. Синтетическая реализация предложенная здесь далека от жизни. Синтетическая она потому, что является блокирующим кодом. Ну разве только весь МК только и делает, что решает эту задачу. Тогда чем он лучше классического вентиля?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
24 минуты назад, my504 сказал:

Причем тут условия задачи? Я отметил, что программный логический вентиль будет иметь очень большой джиттер. И все.

Я когда в институте учился, на такие утверждения преподаватели обычно спрашивали: по сравнению с чем очень большой?

Что бы ответить надо какую то прикладную задачу рассматривать. А в общем можно сказать, что при минимальном времени переключения входных сигналов на порядок большем чем время максимальной задержки фронта процессором, решение можно рассматривать для практического применения и в контексте сравнения всех остальных параметров. (будет кажется около 50 мкс минимум входного периода переключений).

Цитата

что является блокирующим кодом.

Ну да! Это конечно тоже надо учитывать при рассмотрении для практического применения. Но можно выходить по прерываниям, если потребуется в реальной задаче.

Но на С такое конечно не напишешь - стек надо подменять, но драйверы тоже не всегда на чистом С пишутся.

Изменено пользователем ruhi

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Starichok    1 210
10 часов назад, my504 сказал:

Ну разве только весь МК только и делает, что решает эту задачу.

совершенно верно подмечено - весьма подходящее занятие для МК - максимально быстро делать логическое И и больше ни чем не заниматься...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
11 час назад, Starichok сказал:

совершенно верно подмечено - весьма подходящее занятие для МК - максимально быстро делать логическое И и больше ни чем не заниматься...

Вообще то, изначально, задача позиционировалась как теоретическая, если что. Читайте сначала.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

Любая теоретическая задача имеет смысл лишь тогда, когда приводит к каким то практическим результатам (рано или поздно, прямо или апосредовано). Представленную задачу даже трудно позиционировать как теоретическую, поскольку она ничего не обобщает и решение жестко привязано к системе команд рассматриваемой платформы. А уж про практический выхлоп и говорить не приходится. По сути все сводится к обычной логике программного кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
1 час назад, my504 сказал:

она ничего не обобщает

А вы вот здорово обобщаете! У вас, конечно, нет практического выхлопа в этом направлении (реализация специфичной логики через специфичные возможности контроллера), потому что вы им никогда не занимались, видимо, но у меня то он есть - годами девайсы работают! 

Ну не интересно вам, ну не хочется из своей норы выглядывать, ну и ладно, чего так расстраиваться то, что кто то увидит больше чем вам хочется?

Изменено пользователем ruhi

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Starichok    1 210

ну и в чем твой выхлоп из 10 процессорных циклов выразится в практическом смысле, если у тебя он есть?..

а то мы тут собрались слепые и не видим в этой затее вообще никакого выхлопа...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
12 часа назад, Starichok сказал:

ну и в чем твой выхлоп из 10 процессорных циклов выразится в практическом смысле, если у тебя он есть?..

Так он не только у меня есть! Я же привел пример: программная реализация поддержки USB - посмотрите как сделана. В моем понимании это и есть "реализация специфичной логики через специфичные возможности контроллера" на практике.

Реализация отдельного элемента логического И, большого (вообще, какого то) практического смысла действительно не имеет, я согласен.

Но как упражнение для понимания возможностей управления этими специфичными возможностями, мне кажется, является достаточно показательным примером!

Не даром все кинулись задержку считать, умными словами (типа джиттер :) ) начали бросаться.

А я, было время, даже генератор ассемблерного кода написал для одной специальной задачи отсчета N=12 (кажется) интервалов времени с точностью до периода тактовой частоты процессора от 1 до 2в32 периодов на одном представителе AT90 серии (атмег тогда еще не было).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

Сам по себе программный ЮСБ уже мало кому нужен, гораздо проще  найти МК с аппаратной поддержкой да еще и за меньшие деньги.. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
3 часа назад, my504 сказал:

Сам по себе программный ЮСБ уже мало кому нужен, гораздо проще  найти МК с аппаратной поддержкой да еще и за меньшие деньги.. 

ваша правда! да он еще и максимально медленный!

А, когда-то, я был приятно удивлен возможностью разобраться с работой протокола на уровне фронтов и наносекунд. На ассемблере описание гораздо компактнее чем на английском, да и подебажить можно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

С работой протокола проще всего ознакомится по спецификациям на usb.org

А разбираться с программной генерацией импульсов и через эту галиматью осваивать протокол - выглядит несколько перректально, извините.

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
38 минут назад, my504 сказал:

С работой протокола проще всего ознакомится по спецификациям на usb.org

ознакомиться мне было недостаточно. Мне надо было, именно, досконально разобраться, проверить на практике что я правильно понял спецификацию.

Такая практическая проверка не выглядит, а всегда является несколько перректальной операцией, такова жизнь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

Разве для разбора УАРТа требуется его программная эмуляция?

Ерунда какая то....

Вы пытаетесь доказать, что кривая частная реализация HID может служить учебным пособием?

Подключите осциллограф к дифпаре ЮСБ и снифферите физуровень. Все лучше, нежели разбирать чужие каракули на АСМе.

 

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    35
18 минут назад, my504 сказал:

Вы пытаетесь доказать, что кривая частная реализация HID может служить учебным пособием?

Любая частная реализация чего угодно, может служить учебным пособием этого чего угодно, если она работает. Для меня это аксиома, соответственно, мне нечего тут доказывать.

И ассемблер мне читать труда не составляет, и биты в памяти гораздо проще разбирать чем на осциллографе.

И УАРТ это не протокол, там сложности нет никакой - разбирать нечего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    259

УАРТ такой же "не протокол", как и физуровень ЮСБ.

Кроме физуровня в АСМе разбирать нечего.

ЗЫ. К слову. Вы пытались привязать местную задачу к "разобранному" Вами ЮСБ. Сделали это крайне неуклюже. По сути представленная тут задача никакого отношения к программному ЮСБ не имеет. В том смысле, что ЮСБ реализует только входные маски, но никак не выходной сигнал. А если выходной, то никак не входную логику. Это я все к тому, с каким "качеством" Вы разобрали оный АСМ, если мне пришлось Вам долго доказывать вышесказанное....

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Stratix
      Здравствуйте, у меня проблема с прошивкой разных устройств из-за программаторов. Дело в том что у меня есть некоторое количество китайских и самодельных программаторов для разных производителей, с ними постоянно какие-то проблемы, некоторые отказываются нормально работать на windows 10(другие версии ПО не устраивают), другие не работают с последними версиями сред разработки и т.д. Так же нужно прошивать схемы памяти. Хочу прошивать устройства без постоянной сборки программаторов и неудобств. Думаю о двух вариантах: взять оригинальные программаторы для всех производителей: altera, xlinx, arm, pic, avr(некоторые найти сложно, например оригинальный usb-blaster и высокая стоимость в сумме), второй вариант: взять универсальный программатор, который бы поддерживал все новые микросхемы, а вот с этим проблема, большинство универсальных программаторов не шьют stm, плис. Есть ли вообще реально универсальные программаторы? Мне было бы намного удобнее если на столе б лежал один программатор, а не куча. Смотрел список микросхем chipprog-48, пока что самый большой, к сожалению не поддерживает новые fpga, например: cyclone IV. Связывался, сказали что поддержки не будет и в будущем. Стоит ли взять chipprog-48 в 2018 году или есть программаторы лучше, с большим списком микросхем?
    • Автор: DimonRX
      Всем доброго времени суток!
      В AVR-ках я новичёк и очень нуждаюсь в вашей помощи.
      Задача у меня следующая. Есть драйвер управления серводвигателем на ATmega88. Помимо основной задачи ATmega88 через 74HC164D выводит на сдвоенный 7-ми сегментный индикатор направление вращения мотора в виде анимации (вращает сегмент по или против часовой стрелки). Рядом есть некая поделка на ATmega8, одной из задач которой является определение направления вращения мотора и, в зависимости от направления, выполнение различных действий. Как мне это сделать? Как подружить две меги? Всем заранее спасибо.
    • Автор: Kirill Lubinets
      Дано: отладочная плата STM32F303VC, индукционный датчик.

      Доброго времени суток, суть моего проекта в  детектировании вибраций(ударов) при помощи аналогового датчика.
      Код отслеживания удара написан, но я не пойму то ли я ошибся с алгоритмом его работы то ли не правильно сконфигурировал отладочную плату.

      Информация по датчику.
      Индукционный датчик удара, шок сенсор, Arduino может использоваться в проектах на микроконтроллерах (в т.ч. Arduino), в которых нужно следить за уровнем вибрации или подобных механических возмущений. Принцип действия датчика основан на электромагнитной индукции. Движущийся стальной, ферритовый или магнитный сердечник относительно катушки создает в катушке ЭДС, подходящую по амплитуде ударного воздействия на систему. Чувствительный элемент датчика установлен в прозрачный пластиковый параллелепипед для защиты от действий внешней среды.
      Для использования датчика нужно подключить его к Arduino контроллеру или другому микропроцессорному управляющему устройству, подать питание, создать программу для работы с датчиком или использовать готовое решение. На корпусе датчика есть два отверстия, с помощью которых можно жестко закрепить датчик на плоской поверхности. В состоянии покоя напряжение на выходе из датчика около 5 В, при возмущении напряжение на датчике падает пропорционально силе возмущения.
      Индукционный датчик удара, шок сенсор, Arduino имеет один 3-контактный разъем для подключения к контроллеру и питания:
      контакт обозначенный «–» – общий контакт;
      средний контакт – напряжение питания;
      контакт S – аналоговый выходной сигнал датчика.
      Датчик может питаться как от Arduino контроллера (другого микропроцессорного управляющего устройства), так и от внешнего источника питания. Напряжение питания 3,3 – 5 вольт постоянного тока.
      Характеристики:
      принцип действия: индукционный;
      выходной сигнал: аналоговый;
      напряжение питания: 3,3 – 5 вольт постоянного тока;
      размеры: 30 х 18 х 11;
      вес: 2 г.
      Shock.7z
    • Автор: Петр Серёгин
      Здравствуйте, у меня проблема.
      Не программируется ATmega2561-8AU. Программатор USBASP. Микроконтроллер 100% рабочий. Питание и контакты программатора припаяны правильно.
      Что можете посоветовать? 
    • Автор: RIMUS1989i
      Всем здравствуйте! Есть необходимость метирить переменное напряжение от трех источников 220v. И питание получать от них же. (1.) Набросал схемку, будет ли она мерить и с какой точностью? измерять думаю в диапазоне от 150 до 250в. по идее точность будет 0.1 вольт. (2.) Но какие подводные камни я могу поймать? (3.) Или придется еще и операционный усилитель лепить на каждый вход АЦП?