Например TDA7294

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



Текущее время: Вт окт 20, 2020 12:29:08

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8154 ]     ... , , , , 408
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 31, 2020 12:38:00 
Родился
Аватар пользователя

Зарегистрирован: Чт авг 27, 2020 13:15:49
Сообщений: 12
Рейтинг сообщения: 0
А так не подойдет:

I = atoi(Mass);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 31, 2020 12:40:29 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 31, 2020 14:10:19 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1558
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4924
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
у[х]=а; загружает в массив ровно то, что прилетело в УАРТ
у[х]=а-'0'; перед загрузкой вычтет порядковый номер символа "0", а т.к. цифры идут по порядку - то останется только значение принятого числа... т.е. произойдет преобразование "0"->0, "1"->1, "2"->2... и.т.д.
писал уже... разовью мысль
чтоб принять число нужно:
1) выделить под него переменную соответственного размера (вместо массива)
2) обнулить её до начала приёма посылки у=0;
3) складывать в неё полученные числа: у+=а-'0';
4) не забывать "сдвигать" разряды умножением на 10: у*=10;
(сдвигать лучше сразу перед внесением новой цифры, пусть начальный 0 лишний раз умножится, зато на финише получаем ровно нужное число без лишних условий).

Добавлено after 2 minutes 29 seconds:
П.С. это я продолжил начатую тему... но и тут она в тему .....:)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 31, 2020 15:03:33 
Говорящий с текстолитом
Аватар пользователя

Карма: 10
Рейтинг сообщений: 16
Зарегистрирован: Сб фев 18, 2012 15:42:29
Сообщений: 1584
Откуда: Курск
Рейтинг сообщения: 0
П.С. это я продолжил начатую тему... но и тут она в тему .....:)

Что то не доходит. Смотрите у меня числу знаку '0' соответствует 48. Мне что бы получить из '0'- 0. с умножением что то не зашло. Можно подробнее. То что отдельную временную переменную под это преобразование это мне понятно. Не понятно с умножением


Вернуться наверх
 
Как сократить время вычислений и освободить ресурсы центрального процессора?

Цифровые фильтры применяются в системах цифровой обработки сигналов (ЦОС) для решения двух основных задач: разделения и восстановления сигналов. Такие задачи могут решаться программными и аппаратными методами. Для их решения удобно использовать аппаратный цифровой фильтр FMAC, входящий в состав микроконтроллеров семейства STM32G4.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 31, 2020 15:48:55 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

int x = y - '0'; // если y='9', то x будет 9

и не забивайте голову кодами символов - берите символ и им манипулируйте

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


Вернуться наверх
 
STM32L562E-DK – первая отладочная платформа ST на ядре ARM Cortex-M33

STMicroelectronics представляет демонстрационно-отладочную платформу на базе ядра Cortex-M33 – STM32L562E-DK. Данная платформа основана на микроконтроллере нового семейства – STM32L5. STM32L562E-DK позволяет разработчику в полной мере раскрыть и опробовать новые возможности микроконтроллеров STM32L5 с тщательно проработанным функционалом для обеспечения высокого уровня безопасности и защиты.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 31, 2020 17:51:20 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1558
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4924
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
это преобразование очень простое и возможно оно блвагодаря тому, что символы цифр в кодировке идут по порядку
почитайте несколько постов назад я это объяснял

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 01, 2020 15:03:23 
Говорящий с текстолитом
Аватар пользователя

Карма: 10
Рейтинг сообщений: 16
Зарегистрирован: Сб фев 18, 2012 15:42:29
Сообщений: 1584
Откуда: Курск
Рейтинг сообщения: 0
это преобразование очень простое и возможно оно блвагодаря тому, что символы цифр в кодировке идут по порядку
почитайте несколько постов назад я это объяснял

Да теперь это понятно. Теперь дошел смысл. Спасибо


Вернуться наверх
 


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

Карма: 39
Рейтинг сообщений: 1558
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4924
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
небольшой лайвхак для пользователей КВАВР (а может и не только, на других не проверял):
раньше я дербанил числа на разряды так:
Код:
while (out>0){
    putchar(out%10+'0');
    out/=10;};
(отдельно делил и отдельно находил остаток)
но, сегодня меня окончательно догнала мысль, о том, что деление и остаток от деления - близнецы братья, а так-же подозрение о том, что квавр нерационально использует ресурсы...
Открываю ассемблеровский листинг программы и вижу, что функция деления (одна и та-же) вызывается дважды, но в качестве результата забирается информация из разных регистров... решил, почему, раз информация всёравно лежит, не забрать её вручную?
т.к. остаток от деления лежит в регистровой паре R26,27, написал функцию:
Код:
unsigned int ostatok (void){#asm("MOVW R30,R26")}
и применил её в коде...
Код:
while (out>0){
    out/=10;
    putchar(ostatok()+'0');}
скорость преобразования ожидаемо выросла в 2 раза.
_____
Уважаемые коты, прошу комментариев: можно ли, и правильно ли так делать? не вылезут, ли какие нибудь подводные грабли?

Добавлено after 21 minute 8 seconds:
сделать в обратной последовательности (сначала остаток, потом вытащить результат деления) не получится, т.к. штатная функция получения остатка затирает результат деления :(


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 09, 2020 14:08:08 
Друг Кота
Аватар пользователя

Карма: 83
Рейтинг сообщений: 920
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4519
Откуда: Минск
Рейтинг сообщения: 0
Нет гарантии, что нужными регистрами будут всегда именно эти R26 и R30.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 09, 2020 15:17:15 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1558
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4924
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
т.к. деление, это функция и для её выполнения организуется требуемое ей свободное адресное пространство, то я не вижу причин для изменения назначенных регистров... кроме того эта функция одна на всю программу (все деления и остатки вызывают именно её) этот факт ещё больше ограничивает возможность компилятора чтото изменить в функции.
Добавлено after 33 minutes 25 seconds:
П.С. регистры с остатком R26, R27, а регистры R30, R31 это ретурн.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт окт 15, 2020 20:53:28 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1558
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4924
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
из недостатков - квавр не понимает какого типа переменная возвращается и выдает предупреждение.
пока отключил предупреждерия для этой функции:
Код:
#pragma warn-
unsigned int ostatok (void){#asm("MOVW R30,R26")}
#pragma warn+
не знаю правильно ли так делать или есть способ лучше?

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт окт 15, 2020 21:34:50 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1764
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15428
Откуда: Новочеркасск
Рейтинг сообщения: 4
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
правильнее и лучше применять стандартную функцию libc: div

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн окт 19, 2020 07:50:26 
Родился
Аватар пользователя

Зарегистрирован: Чт авг 27, 2020 13:15:49
Сообщений: 12
Рейтинг сообщения: 0
правильнее и лучше применять стандартную функцию libc: div


Так ее нет в CVAVR :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн окт 19, 2020 08:01:35 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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


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

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


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

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


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

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


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