Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб июн 28, 2025 00:50:19

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7669 ]     ... , , , 7, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб дек 18, 2010 22:55:27 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 23
Зарегистрирован: Чт апр 08, 2010 18:50:01
Сообщений: 2095
Откуда: Краснодар
Рейтинг сообщения: 0
avreal писал(а):
Не советую. Получите объединение недостатков.


гхмм. медленно и огромный код ? эхх. я разрываюсь. хочется легкости си и четкости АСМ.

_________________
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб дек 18, 2010 22:58:03 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб дек 18, 2010 23:37:40 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 23
Зарегистрирован: Чт апр 08, 2010 18:50:01
Сообщений: 2095
Откуда: Краснодар
Рейтинг сообщения: 0
что в си обозначает символ | ? просто как использовать я вроде понял
Код:
UCSRB |= ( 1 << TXEN ) | ( 1 << RXEN );


но непонятно почему нельзя записать
Код:
TXEN =1;
 RXEN =1;

илиэто просто для наглядности ?

_________________
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб дек 18, 2010 23:49:47 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб дек 18, 2010 23:59:58 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6006
Откуда: Minsk
Рейтинг сообщения: 0
ARV писал(а):
TXEN - это символ номера бита в регистре


т.е. это константа, и напис`ать TXEN=1 это значит напис`ать 3=1. А Сишный код в переводе на рабоче-крестьянский звучит приблизительно так : взять единицу и сдвинуть ее влево 3 раза, потом взять еще единицу и сдвинуть ее влево 4 раза, а то, что получится, по ИЛИ добавить к содержимому регистра UCSRB .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс дек 19, 2010 00:10:08 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 23
Зарегистрирован: Чт апр 08, 2010 18:50:01
Сообщений: 2095
Откуда: Краснодар
Рейтинг сообщения: 0
оу.. понял.
вопрос выбора. если необходимо применить достаточно сложный алгоритм ( например алгоритм шифрования или обработки изображений.. с камеры ) что будет действительно быстрее ? АSM ?

_________________
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс дек 19, 2010 02:59:37 
Потрогал лапой паяльник

Карма: 6
Рейтинг сообщений: 17
Зарегистрирован: Пт дек 17, 2010 14:41:25
Сообщений: 310
Рейтинг сообщения: 0
Цитата:
При достаточной квалификации программиста, язык ассемблера позволяет писать самый быстрый и компактный код. Возможно, даже лучше, чем генерируемый трансляторами языков более высокого уровня.
Если код программы достаточно большой, данные, которыми он оперирует, не помещаются целиком в регистрах процессора, то есть частично или полностью находятся в оперативной памяти, то искусный программист, как правило, способен значительно оптимизировать программу по сравнению с высокоуровневыми трансляторами по одному или нескольким параметрам: скорость работы (за счёт оптимизации вычислений и/или более рационального обращения к ОП, перераспределения данных), объём кода (в том числе за счёт эффективного использования промежуточных результатов).
Обеспечение максимального использования специфических возможностей конкретной платформы, что также позволяет создавать более эффективные программы с меньшими затратами ресурсов.

http://ru.wikipedia.org/wiki/Язык_ассемблера
Справедливо и в случае мк.
До недавнего времени разница между си и асмом составляла 30% объема, но сейчас код си оптимизируется до меньших размеров.
Если требуется быстродействие, то только асм!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс дек 19, 2010 10:38:45 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6006
Откуда: Minsk
Рейтинг сообщения: 0
phenomen писал(а):
Если требуется быстродействие, то только асм!


