Например TDA7294

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

Текущее время: Пт дек 12, 2025 12:41:49

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2195 ]     ... , , , 106, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Сб дек 09, 2023 16:38:00 
Встал на лапы

Зарегистрирован: Вс авг 01, 2010 16:05:25
Сообщений: 134
Рейтинг сообщения: 0
Выскакивает вот такая ошибка Programmer's Notepad 2 has experienced an unexpected problem and is going to close, we apologise for this inconvenience.

Would you like to save a diagnostic file to aid the development team in fixing this problem?
Что делать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн дек 11, 2023 12:06:30 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18445
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Переходить на нормальную IDE

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пт сен 06, 2024 20:28:30 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн май 04, 2015 12:30:18
Сообщений: 68
Рейтинг сообщения: 0
Доброго всем времени суток!
Пользуюсь Microchip Studio 7.0.
При написании программ (ранее мучал только atmega8) обратил внимание, что при заполнении более 80% flash program memory начинаются всякого рода глюки.
Я пишу свои программы последовательно, т.е. - подсоединил индикатор, написал, скомпилировал, залил в микроконтроллер, проверил - работает. Далее подключаю (к примеру) энкодер, пишу, проверяю. Ну и так далее. И когда устройство полностью функционирует, пишу сервисное меню и прочие рюшечки, которые сжирают львиную часть памяти. И при написании которых и появляются те самые глюки которых раньше не было.
Закон четности ошибок? - Не думаю... :)
Сейчас бьюсь с программой для 3х канального регулятора мощности. И как всегда - основная программа работает, но требуется добавить при запуске измерение мощности нагрузки подключенной к каждому каналу. Пишу следующую функцию:
Спойлерfloat Power_Measurement (void)
{
float power;
производит измерение напряжения, тока, мощности.
вычисляет произведение измеренного тока на измеренное напряжение и сравнивает с измеренной мощностью.
если разница межу измеренной и вычисленной мощностью меньше 1%, тогда:
power += измеренной мощности
счетчик++
И так 10 раз.
return power/10;
}

В основном тексте программы пишу:
Спойлерfloat electric_power[3];
…………..
int main(void)
{
……………………………………………………………………………..
PORTB &= ~(1<<PB1); //включаем ТЭН1
electric_power[0] = Power_Measurement();
PORTB |= 1<<PB1; //отключаем ТЭН1
PORTB &= ~(1<<PB2); //включаем ТЭН2
electric_power[1] = Power_Measurement();
PORTB |= 1<<PB2; //отключаем ТЭН2
PORTB &= ~(1<<PB3); //включаем ТЭН3
electric_power[2] = Power_Measurement();
PORTB |= 1<<PB3; //отключаем ТЭН3
………………………………………………………………………………
Выводим на дисплей electric_power[0]
Выводим на дисплей electric_power[1]
Выводим на дисплей electric_power[2]
…………………………………………………………………………………
while (1)
{
...........
}
}

И на дисплее видим только мощность ТЭН1, а мощность ТЭН2 и ТЭН3 отображаются как -0,0.
При чем, видно, что нагрузка ТЭН2 и ТЭН3 - включаются и отключаются, функция Power_Measurement() - вызывается, замеры идут, а в electric_power[2] и electric_power[1] - не возвращаются значения из функции.
Понятно, что дело в драйвере руки.sys. Машина не виновата. Она делает то, что ей сказано.
:idea: Не уже ли волшебный volatile float electric_power[3] - поможет?
P.S. Сейчас проверить не могу т.к. до прочтения этой уже начал пользоваться этим девайсом и он у меня в гараже. В ближайшее время принесу домой и попробую. Но это не единственный глюк. Есть и более странные.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Сб сен 07, 2024 13:19:05 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 41
Зарегистрирован: Вт фев 09, 2010 17:52:26
Сообщений: 474
Рейтинг сообщения: 0
BDDW писал(а):
обратил внимание, что при заполнении более 80% flash program memory начинаются всякого рода глюки.

Никакого отношения к реальности. Программа ничего не знает о занятой памяти, поэтому это не может влиять на работу.

По программе, просто нужна отладка.
Или в железе или нп. в протеусе.

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


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Сб сен 07, 2024 15:32:45 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1267
Рейтинг сообщения: 0
BDDW писал(а):
return power/10;

Нужно писать вот так:
Код:
return power/10.0f;

Перечитайте про приведения типов и, особенно, про то, к какому типу по умолчанию приводятся числовые значения. И гляньте на сгенерированный компилятором код до правки и после.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Сб сен 07, 2024 18:06:45 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Сб сен 28, 2024 09:26:23 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
BDDW, еще обратите внимание, сколько ОЗУ у вас занято. Иногда бывает, что стек наползает на область данных и начинаются интересные глюки )

