Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

a5021 писал(а):Повышая частоты, повышаются накладные расходы на вызов прерываний. Вход в прерывание и выход из него, суммарно обходятся в ~20 (не помню до единиц точно) тактов процессора. Для 8кгц это оборачивается в 1% всего процессорного времени. Это время, в течении которого полезных действий не производится с точки зрения алгоритма. Для 32к потери составят уже 4%.
oleg110592 писал(а):чтоб не было накладных расходов на вызов прерываний, есть способ
Вот он. STM8S, в железе. И никакие расходы не повышаются. Сэмплы 64К, прерывания/обновление 8К, ШИМ 8бит, Duty Cycle 75%, в прерывании дрыг ногой для визуализации процесса.
stm8s_64k.png
(66.71 КБ) 418 скачиваний
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Не вижу я тут ничего в железе. Скрин непонятно чего вижу, а более, увы.
Реклама
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

И я не вижу! Где обещанные вами потери 4% для 32к или 8% для 64к? Одно прерывание на восемь сэмплов.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Вам бы не в силаю таращиться, а разбираться, как вообще МК работает. Потери во времени обработки кода, а не в точности следования событий таймера. Таймер железный, ему пофиг, что там с кодом происходит.
Реклама
Эиком - электронные компоненты и радиодетали
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

Какие потери? Откуда? Можете объяснить? Или у вас спор ради спора? Зашли в прерывание, загрузили данные в таймер, запустили ADC, вышли. Всё! Большие расходы по времени? Неужели? И так через каждые 125мкс.
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Каждое прерывание предваряется процедурой сохранения текущего состояния процессора. В данном случае это сохранение значений рабочих регистров МК в стеке. Выполнение команд сохранения занимает не менее девяти тактов процессора. Выход из прерывание откатывает эту процедуру в обратном направлении, на что уходит еще 11 тактов. Итого: 20. Все это в картинках изображено на стр. 25 документа под названием Rm0016. Двадцать тактов по времени это 20/16000000 = 1.25 микросекунды. Прерываний за секунду у вас случается 8000. Отсюда, 1.25 х 8000 = 0,01с. или ровно 1% времени каждую секунду процессор занят сохранением состояния перед прерыванием и восстановлением после. При чем тут "спор ради спора"? Меня с детства учили отвечать за свои слова.
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Программирование STM8

Сообщение dosikus »

a5021 писал(а):Вам бы не в силаю таращиться, а разбираться, как вообще МК работает.
Весьма интересное изречение . А как вы разбираетесь с работой МК и периферии? Как один ныне почивший саксаул - чистА умственными выкладками , али симулятор терзаем?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Да вот представьте, хватает выкладок и осциллографа.
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

a5021 писал(а):Прерываний за секунду у вас случается 8000. Отсюда, 1.25 х 8000 = 0,01с. или ровно 1% времени каждую секунду процессор занят сохранением состояния перед прерыванием и восстановлением после.
И что? Предлагаете не пользоваться прерываниями? Предложите что-то лучше. 1-2% - не велика потеря.
При чем тут "спор ради спора"? Меня с детства учили отвечать за свои слова.
Тогда и ответьте, откуда здесь 8% для 64к?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Программирование STM8

Сообщение dosikus »

a5021 писал(а): и осциллографа.
К чему тогда ваш в*сер в сторону л.а., который более функционален в данном случае?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Вы сегодня, видать, с чтением мануалов переусердствовали. У вас глюки начались. Я в адрес силаи ни пол слова плохого не сказал.

Kinder_Surprise писал(а):И что? Предлагаете не пользоваться прерываниями?

Ничего я не предлагаю. Ухудшение отклика неизбежная плата за прерывания. Для слабонагруженных систем это не имеет никакого значения, но там, где производительность может оказаться исчерпанной, о накладных расходах приходится задумываться.
Тогда и ответьте, откуда здесь 8% для 64к?
Мне казалось, что для выяснения этого вопроса вам должно было хватить простейших арифметических навыков: 64/8 = 8.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Программирование STM8

Сообщение dosikus »

a5021 писал(а):Вам бы не в силаю таращиться
Надо же, это не вы писали? Очередные - вранье и клоунские увертки... :)))
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

