Например TDA7294

Форум РадиоКот • Просмотр темы - WinAvr в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 13:46:08

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2102 ]     ... , , , 97, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пт мар 04, 2016 20:11:02 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
ARV писал(а):
учтите, я ответил на ваши вопросы, но что вы там при помощи этих советов накодите, будет целиком на вашей совести

P.S. кстати, static-функции достаточно неплохо инлайнятся автоматически при включении оптимизиции, особенно, если вызываются из одного места :)))

ОК. Спасибо.
Пожалуй я смогу выйти из своего затруднительного положения с малой кровью. Для этого нужно оформить все функции в "фиктивном" прерывании. И которое буду вызывать программно перед выходом из основного. Единственный недостаток - потеря 1 вывода чипа.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пт мар 04, 2016 20:38:37 
Встал на лапы

Карма: 4
Рейтинг сообщений: 3
Зарегистрирован: Чт фев 11, 2016 18:35:37
Сообщений: 139
Рейтинг сообщения: 0
OKF писал(а):
Для этого нужно оформить все функции в "фиктивном" прерывании. И которое буду вызывать программно перед выходом из основного.
Неясно, каким образом это избавит код от пролога и эпилога?
OKF писал(а):
Единственный недостаток - потеря 1 вывода чипа.
Снова непонятки - как перенос кода из одной процедуры в другую приводит к потере "ноги" в карте занятости I/O?

_________________
- Из овощей я больше всего люблю пельмени... © Соседский Мальчик


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 18:25:02 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
L.O.D писал(а):
Снова непонятки - как перенос кода из одной процедуры в другую приводит к потере "ноги" в карте занятости I/O?

А если подумать... Программное прерывание к.о. будем вызывать?
"Сейчас буду обьяснить. Возможно с ногой..." Молдавский юмор.


Последний раз редактировалось OKF Ср мар 09, 2016 18:27:33, всего редактировалось 1 раз.

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 18:26:27 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
OKF писал(а):
Программное прерывание к.о. будем вызывать?
зачем?! :shock:

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 18:29:19 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Что бы "большой" пролог был не в начале.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 18:44:35 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 3
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
у вас какое-то странное понимание поведения компилятора.
искусственно генерируемое прерывание в конечном итоге ничем не лучше простого обращения к функции.
пролог в обработчике прерывания делается только на основе двух фактов:
1. используемые переменные в обработчике
2. обращения к функциям из обработчика
первый пункт означает, что если переменных в обработчике задействовано минимум, минимальным будет и пролог. всегда в прологе сохраняется SREG и один из регистров (точно не помню, какой именно). если одним этим регистром удастся обеспечить логику обработчика, ничего больше в прологе не будет. соответственно и в эпилоге
второй пункт означает, что если в обработчике есть обращение к функциям из библиотек или других модулей, то в прологе всегда будут сохранены ВСЕ РАБОЧИЕ РЕГИСТРЫ в стек, если я не ошибаюсь, это начиная с r16 и далее по порядку. ну и SREG с дополнительным регистром, само собой
если же в обработчике используются функции из этого же модуля, пролог с эпилогом будут какими-то средними по отношению к описанным вариантам.
если используемые в обработчике функции будут static, то с большой долей вероятности они могут быть проинлайнены в обаботчик, но это не гарантия - надо контролировать по листингу

в общем, ваши загадочные телодвижения скорее говорят о неправильном подходе к решению вашей задачи, нежели о реальной необходимости уменьшать "пролог".

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 19:21:57 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Я уже писал, что мне нужна быстрая реакция на прерывание.
А функций из других модулей не позволяют иметь короткий пролог.
Оформив функции в искусственном прерывании. и программно вызывая его (уже после быстрой реакции на прерывание), я получу требуемый эффект. И в этом как раз и будет отличие программного прерывания от функции/функций внутри прерывания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 19:57:49 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
не понимаю. не могли бы вы более подробно рассказать, что за загадочно быстрой реакции вы добиваетесь, но при этом обязательно с каким-то переподвыподвертом?
в чем быстрота реакции должна проявляться?

из ваших слов я понял такое:
1. возникло прерывание
2. вы попадаете в "быстрый" обработчик
3. перед завершением быстрого обработчика дрыгаете ножкой, которая вызывает запрос на очередное прерывание, "медленное"
4. выходите из "быстрого" прерывания, программа отрабатывает 1 команду и попадает в "медленный" обработчик
5. в медленном обработчике с большим прологом что-то страшное делаете с помощью всяких функций
6. завершаете "медленный" обработчик

