Вопрос по программированию задержки внутри прерывания

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

shonty писал(а):Суть асм-а в максимальном контроле
вот потому я и пишу только на ассемблере.
а еще я не хочу, чтобы компилятор с Си мне "насрал" в хекс много лишнего "мусора".
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Demiurg »

Микроконтроллеру плевать что крутить. Это деталька. Она крутит что ей задано. И ваше мнение, что крутить. Полезно, не полезно. Целесообразно, или нет. Этой детальке плевать с высокой колокольни. Что крутить.

Добавлено after 2 minutes 52 seconds:
Я к тому. Что мы приписываем что то личное. МК крутит программу. Он не устанет. Что бы он там крутил. А мы порой что то личное приписываем МК.

Добавлено after 9 minutes 36 seconds:
Это. Друг. Сходи на ипподром. На коне поскакай. Простату промассируй. Вся твоя импотенция пройдет.
Жёстко. Да.
Это мой тебе совет против импотенции.
Научно.
Последний раз редактировалось Demiurg Вт янв 14, 2025 21:45:12, всего редактировалось 2 раза.
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

вот именно личное - я делаю так, как мне лично удобно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопрос по программированию задержки внутри прерывания

Сообщение BOB51 »

Робятки - КОТЯРЫ!
Это обсуждение не по профилю вопроса топикстартера!!!
:tea:
Ежли есть желание продолжить (про борьбу со стеком и подобное) - надоть все излишнее отсюда вынести...
Например ко мне сюды(в хвост темы):
https://www.radiokot.ru/forum/viewtopic ... 2&t=156720
Там и разложим по косточкам. Можно и с примерами макетов/программок.
:write: :solder:
:wink:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Вопрос по программированию задержки внутри прерывания

Сообщение shonty »

Добрый вечер :beer: :)))
Ну я же не зря инструкцию процитировал выше))
Возврат из прерывания. Адрес возврата загружается из СТЕКА и устанавливается флаг глобального прерывания.
В обсуждаемом коде нет никаких противоречий инструкцуии от Атмел.

Положили в стёк, а команда reti тут же извлекла.
Всё по инструкции)) Нет проблем же :dont_know: :)))
Реклама
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Demiurg »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4671531#p4671531"][quote="shonty"]а еще я не хочу, чтобы компилятор с Си мне "насрал" в хекс много лишнего "мусора".[/uquote]
Глупости и заблуждение. Я сам сидел на асме несколько лет. И мне давно говорили, переходи на си. И я упирался. Потому что не понимал, что мне говорят.
А весь прикол в том, что я уже мыслил "объектно". Переменные, функции и так далее. И ассемблер стал мне мешать. А главные трудности начались, когда я начал использовать развитое меню. Указатель на указатель на указатель. На этом этапе я прекратил писать на асме. Я пытался перейти на си. Было непросто. И я сделал так. Остановил все свои работы и проекты. Пока не получится. Получилось.
Плюсы которые я получил:
Разработка проектов по времени уменьшилась в разы. Так как на асме уже мыслил "объектно". Мне стало проще. Мы теперь оперируем понятиями объекты.
То что компилятор "мусора набросает". Это не так. Со временем, с опытом поймёте.
Нужно переломить себя. Я переломил. Намеренно остановил все работы и проекты. Поставил себе задачу. Войти в си. Научиться.

Как ярый ассемблерщик, я согласен. На ассемблере ты типа рулишь всеми процессами. Но, если это хобби. Нюансы....
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

у меня это хобби, которое мне помогает делать для себя полезные вещи. а еще некоторые мои проекты пользуются большой популярностью на форумах.
для компьютера я пишу на С++, естественно, для компа писать на ассемблере не реально.
по поводу "мусора". я тут на форуме где-то писал про мои исследования типа float - то, что мне скомпилирует компилятор на Си.
уже не помню точные результаты, но на "чистом" ассемблере те же операции получились у меня на много меньшего размера.
а пара моих самых больших проектов (оба есть на форуме, размер примерно 4,2 кБ) на Си в АТмега8 не поместились бы точно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Вопрос по программированию задержки внутри прерывания

Сообщение shonty »

Я например не мыслю "объектно". Классы и свойства я органически не принимаю :dont_know:
И зачем мне себя "ломать" :dont_know: Тем более яву не является решением всех проблем.

Языки программирования это своего рода философии, и каждый выбирает под свою внутреннюю организацию.

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

Если восприятие и отношение к стёку у всех разное. Что ж теперь? Подстраиваться под чьё-то мнение?

:beer:

