реклама на сайте
подробности

 
 
> Информация о состоянии входов STM32F1XX
Evgeny72
сообщение Sep 7 2016, 07:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Прошу помочь описать состояние входов микроконтроллера. Есть два входа на STM. На них присутствуют логические состояния: 00, 01, 10, 11. Нужно при определенном состоянии вывести строку на дисплей. (Вывод строки я освоил.) Например, при состоянии на входах 00, шлем одно сообщение. при состоянии на входах 01, шлем другое сообщение и т.д. Смог реализовать только для одного вывода, 0 или 1.

CODE
DigitalIn SW1 (USER_BUTTON);


int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;

int main()
{

...

while(1)
{
buttonState = SW1;
if (buttonState != lastButtonState) {
if (buttonState == 1) {
buttonPushCounter++;

Шлем информацию на дисплей ...

}
else
{
Шлем информацию на дисплей ...
}

}
lastButtonState = buttonState;
}

}

Прошу сильно не пинать, только начал осваивать микроконтроллеры, использовал среду разработки mbed.

Сообщение отредактировал IgorKossak - Sep 7 2016, 18:10
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KnightIgor
сообщение Sep 7 2016, 08:11
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Evgeny72 @ Sep 7 2016, 08:46) *
Прошу помочь описать состояние входов микроконтроллера. Есть два входа на STM. На них присутствуют логические состояния: 00, 01, 10, 11. Нужно при определенном состоянии вывести строку на дисплей. (Вывод строки я освоил.) Например, при состоянии на входах 00, шлем одно сообщение. при состоянии на входах 01, шлем другое сообщение и т.д. Смог реализовать только для одного вывода, 0 или 1.

Сведите оба состояния в одну переменную и обработайте switch:

Код
unsigned char sw;

sw = (sw1 == 1) | ((sw2 == 1) << 1);

switch (sw) {

case 1: // 01

break;

case 2: // 10

break;

case 3: // 11

break;

default: { // 00

}
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 21:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.0134 секунд с 7
ELECTRONIX ©2004-2016