Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

Компилятор компилирует компилируемое, т.е. сишный код. Ассемблерная вставка на вашей совести и остается девственной.
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

тоесть вы хотите сказать что определенную задачу на асме мона решить только одним способом и поэтому компилятор в данном случае умывает руки ?
Tell Me The Truth
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

Ага только потом после него может поработать оптимизатор :))
В код вижн могут одинаковые участки помещаться в функции для уменьшения размера программы. В любом случае можно сравнить свою функцию с кодом на выходе.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

А что делать компилятору? С Си он переводит функции в машинный код, а ассемблерная вставка это уже по-сути машинный код, только написанный в более понятном человеку виде, там просто нечего переделывать, разве что ошибки проверить. А вот каким способом решить задачу на ассемблере решает человек, он может написать INC R16, а может SUBI R16,-1, тут компилятор за него думать не будет. Оптимизатор да, другое дело, но если код небольшой и написан грамотно, ему ИМХО делать будет нечего :)
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

vitalik_1984 писал(а):одинаковые участки помещаться в функции для уменьшения размера программы

Ассемблерная вставка не трогается.
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

Engineer_Keen писал(а):Оптимизатор да, другое дело,

вот как бы сделать так чтобы и оптимизатор не трогал ассемблерный кусок кода ?
типа.....мне именно вот так надо, и не твоего ума это дело :))
Последний раз редактировалось FreshMan Ср окт 23, 2013 14:46:11, всего редактировалось 1 раз.
Tell Me The Truth
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

КодеВижн вашу ассемблерную вставку не тронет, не переживайте. В конце концов, напишите да и проверьте!
Docendo discimus
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

КРАМ писал(а):В пределах этого "вейера"?
Какая же скорость предполагается у сего УАРТа?
:facepalm:
Вопрос не в скорости УАРТа, а в скорости нарастания/спада фронтов на выходе микры. Пусть они хоть раз в секунду, хоть в три часа. :)
Тут где-то была тема про 1-wire с термометрами подключенными "звездой" - и скорости не высокие, а звенит в "звезде" только так.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Kavka писал(а):Вопрос не в скорости УАРТа, а в скорости нарастания/спада фронтов на выходе микры.

А каким образом скорость нарастания связана с работой УАРТа?
И причем тут 1-Wire? В огороде бузина...
"Звезда" по УАРТу контроллера до драйверов имеет ничтожную дальность, а значит и реактивные паразитные параметры линии.
Звон на выходе МК определяется ФРОНТОМ ГЕНЕРИРУЕМОГО СИГНАЛА. Чем круче фронт, тем сильнее звон. При прочих равных параметрах. Увеличение емкости в нагрузке УВЕЛИЧИТ длительность фронта и УМЕНЬШИТ звон. С точки зрения спектра сигнала он станет уже и волновые процессы в оставшемся спектре исчезнут за слишком малой длиной линий передачи.
С 1-Wire картина СОВЕРШЕННО другая.
Во первых, шлейфы длинные (это ВНЕсхемная линия передачи), во вторых она ВЫСОКООМНАЯ и несогласованная с волновым сопротивлением витой пары или чего там еще...
Отсюда и звон...
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

КРАМ писал(а):
Kavka писал(а):Вопрос не в скорости УАРТа, а в скорости нарастания/спада фронтов на выходе микры.