На одном раньшем проекте у меня пошла напряженка с микросекундами, пришлось применить нестандартную "самопальную" плавающую арифметику : один байт порядок, 2 байта мантисса без скрытого разряда. Конечно, всю арифметику и минимальный набор функций ( exp,sin,cos,sqrt) пришлось напис`ать и оттестить, зато когда с моим коллегой - убежденным Си-шником провели сравнительное тестирование, выигрыш по скорости был в 2 раза! Обошлись без миграции на другой более быстрый ( и более дорогой! ) камень, что при большой серийности вылилось бы в бо-ольшую американскую копеечку. А при моей тутошней программерской зряплате пару недель дополнительного писания окупились продажей одной месячной партии изделий.

Конечно, ревнители чистоты рядов возмутятся: у тебя точность ни в жилу! Успокойтесь, судари, точночти для решаемой задачи хватало с запасом, а там, где требовалось в одном месте суммирование большого числа разноразмерных данных, взял для сумматора обычную 4-байтовую переменную, и она пркрасно уживалась с остальной арифметикой.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс дек 19, 2010 11:28:13 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19671
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Кислый писал(а):
но непонятно почему нельзя записать
Код:
TXEN =1;
 RXEN =1;

илиэто просто для наглядности ?

В СиЛабовском компиляторе можно так написать, если регистр бит-адресуемый :)

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс дек 19, 2010 14:45:07 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6006
Откуда: Minsk
Рейтинг сообщения: 0
Gudd-Head писал(а):
В СиЛабовском компиляторе можно так написать, если регистр бит-адресуемый :)


Насколько я в курсе, бит-адресация была в 51-х МК, АВР вроде в таком не замечен.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс дек 19, 2010 15:26:02 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19671
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Jack_A писал(а):
АВР вроде в таком не замечен.

К регистрам ввода-вывода AVR адресами до 0x1F применимы команды SBI и CBI (установить и очистить бит) :) Под эти регистры, как правило, попадают и USART'овские с битами RXEN и TXEN.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн дек 20, 2010 07:13:24 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
Кислый писал(а):
но непонятно почему нельзя записать
Код:
TXEN =1;
 RXEN =1;
вообще то можно, если немного схитрить:
Код:
SFR_B(FLAGS,0x60)
#define FLAG1 FLAGS_Bit0
#define FLAG2 FLAGS_Bit1
// some code
FLAG1=1;
//some code
FLAG1=0;

Имена FLAG1, FLAG2 использованы для примера. то же самое для регистра UCSR (USART CONTROL and STATUS REGISTER)
Например для Тиньки 2313:
Код:
SFR_B(UCSRB,0x0A)
#define RXEN UCSRB_Bit4 //Rx enable
#define TXEN UCSRB_Bit3 //Tx enable
//some code
RXEN=1;
//some code
TXEN=1;

_________________
Ставим плюсы: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн дек 20, 2010 14:17:58 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6006
Откуда: Minsk
Рейтинг сообщения: 0
Gudd-Head писал(а):
К регистрам ввода-вывода AVR адресами до 0x1F применимы команды SBI и CBI (установить и очистить бит) :) Под эти регистры, как правило, попадают и USART'овские с битами RXEN и TXEN.


Я же не утверждаю, что этого сделать нельзя. Просто из известных мне МК отдельные биты можно устанавливать не комантами SET BIT, CLR BIT (это не мнемоника команд, а их суть ), а прямым присваиванием MOV, только в 51-х. Хотя сути дела это не меняет, на асме эти биты взводишь-сбрасываешь не задумываясь, а вот на ЯВУ приходится, как выясняется, подумать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн дек 20, 2010 14:22:07 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 23
Зарегистрирован: Чт апр 08, 2010 18:50:01
Сообщений: 2095
Откуда: Краснодар
Рейтинг сообщения: 0
грациас, сеньёро !!!

_________________
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт дек 21, 2010 22:31:51 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
кто нибудь объясните мне почему функция sprintf() жрет так много стека?и как это оптимизировать? мне нужно переменную типа float конвертировать в строку с, хотя бы, 4 знаками после запятой. приходит в голову только один способ : объявить переменную integer, умножить float на 10000, присвоить переменной integer полученное после умножения на 10000 значение, далее в цикле последовательно вычитать из integer 10000,1000,100,10, считая при этом кол-во десятков тысяч, тысяч, сотен, десятков в переменной и записывать их в массив. после этого добавить точку в массив в то место где она была и вывести массив на индикатор. но это прокатывает только с неотрицательными числами типа X.YYYYY, т.е. с нулевой степенью. а если число до точки еще содержит знаки, например: XXXX.YYYYY? помогите советом. как Вы выводите float на индикатор?

P.S. тупо взять вместо переменной типа integer переменную типа long (или long long)... прокатит.
Последний вопрос в силе: как выводить float на индикатор не загружая стек и более менее быстро?

здесь продублировал viewtopic.php?p=655424#p655424

_________________
Ставим плюсы: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт дек 21, 2010 23:17:17 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19671
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А у меня sprintf() сожрало больше килобайта (!) флэш-памяти :(

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт дек 21, 2010 23:41:22 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
за флешем не следил, сейчас не могу посмотреть, проект на рабочем компе. но думаю флеш тоже нормально "потрепало")))) мне главное глубину стека сейчас поменьше сделать. знаю что на асме было бы намного короче, поэтому воюю.

_________________
Ставим плюсы: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср дек 22, 2010 11:58:30 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 23
Зарегистрирован: Чт апр 08, 2010 18:50:01
Сообщений: 2095
Откуда: Краснодар
Рейтинг сообщения: 0
ребята, кто может скинуть работающий исходник с usbAvr от obDev, такой чтоб скомпилился в gcc ?

_________________
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср дек 22, 2010 11:59:30 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 23
Зарегистрирован: Чт апр 08, 2010 18:50:01
Сообщений: 2095
Откуда: Краснодар
Рейтинг сообщения: 0
с примером чтения-записи данных.

_________________
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср дек 22, 2010 12:28:53 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6006
Откуда: Minsk
Рейтинг сообщения: 0
ibiza11 писал(а):
знаю что на асме было бы намного короче, поэтому воюю.


Не используя sprintf и желая получить приличный вид на индикаторе, придется малость попотеть. Идея у Вас изложена правильно несколькими постами выше, только чтоб получить приемлемую точность отображения, нужно сначала определить порядок величины, чтобы знать, на каком знакоместе поместить точку, иначе малые числа будут отображаться с большой погрешностью. А отсюда будет видно, на сколько умножить перед преобразованием в integer. Получать частное вычитанием нет смысла, можно использовать целочисленное деление с остатком.


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

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


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

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


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

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


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