я верно все понял? в каком месте по-вашему происходит "быстрая" реакция на первый запрос прерывания?

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 20:09:01 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Да, Вы всё правильно поняли. И поэтому мне непонятен Ваш вопрос...
Очевидно же, во 2-м пункте. Именно в нём я отвечаю на прерывание по изменению сигнала в линии.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 20:29:35 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 623
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Сообщений: 8007
Откуда: Лукалэнд
Рейтинг сообщения: 0
Очевидно лишь то, что во втором пункте никакой реакции не происходит. Реакция на внешнее событие явно где-то дальше. Толку от того, что быстро вошли в обработчик, если никакой поставленной задачи не выполнено, ничего не обработано.
Не понятно, что мешает показать код. Или огласить полностью задачу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 20:34:44 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
"Я фигею, дорогая редакция!"
Вы лучше меня знаете что происходит во 2-м пункте и даже ещё раньше.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Ср мар 09, 2016 21:06:23 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Получается что вам необходима быстрая реакция на прерывание, что-то быстро зафиксировать а уже потом можно делать отложенные вычисления и скорость этих вычислений уже не так важна. Так почему бы тогда в прерывании не зафиксировать это что-то, выставить признак фиксации а обсчёт и вызовы подпрограмм переложить на основной цикл.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Чт мар 10, 2016 05:58:46 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Сейчас так и делается.
Но, занимаясь другой задачей, не всегда успеваю обслужить результат обработки прерывания.
Поэтому и хочу ВСЮ обработку возложить на прерывание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пт мар 11, 2016 01:09:24 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 623
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Сообщений: 8007
Откуда: Лукалэнд
Рейтинг сообщения: 0
OKF писал(а):
"Я фигею, дорогая редакция!"
Вы лучше меня знаете что происходит во 2-м пункте и даже ещё раньше.
"Мы" ничего не знаем. Сплошные тайны. Хочется возложить на прерывание - надо возлагать :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пт мар 11, 2016 02:23:08 
Встал на лапы

Карма: 4
Рейтинг сообщений: 3
Зарегистрирован: Чт фев 11, 2016 18:35:37
Сообщений: 139
Рейтинг сообщения: 0
OKF писал(а):
А если подумать... Программное прерывание к.о. будем вызывать?
Пардон, полагал, что под "фиктивным прерыванием" имеется ввиду функция.

_________________
- Из овощей я больше всего люблю пельмени... © Соседский Мальчик


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вс май 15, 2016 13:29:27 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Подскажите пожалуйста как определить структуру в сегменте кода и по указателю на эту структуру, передаваемому как параметр, обращатся к её полям? В мануалах везде только про строки и их массив.

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вс май 15, 2016 15:27:06 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Сама структура объявляется как обычно. Переменные - экземпляры структуры создаются как обычно, с указанием const PROGMEM. Ну а доступ к полям - через pgm_read_xxx, где xxx зависит от разрядности поля.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн авг 29, 2016 19:58:00 
Первый раз сказал Мяу!

Зарегистрирован: Вс май 22, 2016 21:19:03
Сообщений: 29
Рейтинг сообщения: 0
Здравствуйте!
Давно уже пользуюсь WinAVR, ни когда не было ни каких проблем.
Устанавливал на Windows 8.1, 10 x64 все прекрасно работало.
И вот сегодня возникла проблема: при компиляции появилась ошибка.

Couldn't reserve space for cygwin's heap, win32 error 0

Пожалуйста помогите!

P.S. Проверил на AVR Studio 4.19, та же ошибка.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вт авг 30, 2016 22:27:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Подобная манипуляция с msys-1.0.dll не помогает?



Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re:
СообщениеДобавлено: Пн ноя 21, 2016 12:46:09 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт апр 26, 2012 14:30:40
Сообщений: 93
Откуда: под Москвой
Рейтинг сообщения: 0
factorial писал(а):
Она гадина в цикле ни с нуля считает (просматривал в AVR4). Да и в прерывании, ей почемуто ничего неприсваиваеться. И при компиляции выскакивают такие сообщения:
5.c:25: warning: type defaults to 'int' in declaration of 'N'
Тоесть компилятор незнает что N имеет тип integer, хотя обявлено вроде нормально.


он ее должен был вообще выбросить, т.к. переменная нигде больше не используется
volatile наше все

используйте uint16_t (int16_t) при объявлении, перестанет ругаться


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2102 ]     ... , , , 97, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y