Rs232 тип общения

AVR версия программы

Rs232 тип общения

Сообщение Ruslan21 (Руслан) » 21 апр 2020, 12:50

Добрый день.
Ситуация в следующем хочу через мк управлять мп3 плеером.
Команды МП3 для управления громкостью
7E FF 06 06 00 00 X EF. X значение о 0 до 30
Команда МП3 для выбора трека
7E FF 06 03 00 00 X EF X значение трека

Вопрос как отправить двоичный код с МК и его считать от плеера, если он в двоичном коде.
Пробовал с прерыванием получаю только первый байт. Если делать массив то в макросе приём именно байт не даёт задать значение в X[x] и массив не могу получить.
Спасибо
Ник: Ruslan21
Имя: Руслан
(Татарстан)
Ученик
Ученик
Информация о пользователе

Re: Rs232 тип общения

Сообщение щербатый (щербатый) » 21 апр 2020, 16:05

Ruslan21 писал(а):Вопрос как

Каков вопрос, таков и ответ...
В таких случаях обычно вылаживают файлы проекта в фловкоде, и протеусе. И было бы неплохо. Что бы там был коментарий. Что и как ты делал. Это нужно для того что бы понимать каким путем ты идешь, и где у тебя ошибки. Сам понимаешь, тут экстрасенсов нет.
И еще. Сама задача должна быть интересной и востребованной. Тогда народ подключится, и каждый поможет чем может. А если это не так, то за тебя это никто делать не будет.
Кароче, выкладывай что есть.
Ник: щербатый
Имя: щербатый
Гуру
Гуру
Информация о пользователе

Re: Rs232 тип общения

Сообщение geliosss (geliosss) » 30 апр 2020, 19:10

Ruslan21 писал(а): Если делать массив то в макросе приём именно байт не даёт задать значение в X[x] и массив не могу получить.


Сделай переменную типа byte и укажи кол-во элементов массива, например: byte X[10]

Ruslan21 писал(а):как отправить двоичный код с МК и его считать от плеера, если он в двоичном коде


двоичный код это 0b0100 1010 0011 11001
шестнадцатеричный код это 0x7E0F; 0xF9 ; 0x0F
Программатор MiniPro TL866CS
FC5 avr v5.5.2.1
Proteus 8.6 SP2
Аватар пользователя
Ник: geliosss
Имя: geliosss
(Новокузнецк)
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Enigm (Enigm) » 01 май 2020, 04:38

Все просто, набивая масив для отправки, вы можете каждый байт масива, определять, в любой системе исчесления.
В даташите, вам дают нужное, а с помощью виндового калкулятора в режиме программиста, можно перевести , данные в нужную вам систему исчисления.
например.
231 в десятичной системе, будет равен Е7 в шестнадцатеричной, записывать как 0xЕ7 , 0х это признак шестнадцатеричного числа.
также 231 в бинарном будет 0b11100111 , 0b это признак двоичной системы исчисления.
Так что все зависит от того как вам удобнее, любите десятичные, а вам в даташитах дают шестнадцатеричные, не беда, переводим из шестнадцатеричного вида в десятеричный и записываем.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Enigm (Enigm) » 01 май 2020, 04:47

Да на счет прерываний.
Прерывание приходит на каждый символ в строке.
Поэтому, надо завести массив, на нужное количество символов, и с каждым прерыванием записывать полученный символ в свое место в массиве.
Тут самое главное определить начало данных, что бы правильно сложить принятые байты в массив.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Вячеслав (Вячеслав) » 01 май 2020, 05:15

Слова, слова..Где пример или ссылка на файлик с расширением fcf? Часто использую чужие находки и приемы из этого форума.
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Супер разработчик
Супер разработчик
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Enigm (Enigm) » 02 май 2020, 16:46

Файлик чего ? Как в прерывании складывать принятые данные в массив ?
ТС свой проект так и не показал.
А складывать байтики в массив, как бы простая задача.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Ruslan21 (Руслан) » 03 май 2020, 07:55

Всем привет. С праздниками! Большое спасибо что откликнулись. В фловкоде запускается файл. Но не компелируется - ругается на массив.
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: Ruslan21
Имя: Руслан
(Татарстан)
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Enigm (Enigm) » 03 май 2020, 11:46

Вы отправляете в уарт стринговый массив , а ваш массив байтовый , вот и ругается.
Вам надо отправлять свой масив через отправку чара , по очереди .
В кубике отправки по уарт, это самая верхний выбор.
Сначала отправляем а[0] потом a[1] и так далее.
Можно это в цикле сделать, что бы 8 кубиков отправки не ставить.
Можно конечно ваш массив обозначить как стринговый.
Но тогда нужные значения надо будет переводить через таблицу ASCII ,но там могет быть засада.
Так что просто отправляйте через Char
В общем, отправка массива на уарт, такая же как вы делаете отправку массива на дисплей, только без курсора.
Такая же проблема у вас и в приеме.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Rs232 тип общения

Сообщение Enigm (Enigm) » 03 май 2020, 12:11

По приему
Что бы получать побайтно, надо и в приеме выбирать в кубике recive Char.
Можно конечно попробовать так же как и вы сделали через стринг.
Но тогда вам надо завести новую переменную типа стринга на нужную размернось.
А потом после приема из стринга , вытащить чары.
Например ваша переменная стринг в приеме будет С
то после приема нужно разобрать ее так.
x[0]=Char$(C,0)
x[1]=Char$(C,1)
x[2]=Char$(C,2)
И так далее
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode AVR

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

Пользователь просматривает форум: нет зарегистрированных пользователей