Member 13799356 Ответов: 1

Отправка данных с master avr на определенный pin-код в slave avr


Всем привет .
Я хочу, чтобы мигать три разных вела с ведущего и ведомого микроконтроллеров AVR с интерфейсом SPI протокол
Я соединил два avr с протоколом spi, проблема в том, что когда я нажимаю одну из трех кнопок, три светодиода мигают. Потому что условие приема одинаково для всех трех светодиодов . Поэтому я хочу, чтобы 2-й АВР знал, какую кнопку я нажал в первом АВР.

Что я уже пробовал:

Я соединил два avr с протоколом spi, проблема в том, что когда я нажимаю одну из трех кнопок, три светодиода мигают. Потому что условие приема одинаково для всех трех светодиодов . Поэтому я хочу, чтобы 2-й АВР знал, какую кнопку я нажал в первом АВР.

1 Ответов

Рейтинг:
1

Jochen Arndt

Это довольно неясно, не зная, что вы сделали до сих пор.

Но все, что вам нужно сделать, это отправить данные, которые указывают, какая кнопка была нажата. Это требует определения "протокола", который определяет значение данных, передаваемых через SPI.


Member 13799356

Во-первых, спасибо за ваш ответ, во-вторых, как отправить данные, которые указывают, какую кнопку я нажал??

Jochen Arndt

Вы должны определить протокол.
Например, вы можете отправить байт, где самый младший бит устанавливается при нажатии кнопки 1, Следующий-при нажатии кнопки 2 и так далее.

Member 13799356

не могли бы вы показать мне пример кода для этого

Jochen Arndt

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

Псевдокод C как пример:
char data = 0;
if (isButton1Pressed)
data |= 1;
if (isButton2Pressed)
data |= 2;
if (isButton3Pressed)
data |= 4;
/* Now send data */

На приемной стороне проверьте, какой бит установлен, и действуйте соответствующим образом (например, включите или выключите соответствующий светодиод).

Member 13799356

Спасибо!