Массивы

Pavel7500
Offline
Зарегистрирован: 02.07.2018

Зравствуйте, очень нужна помощь зала. С компа в ардуино через serial приходят данные в hex формате. Ардуинка получает эти посылки и формирует свой последовательный 10 битный код, у меня это порт D, второй пин - данные, 3 пин - стробы. Вот сам код ардуинки:

byte data[10] = {1, 0, 1, 1, 0, 1, 0, 0, 1, 1};

void setup()
{
//включаем выводы 2 и 3 на выход
DDRD = B00001100;
PORTD = 0x00;
}

void loop()
{
for (int i=0; i<10; i++)
{
if (data[i] == 1)
{
PORTD = PORTD | 0x0C;
}
else
{
PORTD = PORTD | 0x08;
}
delayMicroseconds(10);
PORTD = PORTD & 0xF3;
delayMicroseconds(10);
}
delay(1000);
}

Как мне данные из serial в массив byte data [ ] записать, чтоб они тоже в двоичном виде зашли туда (как в исходнике)?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

в сериал чо и в каком виде приходит?

Pavel7500
Offline
Зарегистрирован: 02.07.2018

Да в любом виде, вообще у меня heh посылки, но можно и символьные и текстовые. Это специальный код, 20 битный, задумка такая, что на компе в программе есть наборное поле этих 20 бит, оператор кликает на биты какие нужны, они пойдут единицами, которые не кликались пойдут нулями. Оператор набрал код, нажал кнопку отправить, посылка сформировалась и пошла в ардуино, ардуино выдать должна этот же набор бит с параметрами 10мкс единица, 10 мкс ноль. Одновременно с этим кодом ардуино выдать должна и стробы, 20 импульсов

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

паняна, нихрена толком обяснить не можешь.

слать с компа можно всего один int32, а дуней разбирать побитово.  а можно текстом 20 единиц или нулей.  Разность большая.