Добавлено after 7 minutes 3 seconds:
Если кто-то "себя сломал", то пусть не думает, что ему удастся "сломать" shonty :))) :)))
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Demiurg »

У меня есть проекты на асме. Выхлоп более 10-15 kB. Это очень тяжело. Да асм. Там много хаков и приемов. Но это тяжело. И я устал. Возиться с регистрами, ячейками памяти.
Когда я стал использовать меню, это стало в разы тяжелее. Потому я ушел из асма. Это ОЧЕНЬ тяжело.
Держать всю программу в голове и проворачивать все это.
Можно. Я это делал. Но очень тяжело. Можно с ума сойти.

Добавлено after 7 minutes 5 seconds:
Иногда приходится себя ломать. Когда ты видишь некоторые ограничения.
Например. Моральные рамки. Это я уже лишнее сказал.
Сложно. Не описать....

Добавлено after 16 minutes 57 seconds:
Насчёт пары байтов. Уже давно нет смысла экономить на паре байтов. Тем более, если дисплей и меню.
Цена за объем памяти уже давно перестала играть роль.
Это раньше нужно экономить байты на первых МК AVR. Я уже забыл какой там был один из первых. На нем немало книг было написано.
Мало Меги8. Бери с большей памятью. И не греби себе моск.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

мне не надо с большей памятью, мне для моих домашних дел Мега8 с огромным запасом.
не знаю, может, "моск" у нас разный. но для меня не составляет труда держать все регистры и используемые ячейки памяти в моей памяти ("моске"). мне ЛЕГКО!

Добавлено after 25 minutes 28 seconds:
самый здоровый, причем, абсолютно здоровый, мой орган - это мой мозг - до сих пор работает великолепно! чего нельзя сказать о других частях и органах внутри меня.
а уже скоро, в феврале, мне исполнится 74 года.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопрос по программированию задержки внутри прерывания

Сообщение BOB51 »

Вот же спорщики...
Повторю то, что уже раньше в котуинке говорилось...
Сложность с ассемблером начинает проявляться по мере роста размера исходника и перехода к многофайловым проектам.
Это ежли по "классике" запускать компилятор, прописывая каждый раз в строке запуска ВСЕ файлы проекта.
Однако тому есть и вполне работоспособная альтернатива. Причем вполне удачно реализующая и подобие "библиотек".
Естественно нагрузка на внимание при ручной сборке чуток больше - но вполне возможно не до конца еще отработаны возможности компиляторов - занимаюсь "по прецеденту" роста проектов (и в основном для mcs51).
СИ также по фэншую требует работы с make файлом...
Однако в случае применения IDE такая необходимость уходит на "задний план" до определенного уровня проектов пользователя.
Особо заметно для пользователя ардуиноIDE - там минимум возни с настройками компилятора.
Тот же результат и с ассемблером, ежли "слэнг" применять - всего один запускающий файл на весь проект (проверено и на mcs51 и на PIC и на AVR)...
А что удобнее использовать - то уже на выбор пользователя. Тем более, что по мере освоения появляется много полезного из приемов, используемых в "соседних" компиляторах.
:beer:
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Demiurg »

74 года. Ого. Моё почтение!
Интеллектуальный склад ума. Читал в научных материалах. Люди с высокой организацией ума живут дольше, оставаясь в ясном разуме.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Вопрос по программированию задержки внутри прерывания

Сообщение shonty »

BOB51 писал(а):Сложность с ассемблером начинает проявляться по мере роста размера исходника и перехода к многофайловым проектам.
Как по мне, то тут как раз сложностей нет.
Так же подключаешь "библиотеки", только свои.

Касаемо многоуровневых ветвлений и условий, то это в любом языке можно запутаться :dont_know:
Ну да, нет очевидной проверки условий типа if->then->else, это основное, что меня напрягало первое время.. Но со временем просто совсем другие приёмы организации кода выработались.

На счёт объёма. Я мегу328 использую только для тфт 240*320, но это больше из-за объёма данных. Если тфт 128*160, то по разному, но меги8 в большинстве случаев хватает.
м328 и LGT только для работы с большими дисплеями.

Почему то бытует мнение, что асм - то это нужно всё писать от начала до конца :dont_know:
И, как будто в других языках ничего писать не нужно..
Это как слоган раньше был: "ардуино - паять ничего не нужно", что бы побольше адептов заманить)) и нужно сказать получилось :)

