Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

Олегыч1 писал(а):А что именно нужно подправить в CSV файле?
программа на Си понимает описание массива в таком виде:

Код: Выделить всё

int array[] = {
1234, 
3334, 
23, 
3944, 
44545
}
значит, открываете ваш CSV в Экселе или там где еще, и в клеточках рядом с цифрами ставите запятые. потом Copy-Paste в студию, пару ручных операций по расстановке скобок - вот и всё внедрение в код.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

Не понимаю... вот в первой ячейке (в CSV) значение: "0.000000000000000, 0 "Это время старта в секундах. Нолик на конце после запятой указывает на то, что пока импульса нет.
В следующей ячейке значение: "0.000050174000000, 1 " Это время в секундах когда появилась логическая единица. Единица на конце говорит о том, что это начало логической единицы.
В следующей ячейке значение: "0.000053862000000, 0" Все так же, время, когда логическая единица перешла в ноль... И т.д. и еще 13 тысяч таких ячеек...
Подскажите пожалуйста на вот этом конкретном примере, где именно надо расставить запятые? Как будет выглядеть правильный код на Си в моем случае?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

мда... ни шагу без инструкции в картинках.
1. открыли свой CSV в таблице, нарисовали рядом ВТОРОЙ столбик, ввели в него формулу перевода дробных секунд в наносекунды, чтобы было целое число, потом нарисовали ТРЕТИЙ столбик с запятыми:
Изображение
2. выделили ВТОРОЙ и ТРЕТИЙ столбики:
Изображение
3. Сделали Copy-Paste в редактор кода:
Изображение
4. дописали выше-ниже скопированного необходимые "буквы" программного кода.

Добавлено after 12 minutes 36 seconds:
то есть не совсем так: вам же нужно не время от начала записи, а между отсчетами... то есть формула у вас должна быть другой, для вычисления разницы между моментами времени... т.е. примерно так для показанной на рисунке ячейки: =(А3-А2)*1000000000
надеюсь, этого достаточно для вашей самостоятельной работы?
Вложения
1-3.PNG
(4.68 КБ) 370 скачиваний
1-2.PNG
(3.02 КБ) 383 скачивания
1-1.PNG
(6.46 КБ) 377 скачиваний
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

Да! Спасибо!) То что нужно! 8) Очень выручили :beer:
Возможно возникнут вопросы по самому коду, но это уже чуть позже... Как выглядит массив в Си вы уже показали. Как отыскать нужную библиотеку в AtmelStudio6?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

какую еще библиотеку?! ваша задача - не типовая, писать придется самому.

Добавлено after 2 minutes 12 seconds:
для начала определитесь с МК: судя по вашему примеру, интервалы у вас измеряются единицами микросекунд - из AVR, например, подобные интервалы реализовать не сможет ни один МК, значит, вам потребуется ARM. а это немного другой уровень вхождения в программирование... вам-то и AVR пока высоковат.

Добавлено after 47 seconds:
вы, часом, не IR-пульт имитировать собираетесь?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25121
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

[uquote="Олегыч1",url="/forum/viewtopic.php?p=4132139#p4132139"]а где эти модули распологаются? в настройках самой программы я не нашел...[/uquote]
Эти модули суть есть режимы работы таймеров.
Таймер при включении в режим захвата при наличии на ВХОДЕ ЗАХВАТА активного фронта (активный фронт настраивается) в регистр захвата АППАРАТНО записывается текущее значение таймера. Таким образом, пользователь получает отметки времени (таймер это по сути часы) на каждый фронт. Разность времени соседних фронтов и есть время между событиями.
При включении таймера в режим OutputCompare (PWM) полученные при захвате времена вставляем в регистр периода и дьюти и таким образом мы генерируем на выходе искомый записанный ранее сигнал.
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

[uquote="ARV",url="/forum/viewtopic.php?p=4132915#p4132915"]вы, часом, не IR-пульт имитировать собираетесь?[/uquote]
Попробую именно с него и начать. Да, я пока только для AVR могу что-то написать. Остальное пока не рассматриваю, т.к. реально пока сложновато для меня.
Эти модули суть есть режимы работы таймеров.
Таймер при включении в режим захвата при наличии на ВХОДЕ ЗАХВАТА активного фронта (активный фронт настраивается) в регистр захвата АППАРАТНО записывается текущее значение таймера. Таким образом, пользователь получает отметки времени (таймер это по сути часы) на каждый фронт. Разность времени соседних фронтов и есть время между событиями.
При включении таймера в режим OutputCompare (PWM) полученные при захвате времена вставляем в регистр периода и дьюти мы генерируем на выходе искомый записанный ранее сигнал.
КРАМ, это применимо для AVR? А в частности для Атмега 8 ?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25121
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

[uquote="Олегыч1",url="/forum/viewtopic.php?p=4132930#p4132930"]КРАМ, это применимо для AVR? А в частности для Атмега 8 ?[/uquote]
Это есть практически во всех МК, где есть таймеры.
Откройте даташит на 8-ую атмегу в разделе первого таймера и там все прочтете.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

Олегыч1 писал(а):Попробую именно с него и начать.
так для него подход совсем другой требуется! вам надо захватывать не несущую частоту 36-41 кГц, а модулирующую, а там частота ниже во много раз! захватывать несущую нужен ARM, а огибающую - любой AVR справится. вы своим логическим анализатором захватываете с фотодиода, небось, а вы захватите с приёмника TSOP*** и посмотрите, как оно все существенно проще станет! и, кстати, многие логические анализаторы сразу код распознают, а имитировать отправку известного кода по известному стандарту - вообще пара пустяков!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