_________________
Белая и Пушистая


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

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6191
Откуда: Minsk
Рейтинг сообщения: 0
Ну вот, человек пишет на языке высокого уровня, а ему - про стек. "Не моё это царское дело, пусть у компилятора голова про это думает". Так?

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вс сен 29, 2024 01:38:30 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Jack_A, а ЯВУ типа Си - он мазохист. И получает цифровое удовольствие, когда программист стреляет себе в ногу.
На самом деле вычислить, сколько стека максимум может отгрызть программа - нетривиальная задача....
У меня была ситуация, когда стек налазил на ОЗУ и немножко портил данные.
Пришлось переделать немного алгоритм, высвободив еще сотню байт.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вс сен 29, 2024 01:48:25 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
А не надо вычислять. Это можно смотреть и об этом должно помнить. Ну или хотя бы знать :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вс сен 29, 2024 11:31:25 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Martian, не всегда получается вычислять. А вот какие то средства мониторинга - заполнить ОЗУ значениями какими то и потом контролировать область "порчи" этих значений - можно... но опять же, когда есть нормальный отладчик, что позволяет заглянуть в МК - это одно. А когда нужно что то отдельно писать - это уже другое. Хотя в каком то NAKED-прерывании (для AVR) нарисовать на асме кусочек кода и раз в секунду пробегать по ОЗУ, контролируя первый и последний адреса, где сохранилось ожидаемое значение - и сохранять эти значения в еепромку - можно.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Вс сен 29, 2024 12:39:51 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6191
Откуда: Minsk
Рейтинг сообщения: 0
На самом деле вычислить, сколько стека максимум может отгрызть программа - нетривиальная задача....

Поскольку для МК я всю жизнь пишу на асме - то для меня это и не задача вовсе :)
Не хочу в 100500й раз сваливаться в холивар asm vs ЯВУ . Как говорят в таких случаях художники: "Я так вижу" :))
СпойлерКогда-то, на закате моей молодости :) работая в НИИ, я со своей командой делал софт для очень серьёзной АСК (военка). И весь программный комплекс писали на асме (СМ-4 = PDP-11). Конечно, для максимального быстродействия интерпретирующей системы асм - без вариантов, но компилятор можно было накропать и на ФОРТРАНЕ, и на только появившемся для этой платформы Си. А тогда почему? Спросите чего-нибудь полегче... Иногда потёмки - не только чужая душа, но и собственная.
Но в те благословеные года :) тема длилась не днями - годами :shock:

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн сен 30, 2024 11:58:19 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Jack_A, да не холивар это. Просто в нонешних реалиях гораздо проще и быстрее 99% кода нарисовать на ЯВУ, нежели вырисовывать его на асме ради 30% экономии размера кода.
А 1% остается на критичные задачи, когда их проще нарисовать на асме, нежели думать, как их компилер откомпилит.
Я на АВРках и сейчас иногда прибегаю к ассемлерным вставкам. Но только иногда. Обычно хватает ЯВУ и знаний, как тот или иной код должен работать и как он компилится в асм.

PORTB |= 0x03 компилится (-О1) в три команды - IN, ORI, OUT
а
PORTB |= 0x01;PORTB |= 0x02; - в две команды SBI :)

_________________
Белая и Пушистая


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

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6191
Откуда: Minsk
Рейтинг сообщения: 0
В нонешних реалиях, боюсь, придётся реанимировать Минск-32 с ЯСК и контроллеры Z80 (если ещё успеем, конечно) . :o
СпойлерВ те времена, когда я ещё работал на фирму по договору подряда, важна была экономия на всём, кроме качества: МК - подешевше, код соответственно, покомпактней и т.п. Экономия в несколько дней на кодинге была бы решающей, если бы выкатывали, как минимум, один новый дивайс в месяц. Ведь чисто кодинг в процессе разработки изделия занимает максимум процентов 10. Есть ещё выработка концепции (скажем так высокопарно :))) ), разработка алгоритма, отладка софта и железа, тестирование, документирование, утверждение ТУ и пр.
Впрочем, я опять уклоняюсь в сторону от любительского форума, повёл речь о выпуске хоть небольшой фирмой, хоть ограниченным тиражом, но всё же промышленного изделия со всем вытекающим из-под него. :?
----------
А если учесть, что мне пришлось начинать работу с МК на камне, для которого какой уж там Си! - в нём самом даже команды сдвига вправо не было, не говоря уже об MUL, DIV - и на этом чуде техники надо было делать float, да ещё с функциями (Sin, Sqrt etc) пришлось стать акробатом ассемблера :)) , и уже потом привычно...

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн сен 30, 2024 13:17:39 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
Jack_A, но время то не стоит на месте. Конечно, если времени много, или если нравится, то можно и на Brainfuck-е писать. Никто запретить не может. Но, если нужна эффективность... додумайте сами.


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

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6191
Откуда: Minsk
Рейтинг сообщения: 0
если нужна эффективность... додумайте сами.

