Например TDA7294

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





Текущее время: Чт апр 18, 2024 20:10:24

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


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



Начать новую тему Ответить на тему  [ Сообщений: 696 ]     ... , , , 19, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 20:14:01 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
берём переменную х и записываем в неё данные из пинов 0,1,2,3 потр С

if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.0 == 0) {x &= 0b11111110;};
if (PINC.1 == 1) {x |= 0b0000

а нельзя зацепив провода к подряд идущим пинам одного порта сделать:
х=PINC&0x0f;
или х=(PINC>>2)&0x0f; (если пины начинаются не з 0, а со 2го)
?

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Последний раз редактировалось Ivanoff-iv Чт июн 16, 2022 20:16:06, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 20:15:00 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
а что, разве нельзя x = PORTC & 0x0F; или x = PINC & 0x0F; ?

Добавлено after 32 seconds:
опять не успел :)

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:15:56 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6867
Откуда: .ru
Рейтинг сообщения: 0
Ivanoff-iv писал(а):
нельзя зацепив провода к подряд идущим пинам одного порта сделать:

низя.
всё идёт в разнобой... как попало))

valA= DigitalRead(6);
valB=DigitalRead(7);
valC=DigitalRead(8);
valD=DigitalRead(9);

мы не ищем лёгких путей))


x = ((PINC&(1<<0))?(1<<0):0) \
| ((PINC&(1<<1))?(1<<1):0) \
| ((PINC&(1<<2))?(1<<2):0) \
| ((PINC&(1<<3))?(1<<3):0);

я смотрю ты просто помешался на сдвигах)) будь осторожней)) а то так ведь и самому сдвинуться можно)) :))

а такты процессора посчитал ?
сравнил с этим ?
if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.0 == 0) {x &= 0b11111110;};
if (PINC.1 == 1) {x |= 0b00000010;};
if (PINC.1 == 0) {x &= 0b11111101;};
if (PINC.2 == 1) {x |= 0b00000100;};
if (PINC.2 == 0) {x &= 0b11111011;};
if (PINC.3 == 1) {x |= 0b00001000;};
if (PINC.3 == 0) {x &= 0b11110111;};

а с этим ?
x = 0;
if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.1 == 1) {x |= 0b00000010;};
if (PINC.2 == 1) {x |= 0b00000100;};
if (PINC.3 == 1) {x |= 0b00001000;};
:)


Последний раз редактировалось roman.com Чт июн 16, 2022 21:20:03, всего редактировалось 1 раз.

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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:19:37 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
roman.com писал(а):
а такты процессора посчитал ?
сравнил с этим ?
PINC.0
Откуда ты это выдрал? ИЗ CVAVR? Эта фича только есть у него. :kill:


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:21:10 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6867
Откуда: .ru
Рейтинг сообщения: 0
ну да... у ардуины фич нет)) видимо поэтому они такие тормознутые))


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:36:00 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Код:
if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.0 == 0) {x &= 0b11111110;};
if (PINC.1 == 1) {x |= 0b00000010;};
if (PINC.1 == 0) {x &= 0b11111101;};
if (PINC.2 == 1) {x |= 0b00000100;};
if (PINC.2 == 0) {x &= 0b11111011;};
if (PINC.3 == 1) {x |= 0b00001000;};
if (PINC.3 == 0) {x &= 0b11110111;};


у ардуины такого нету, тока если так, допустим:

Код:
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD0))==0) {x &= 0b11111110;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD1))==0) {x &= 0b11111101;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD2))==0) {x &= 0b11111011;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
if ((PIND &(1<<PD3))==0) {x &= 0b11110111;};


если это правильно? Ардуино ИДЕ пропускает
Но короткие решения мне , конечно, больше нравиться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:37:28 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
roman.com писал(а):
а такты процессора посчитал ?
сравнил с этим ?
На, застрелись
СпойлерИзображениеИзображение

Выкинь этот компилятор
СпойлерИзображение


Последний раз редактировалось Dimon456 Чт июн 16, 2022 21:42:08, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:41:27 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
roman.com,
olegue писал(а):
Добавлено after 5 minutes 29 seconds:
а , ну да, удобнее же взять пины одноо регистра

например PD0,pd1,pd2,pd3 и подать на них, а как из "взять"? Эти биты?


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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:44:32 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Вам надо поменять биты местами
Код:
   x = ((PINC&(1<<0))?(1<<3):0)       \
         | ((PINC&(1<<1))?(1<<1):0)    \
         | ((PINC&(1<<2))?(1<<2):0)    \
         | ((PINC&(1<<3))?(1<<0):0);
или пины местами
Код:
   x = ((PINC&(1<<2))?(1<<0):0)       \
         | ((PINC&(1<<1))?(1<<1):0)    \
         | ((PINC&(1<<3))?(1<<2):0)    \
         | ((PINC&(1<<7))?(1<<3):0);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 21:44:47 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
Dimon456 писал(а):
На, застрелись
в его случае - захлебнись :tea:

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Чт июн 16, 2022 22:32:01 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Dimon456 писал(а):
Вам надо поменять биты местами
Код:
x = ((PINC&(1<<0))?(1<<3):0) \
| ((PINC&(1<<1))?(1<<1):0) \
| ((PINC&(1<<2))?(1<<2):0) \
| ((PINC&(1<<3))?(1<<0):0);
или пины местами
Dimon456,

это мне было обращено, если честно, я не совсем понял

к этому коду была реплика?
Код:
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD0))==0) {x &= 0b11111110;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD1))==0) {x &= 0b11111101;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD2))==0) {x &= 0b11111011;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
if ((PIND &(1<<PD3))==0) {x &= 0b11110111;};


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 00:37:28 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6867
Откуда: .ru
Рейтинг сообщения: 0
Код:
if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.0 == 0) {x &= 0b11111110;};
if (PINC.1 == 1) {x |= 0b00000010;};
if (PINC.1 == 0) {x &= 0b11111101;};
if (PINC.2 == 1) {x |= 0b00000100;};
if (PINC.2 == 0) {x &= 0b11111011;};
if (PINC.3 == 1) {x |= 0b00001000;};
if (PINC.3 == 0) {x &= 0b11110111;};