...
Звон на выходе МК определяется ФРОНТОМ ГЕНЕРИРУЕМОГО СИГНАЛА. Чем круче фронт, тем сильнее звон. При прочих равных параметрах. Увеличение емкости в нагрузке УВЕЛИЧИТ длительность фронта и УМЕНЬШИТ звон.
Во первых, подумайте, как крутизна фронта связана с со скоростью нарастания напряжения?
Во вторых, увеличение ёмкости, скажем так, на тракте точка-точка, это одно. На концах звезды это другое, и, в идеале, надо согласовывать звезду. В реальности, практически тотально, все на это забивают. Однако, пусть и редко, но встречаются вопли типа "я раньше так делал, а сейчас не работает". Поэтому об этом надо знать и быть готовым к непредвиденным последствиям. (чёт half-life вспомнился :)) )
Про 1-wire, да, может и не совсем удачный пример, как вы указали, из-за масштаба линий. Но ничего не мешает стечению обстоятельств сотворить "звенящую звезду" на плате.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Крутизна фронта и есть скорость нарастания напряжения.
Это полные синонимы.
Вы не поняли о чем я спросил.
Дело в принципе работы приемника УАРТа. Ему на фронты положить.... болт... :)
Мажоритарному приемнику нужен ПОТЕНЦИАЛ нуля или единицы необходимой продолжительности. Какой при этом был фронт - глубоко наплевать. Звоны звезды в пределах печатной платы от МК до драйверов - максимум 10 наносекунд...
Так о какой скорости УАРТа тут идет речь?
:dont_know:
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

Ааа... Вон куда вы упираете! Про принцип работы УАРТа - это да. Я и не спорю.
А про 10нс - это смотря как развести дорожки и каких размеров плата. Ладно, это я уже занудствую :)
Просто, IMHO, меры по предотвращению "звона", так сказать, это правило хорошего тона. Но как всегда - на вкус и цвет...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Kavka писал(а):А про 10нс - это смотря как развести дорожки и каких размеров плата.

Да как не разводи...
И размеры платы не имеют значения. Имеет значение РАССТОЯНИЕ между драйверами и МК.
Однако огромных плат с максимальным удалением драйверов и МК я чего то не встречал... Люди умнее, чем кажутся на первый взгляд...
Имеет значение КАЧЕСТВО ЗЕМЛИ на этой плате. Но плохая земля не создает звона. Плохая земля создает ПОМЕХИ ОТ ДРУГИХ СИГНАЛОВ. Поскольку суммирует токи разных сигналов и создает падение напряжения от этого тока приложенное ко входам всех этих сигналов.
Вот эти помехи СПОСОБНЫ нарушить работу УАРТа... :(
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

Можно ли реализовать на МК функцию удерживания кнопок (INT0 и INT1) в течение трех секунд и чтобы потом запускалась какая-нибудь задача.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Реализовать можно.
Но только САМОМУ. Помощь в таком случае гарантируется.
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

Сделал так:
if (EIFR == 0b00000011)
или
while (EIFR==0b00000011)
//EIFR = 0b00000000; //External interrupt flag register

только при очень четком одновременном нажатии кнопок срабатывает алгоритм, а надо реализовать удержание на 3 секунды.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ibiza11 »

так и считайте, что сначала одну кнопку нажимают, а потом вторую и держат обе. от этого и пляшите. "думайте как микроконтроллер"
Ставим плюсы: )
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

Код: Выделить всё

if (EIFR == 0b00000011)
или
while (EIFR==0b00000011)

Что сие означает? Поясните.
Docendo discimus
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

Перефразирую вопрос: каким способом организовать задержку в 3 сек., т.е. какими командами, может задействовать таймер или завести переменную и инкрементировать ее в цикле или какой-то счетчик...

pyzhman писал(а):

Код: Выделить всё

if (EIFR == 0b00000011)
или
while (EIFR==0b00000011)

Что сие означает? Поясните.

Просто в обработчик прерывания были вписаны эти команды и если нажата одна кнопка то в ней запускается условие и если оно совпадает т.е. флаги равны единицам то запускается команда.
Последний раз редактировалось service47 Пт окт 25, 2013 13:14:19, всего редактировалось 1 раз.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

Самый простой:

Код: Выделить всё

delay_ms(3000);

К добавке - ничё не понял. :)
Последний раз редактировалось pyzhman Пт окт 25, 2013 13:19:53, всего редактировалось 1 раз.
Docendo discimus
Ответить

Вернуться в «Разные вопросы по МК»