Для меня самое скорее не сложное, а затратное в асме, что нужно разбираться с каждым конкретным датчиком или другой периферирей самому. Тут даже не спорю. Иногда достаточно много времени уходит и не всегда интернет в помощь. Бывает, что и недели уходят, бывает откладываю, а потом возращаюсь. Но, сделав один раз и нормально откоментировав, вопрос закрывается (ну если только под другие условия не приходится адаптировать, но там изменения минимальны)
Недавно ради интереса at90s2313 попробовал в небольшом проекте. Необходимые наработки подошли с минимальными изменениями. Даже удивился, как бысто сделал :dont_know:
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Demiurg »

"много файлов" это нормальная ситуация. Дисплей отдельно, кнопки клавиатура отдельно, какая то периферия отдельно. Что асм,, что си. Проект собирается как конструктор. Из кубиков-файлов.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Вопрос по программированию задержки внутри прерывания

Сообщение COKPOWEHEU »

[uquote="BOB51",url="/forum/viewtopic.php?p=4671663#p4671663"]Сложность с ассемблером начинает проявляться по мере роста размера исходника и перехода к многофайловым проектам.[/uquote]
Если придерживаться конвенций (через какие регистры передаются параметры, какие можно трогать, какие нельзя, где и как расположен стек, ...), сложность нарастает точно так же линейно, как с любым другим языком. А если придерживаться не просто конвенций, а существующих конвенций, то и с вызовом сторонних библиотек никаких проблем не будет. Если они не на С++ написаны, конечно.
shonty писал(а):Но со временем просто совсем другие приёмы организации кода выработались.
Вот тоже когда-то плюсовики спрашивали "что вы используете вместо классов, полиморфизма и всего такого?", и не знаешь что ответить. Если не писать на Си в стиле С++, то в терминах классов или полиморфизма просто не думаешь.
А с теми же конвенциями наоборот: когда знаешь как они используются в Си, стараешься и ассемблерный код под это подстраивать. Благо усилий это почти не требует.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

по поводу размера кода - мне на форумах много раз возражали и пытались убедить, что сишный код по размеру мало уступает ассемблерному.
ну да, если на ассемблере писать по правилам сишного компилятора, то выигрыша не увидишь.
я уже где-то говорил, что найденный в инете загрузчик, написанный на Си, я переделал, и с тем же функционалом длина загрузчика стала примерно в 3,5 раза меньше.
соответственно, мой загрузчик потребовал в 4 раза меньше загрузочную область - 512 байт против 2 кБ.
так что, сказки про выигрыш в 10-15% - брехня. а 250%, как у меня получилось, не хотите?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Demiurg »

Загрузчики не писал ни разу. Вот не было такой задачи. Всегда были под руками родная atmeli-овская STK-500 и AVRISP MKII.
Про байты я уже писал. Это раньше надо было байты экономить. Вопрос цены за байт-мк. Уже давно не особо смотрю на выхлоп. Слез с асма и забыл про эту проблему.

Много лет уже прошло. Нашел старые проекты на ассемблере. Где были игры со стеком. Диспетчер. Типа РТОС-ка. Даже protothreads-ы делал на ассемблере.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Jack_A »

[uquote="Demiurg",url="/forum/viewtopic.php?p=4671591#p4671591"]я уже мыслил "объектно". Переменные, функции и так далее.[/uquote]
И что же тут объектного? Переменные, функции - это азбучные понятия любого, даже самого простого процедурно-ориентированного ЯВУ, хоть бы древнего Турбо Си от Борланда, которому до объектно-ориентированного - как до Луны пешком.
Классы, объекты, инкапсуляция, наследование - наше всё. Так говорят апологеты объектно-ориентированных языков.
СпойлерМеня же это ввиду древности и ретроградности (моей) не коснулось, увы. Хотя пишу на Дельфи, но использую его как конструктор Лего - готовыми объектами. Не для АВР, конечно. Для ПК.
А спор асм vs ЯВУ древний, как не знаю что, и столь же бессмысленный. Одно можно сказать точно: зависит от конкретной задачи и от конкретных потребностей или предпочтений разработчика. Кому - таторы, а кому - ляторы.
СпойлерДа, и ещё. Для меня, когда программирую на асме, переменные, функции,массивы и пр. - существуют и никуда не деваются. Но об этом - никому! :)
Изображение
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

и вот что любопытно.
поскольку я активно пишу для компа на С++, сишные операторы крутятся у меня в голове.
когда для МК на ассме нужно провести сравнение, мысленно я произношу "иф ...".
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Вопрос по программированию задержки внутри прерывания

Сообщение Starichok51 »

создал новую тему про загрузчики и перенес туда практически все разговоры про загрузчики.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ответить

Вернуться в «AVR»