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

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

Сообщение pyzhman »

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

Сообщение FreshMan »

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

Сообщение vitalik_1984 »

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

Сообщение Engineer_Keen »

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

Сообщение pyzhman »

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

Сообщение FreshMan »

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

Сообщение pyzhman »

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

Сообщение Kavka »

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

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

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

Сообщение Kavka »

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

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

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

Сообщение Kavka »

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

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

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

Сообщение service47 »

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

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

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

Сообщение service47 »

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

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

Сообщение ibiza11 »

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

Сообщение pyzhman »

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

if (EIFR == 0b00000011)
или
while (EIFR==0b00000011)
Что сие означает? Поясните.
Docendo discimus
Контактная информация:
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Сообщение service47 »

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

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

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

Сообщение pyzhman »

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

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

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

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