a5021 писал(а):там, где производительность может оказаться исчерпанной, о накладных расходах приходится задумываться.
Без прерываний вообще не сложится, так что тут думать?
64/8 = 8.
Восемь чего? Вход в прерывание, занести данные в таймер, считать значение ADC, запустить ADC и выход - ~3мкс. Это 2,4% (3мкс/125мкс) при 64к, но никак не 8%. Это про всё, а не просто войти/выйти в прерывание. 97,6% остаётся, это не мало! А хватит на езернет или нет, это уже другая песня.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

dosikus писал(а):
a5021 писал(а):Вам бы не в силаю таращиться
Надо же, это не вы писали? Очередные - вранье и клоунские увертки... :)))
И каким дерьмом, вам показалось, я в этой фразе облил силаю? Не отпускают, выходит, глюки и наваждения?
Kinder_Surprise писал(а):Без прерываний вообще не сложится, так что тут думать?
Думать следует о том, как не злоупотреблять. Отказываться от прерываний никто не предлагал.
Восемь чего?
Процентов, чего же еще. Если прерывание случающееся с частотой 8000 раз в секунду отжирает 1% вычислительного ресурса, то прерывание следующее с частотой 64000 раз отожрет 8%. Это арифметика.
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

a5021 писал(а):Думать следует о том, как не злоупотреблять. Отказываться от прерываний никто не предлагал.
Тогда к чему вся ваша никому ненужная чушь про прерывания и такты? Одно короткое прерывание, раз в 125мкс, небольшая потеря.
Процентов, чего же еще. Если прерывание случающееся с частотой 8000 раз в секунду отжирает 1% вычислительного ресурса, то прерывание следующее с частотой 64000 раз отожрет 8%. Это арифметика.
Понятно. Вы не в теме, да ещё плохо с математикой и со зрением. А вот и момент истины. Где вы видели "прерывание следующее с частотой 64000"? Прерывания с частотой 8000, т.к. исходный материал 8000Гц, а сэмплирование - да, 64000! Так что вашим 8% просто неоткуда взяться.
Учите матчасть, читайте даташит, просвещайтесь!
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Программирование STM8

Сообщение dosikus »

У него после аурдуньи каша в голове да еще и постоянно врет по привычке ... :)))
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Kinder_Surprise писал(а):Понятно. Вы не в теме, да ещё плохо с математикой
И у меня с математикой плохо? Вот же нифига себе! Как-то я совсем не хочу в вашу компанию. Покажите же скорее, где вы это обнаружили.
А вот и момент истины.
Не хотел бы я, чтобы истина имела столь неприглядный вид.
Где вы видели "прерывание следующее с частотой 64000"?
И что, по вашему, может фундаментально мешать прерыванию случаться с частотой 64к?
Учите матчасть, читайте даташит, просвещайтесь!
Заклинания насчет даташита кого-то мне неуловимо напоминают.
dosikus писал(а):У него после аурдуньи каша в голове да еще и постоянно врет по привычке ... :)))
Ну это вообще не наезд, а халтура какая-то. Я вам эту сцену не засчитываю. Идите, репетируйте и отыграйте, как положено. На вас же зрители смотрят.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Программирование STM8

Сообщение dosikus »

a5021 писал(а): Ну это вообще не наезд, а халтура какая-то.
Это констатация фактов.
Вы только что круто обделались, обсчитав сферического коня в вакууме. На лицо полное не понимание как и архитектуры в целом так и выхлопа звука через PWM в частности.
Хотя есть ничтожная надежда что, ваш мозг не поспевает за руками и строчите вы даже не подумав.
Но все же нет , это просто ваша природная тупость, отягощённая аурдуньей.

И далее , вы нисколько не повзрослели с предыдущей дискуссии, с участием ЛИ. Все тот же эпический гонор нуба-первооткрывателя ...
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

dosikus писал(а): Вы только что круто обделались, обсчитав сферического коня в вакууме.
На лицо полное не понимание как и архитектуры в целом так и выхлопа звука через PWM в частности.
Но пальцем ткнуть, где именно, предусмотрительно не рискуете? Понимаю вас.
Kinder_Surprise
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс июн 07, 2015 20:45:22

Re: Программирование STM8

Сообщение Kinder_Surprise »

А толку? Вы же не видете и не слышите. Только абзацы с журнала "Юный ардунолюбитель" переписываете, не вникая в суть.
Ответить

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