Эффективность - комплексное понятие. Если у неё один критерий - писа'ть быстро - тогда конечно. Но в приведённой мной ситуации я действовал, IMHO, максимально эффективно, используя асм.
СпойлерНу и возьмём ситуацию "со шкурной стороны". Я написал прогу за неделю, вынудил заказчика покупать камень на 2$ дороже. "Ну всё. - говорит он мне - Сейчас ты пока погуляй месяца 4, мы будем доводить прибор до серии. Ну а потом заключим новый договор."
Конечно, это не значит, что я сознательно тормозил разработку. Я был полноправным участником разработки (кроме печатных плат - не моё это), и осциллограф на моём рабочем столе не просто занимал место рядом с компом. И разработчик "железа" не был для меня истиной в последней инстанции - порой приходилось ему менять что-то в схемах по моему предложению. Именно с целью эффективности. :))
Но этот случай, повторимся, не "радиокотный" .

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн сен 30, 2024 14:42:38 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
Ну, от ситуации, конечно, зависит. Ну вот, писал я Х-модем 100 лет назад, на асм-е естественно. А тут мне он понадобился под другую архитектуру, и чё? Ну разве не дурная это работа? Какой тут КПД? А писал бы на ЯВУ - совсем другое дело.) Или нет?


Добавлено after 11 minutes 32 seconds:
Беда в том что Асм он под конкретную архитектуру, его не перенесёшь куда то. Вы это и так понимаете. Поэтому, всё что на Асм - пустая трата времени. КПД 0. Только алгоритмы. Ну и попробуй их перенести!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн сен 30, 2024 14:47:49 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6191
Откуда: Minsk
Рейтинг сообщения: 0
Ну тут тоже зависит...
Вот пришлось переходить с ST62XX на АВР. Напомню - на прежнем камне ЯВУ вообще не было, так что переход асм -> асм. Мнемоники процентов на 50 совпадали. Что не совпадало - написал преобразующие макросы. Ну и переход на другую платформу был не сам по себе, а со значительным расширением функционала. Так что писать пришлось практически с нуля. И пока заказывали корпуса, платы, комплектуху и пр. - без особой спешки накропал что надо. Ну сделал бы раза в 4 быстрее - и ? Следующий заказ маячил у шефа ещё где-то в потёмках.
И вообще - интересно бы послушать того, кто выдаёт новые сложные изделия хотя бы раз в месяц - ему точно без С++ никак :) - и где этот рынок, заваленный льющимся потоком новьём?
:)
СпойлерКстати (я уже вроде об этом писал) - на прежней моей работе был затык с дивайсом на МК. Я мельком глянул и выразил сомнение в правильности проги. На что их шеф мне: "Программа написана на Си, компилируется, значит, неправильной она быть не может!". Ну ему простительно: хоть у него под началом были девчонки-программистки, сам он в жизни не написал ни строчки кода, поэтому не знает, что компилятор может пропустить синтаксически верную, но абсолютно дебильную в части логики прогу. :)

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн сен 30, 2024 19:52:54 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Jack_A писал(а):
компилятор может пропустить синтаксически верную, но абсолютно дебильную в части логики прогу
Я уже говорила - Язык Си - он мазохист. И получает цифровое удовольствие, когда программист стреляет себе в ногу.
uint16_t a = 40000, b = 30000;
uint32_t ab = a + b;
чему равно ab ?
Правильный ответ : 4464.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WinAvr в вопросах и ответах
СообщениеДобавлено: Пн сен 30, 2024 22:05:09 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
Да уж. Не очевидно. А так?
uint32_t ab = (uint32_t)a + (uint32_t)b;

Добавлено after 26 minutes 22 seconds:
Ну сделал бы раза в 4 быстрее - и ? Следующий заказ маячил у шефа ещё где-то в потёмках...

Когда работаешь на дядю - это понятно. А если на себя? Да и если на дядю, всё равно своё время нужно беречь. Ведь можешь ещё чем то полезным заняться.)


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

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


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

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


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

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


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