Dzień dobry. Z racji tego, że jest to mój pierwszy post w tym serwisie to witam wszystkich serdecznie. Na imię mam Artur, od momentu jak zobaczyłem na YT kurs jak programować arduino to temat ten bardzo mnie zainteresował.
Rodzice kupili mi Raspberry Pi 3B i piszę prostą aplikację w QT Creator która będzie mi sterować światłem i innymi bajerami w pokoju.
W "Formularze" mainwindow.ui dodałem sobie przycisk i kod który jest napisany w jego funkcji działa. Tzn kompiluję program, uruchamia się okno z tym przyciskiem i jak w niego kliknę to kod działa.
Chciałbym by pewna część kodu wykonywała się w pętli cały czas nie zależnie od tego czy kliknę jakiś przycisk na ekranie czy nie. W arduino mam pętle główną i nie ma tego problemu a w środowisku QT Creator gdzie bym nie wstawił mojego kodu to on się nie wywołuje.
Dla przykładu weźmy prosty kod który ma ustawić wyjście na stan wysoki gdy przełącznik podłączony do GPIO do wejścia zostanie przełączony i tym samym zewrze + do wejścia.
if (digitalRead(7)==HIGH){
digitalWrite(8,HIGH);
}
Oczywiście mam zdefiniowane że pin 7 to wejście a pin 8 to wyjście. Używam biblioteki WiringPi.
Gdzie tego kodu nie wstawię to on się nie wywołuje, nie działa w pętli. Próbowałem go umieszczać w pliku mainwindow.cpp w miejscu gdzie jest
MainWindow::~MainWindow()
{
mój kod
delete ui;
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent) ,
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui0>label->setNum(0);
wiringPiSetup();
zmiennatestowa=0;
pinMode(7, INPUT);
pinMode(8, OUTPUT);
mój kod
}
Próbowałem też w main.cpp ale tam pokazuje że kod jest błędny i widzę, że każda linijka kończy się ; . Jak wstawię ; to dalej pokazuję że brakuje ;.
Próbowałem też w mainwindow.h ale też pokazuje błędy i sytuacja jak wyżej.
Jak wstawię mój kod w miejsce gdzie jest obsługa przycisku, uruchomię program, przełączę przełącznik i wcisnę ten przycisk na ekranie programu to kod się wywołuje i działa.
void MainWindow::on_pushButton_clicked()
if(digitalRead(7)==HIGH){
digitalWrite(8,HIGH);
}
Czy w tym środowisku jest takie miejsce gdzie kod wykonuje się w pętli ?
Oglądałem tutoriale na YT jak programować w tym QT Creator ale w żadnym z filmików nikt tego nie omawia.
Przepraszam jeśli moje pytanie jest banalne ale w szkole uczą mnie jak obsługiwać painta i jakie są peryferia do komputera...