у ардуины такого нету, тока если так, допустим:

Код:
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD0))==0) {x &= 0b11111110;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD1))==0) {x &= 0b11111101;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD2))==0) {x &= 0b11111011;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
if ((PIND &(1<<PD3))==0) {x &= 0b11110111;};


если это правильно? Ардуино ИДЕ пропускает

:dont_know:
наверное для ардуины это и правильно)) мой компилятор такого не понимает ))
загрузи... проверь.
Но короткие решения мне , конечно, больше нравиться.

:))
ещё короче ?

x = 0;
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};

или ещё короче ? ))
:))
Dimon456 писал(а):
roman.com писал(а):
а такты процессора посчитал ?
сравнил с этим ?
На, застрелись
СпойлерИзображениеИзображение

Выкинь этот компилятор
СпойлерИзображение

Вложение:
такты.jpg [35.18 KiB]
Скачиваний: 40

:)))


IN R22, PINC // -1 такт
LDI R21, 0b00000000 // -1 такт
SBRC R22, 0 // -1 такт
ORI R21, 0b00000001 // -1 такт
SBRC R22, 1 // -1 такт
ORI R21, 0b00000010 // -1 такт
SBRC R22, 2 // -1 такт
ORI R21, 0b00000100 // -1 такт
SBRC R22, 3 // -1 такт
ORI R21, 0b00001000 // -1 такт
OUT PORTD, R21 // -1 такт

итого: 11 тактов процессора


Dimon456 мы знаем что ты можешь лучше ! )) не сдавайся ! )) мы в тебя верим ! ))
:))) :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 05:38:00 
Встал на лапы

Карма: -9
Рейтинг сообщений: 18
Зарегистрирован: Сб июн 04, 2022 05:21:07
Сообщений: 148
Рейтинг сообщения: 1
Интересно, пошто вы так долго и у-порно спорите? :))) Ардуинщики решили написать собственный скетч и не получается? :) Возьмите готовые на arduino.ru для АЦП и SD-флешки и не мучайтесь. Лучше бы конечно с внешнего аудио-ацп оцифровывать.
А для простого диктофона есть прикольные МЭМС-микрофоны с цифровым выходом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 07:12:06 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
roman.com писал(а):
ещё короче ?

x = 0;
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
:facepalm:
Мне вот интересно, ты когда пишешь проверяешь что пишешь или как?
Цитата:
warning: bitwise comparison always evaluates to false [-Wtautological-compare]
roman.com, попробуй для начало вот так
Спойлер
Код:
x = 0;
PORTD = 0b10000100;
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
что на выходе будет?
olegue, не ведись.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 07:29:49 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
спойлер не для roman.com
Спойлерусловие вида
((x&(1<<n))==1)
будет работать только при n==0

надо писать:
((x&(1<<n))==(1<<n))
или
((x&(1<<n))!=0)
или
(x&(1<<n))
хотя, roman.com, должен и сам догадаться, ошибка детская...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 08:02:09 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
roman.com писал(а):
IN R22, PINC // -1 такт
LDI R21, 0b00000000 // -1 такт
SBRC R22, 0 // -1 такт
ORI R21, 0b00000001 // -1 такт
SBRC R22, 1 // -1 такт
ORI R21, 0b00000010 // -1 такт
SBRC R22, 2 // -1 такт
ORI R21, 0b00000100 // -1 такт
SBRC R22, 3 // -1 такт
ORI R21, 0b00001000 // -1 такт
OUT PORTD, R21 // -1 такт

итого: 11 тактов процессора
На, держи
СпойлерИзображение
volatile uint8_t as;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 09:04:51 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Занятное занятие.... сначала взять ардуину, а затем такты считать....

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 09:13:29 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Ivanoff-iv, ардуина - это avr-gcc с плюсами. В чем проблема?
Странно что вы эту проблему не озвучивание при win-avr , студияavr и прочее что используют компилятор avr-gcc.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 09:20:02 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
В наборе библиотек... которые высокосовместимы и достаточно универсальны, цена же этому - снижение быстродействия и, часто, просто нерациональное использование возможностей контроллера
Т.е. с одной стороны экономим такты в одном месте и бездумно их транжирим в другом...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пт июн 17, 2022 10:17:17 
Первый раз сказал Мяу!

Карма: -1
Рейтинг сообщений: 1
Зарегистрирован: Вт май 17, 2022 09:49:48
Сообщений: 26
Рейтинг сообщения: 0
на digitalwrite() в ардуине никто тактов не считает :))) а тут прям


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

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


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

Сейчас этот форум просматривают: veso74 и гости: 24


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

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


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