Ошибка в заявлении о программировании на языке роберта в Calliope mini?

Я пытаюсь программировать на недавно выпущенной компьютерной мини-платформе Calliope ( https://calliope.cc/), используя один из предлагаемых редакторов Roberta, графический интерфейс ( https://lab.open-roberta.org/).

Простая программа, которая проверяет, нажата ли клавиша и выводит ли привет сообщение, не работает должным образом. В то же время работает прямой вывод сообщения, а также вывод и оператор if, который использует условие "всегда верно" (1==1).

Другие редакторы, такие как https://miniedit.calliope.cc/ могут обрабатывать ввод с клавиатуры без проблем, поэтому я могу исключить любые проблемы с оборудованием.

Мне кажется, что Роберта содержит ошибку в обработке ключей в связи с операторами if.

Кто-нибудь наблюдал подобное поведение?

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

Снимок экрана и код прилагается. Спасибо за любые подсказки!

#define _GNU_SOURCE

#include "MicroBit.h" 
#include <array>
#include <stdlib.h>
MicroBit uBit;


int initTime = uBit.systemTime(); 


int main() 
{
    uBit.init();

    if ( uBit.buttonA.isPressed() ) {
        uBit.display.scroll(ManagedString("Hallo"));
    }
    release_fiber();
} 

Пример кода в графической IDE

1 ответ

Решение

Вы должны поместить свой код в бесконечный цикл:

int main() 
{
    uBit.init();

    while ( true ) {
        if ( uBit.buttonA.isPressed() ) {
            uBit.display.scroll(ManagedString("Hallo"));
        }
        uBit.sleep(1);
    }
    release_fiber();
}
Другие вопросы по тегам