ARV, , да, именно!) Логическим анализатором с фотодиода, там и несущая и огибающая. Протокол очень похож на "Neс". Один в один как здесь: https://www.radiokot.ru/articles/14/
Но мой анализатор не знает этого протокола :? и по любому найдется какой-нибудь хитрый протокол, который тоже не распознается...
и, кстати, многие логические анализаторы сразу код распознают, а имитировать отправку известного кода по известному стандарту - вообще пара пустяков!
- Как именно это делается? на примере атмега 8 :roll:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

Проблема в том, что у меня нет приемника... Только пульт :?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

Я примерно представляю, какой сигнал будет на приемнике. Наверняка без несущей частоты, просто импульсы, которые образованы от огибающей. И наверняка они распознаются софтом от логического анализатора. Допустим. И как дальше быть? Как воспроизвести теперь распознанный сигнал?
Кстати, приемник может быть абсолютно любой? Не обязательно от родного пульта? Таких у меня навалом, старые цифровые приставки от TV подойдут? Очень хочется попробовать на конкретном примере сгенерировать сигнал :)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

Олегыч1 писал(а):приемник может быть абсолютно любой?
приемники и пульты отличаются по частоте несущей. несущая практически всегда лежит в диапазоне 32-45 кГц, крайне редки случаи, когда она вне этого диапазона. в среднем можно считать, что несущая 36-38 кГц. любой пульт на эту частоту будет принимать сигналы и на другой несущей в упомянутом диапазоне, но дальность приема, конечно, будет существенно ниже. для экспериментов в пределах 1-2 метров о частоте несущей и соответствующего ей приемника можно не волноваться, считайте, что любой TSOP**** вам подойдет к любому пульту.
Олегыч1 писал(а):Как воспроизвести теперь распознанный сигнал?
есть несколько способов.
1. определить стандарт, по которому передает пульт, и формировать стандартный код, не занимаясь "воспроизведением захваченного"
2. сделать так, как я ранее уже рассказывал: определить частоту несущей при помощи анализатора, определить импульсы огибающей при помощи анализатора и приемника, записать CSV-таблицу и потом по ней повторить огибающий сигнал, промодулировав им сгенерированную несущую.
3. захватить огибающий сигнал сразу при помощи МК, и повторить его, генерируя пачки несущей частоты 38 кГц (подходящей с натяжкой для любого приемника). сам принцип формирования импульсов тот же самый, что и в п.2, только таблица длительностей строится сразу в памяти МК, а не грузится туда извне.

захват длительностей делается при помощи режима "захвата" таймера, в AVR это TIMER1

генерация несущей делается при помощи таймера МК, настроенного на генерацию меандра (чаще всего стандарты на IR-управление применяют не меандр, а импульсы в пропорции 1/3...1/4, но принципиальной разницы нет)

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

как сформировать сигнал стандарта RC5 (практически вся продукция PHILIPS), вы можете посмотреть в моем проекте: https://simple-devices.ru/prj/9-electr/ ... te-control там есть исходники для передачи этого кода, все очень просто.
даже таймер для интервалов не применялся - простые задержки циклом. такой подход для примитивного пульта, больше ничего не делающего, кроме генерации кода, вполне допустим.

коды других стандартов делаются аналогично, и тоже для их генерации (при отсутствии других дел) можно отказаться от таймера, а делать на задержках.

да, продвинутые МК, типа новейших версий AVR, PIC и некоторых ARM, могут генерировать модулированную несущую более близким к аппаратному методу способом, там есть блоки, способные аппаратно умножать (логически) сигналы... но принципиально сути процесса это не меняет
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение oleg110592 »

[uquote="Олегыч1",url="/forum/viewtopic.php?p=4133542#p4133542"]И как дальше быть? Как воспроизвести теперь распознанный сигнал?
Кстати, приемник может быть абсолютно любой? Очень хочется попробовать на конкретном примере сгенерировать сигнал[/uquote]
можно посмотреть как сделано тут:
http://www.getchip.net/posts/092-univer ... myjj-pult/
Для того чтобы не создавать огромную базу команд различных пультов, я решил записывать IR-команды с оригинального пульта в память микроконтроллера и впоследствии их воспроизводить (своего рода диктофон для IR-команд). Обучаемому пульту нет разницы, по какому протоколу работает оригинальный пульт, нет разницы какого формата и длины IR-команда, он записывает всю передаваемую оригинальным пультом информацию в сыром (RAW) виде и точно так же воспроизводит.
Обсуждение:
http://www.forum.getchip.net/viewtopic.php?f=8&t=253
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

ARV, :beer: Вроде все теперь понятно, теперь наступает практика. :solder:

Добавлено after 2 hours 51 minute 14 seconds:
А для чего вообще нужна несущая частота в инфракрасных пультах? Ведь инфракрасное излучение передается оптически. Это же не радиоволна...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Олегыч1 »

Ну и что? Импульсы от лампочки не попадают ни под один протокол) Да какой там, даже если и протокол будет один и тот же, а кодировка другая, то все равно сигнал получается индивидуальный :wink: :idea:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

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

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

Вернуться в «Разные вопросы по МК»