Guten Tag, ich habe gerade mit einem STM32F407 Mikroprozessor begonnen zu programmieren. Dies in C++. Ich habe bereits erfolgreich einige LED's aus- und eingeschalten und möchte nun einen Taster abfragen. Ist der Taster aktiv sollten alle LED's leuchten, ist er nicht aktiv sollten keine LED's leuchten(Kann auch umgekehrt sein, es muss nur klar sein ob der Taster gedrückt wurde oder nicht..) Die LEDs befinden sich auf GPIOD8-GPIOD15 und wurden bereits initialisiert. Der Taster befindet sich auf GPIOE8 und wurde ebenfalls initialisiert. Nun weiss ich leider echt nicht wie ich in C++ einen Taster abfragen kann. Kann mir bitte jemand helfen? Ich stelle mir ca. so einen Code vor: main() { Initialisierung(); if(Taster gedrückt) //Tastenabfrage?? { LEDs on } else { LEDs off } }
Poste doch mal den Header und die Source deiner Klasse mit der du die Pins als Ausgang setzt und ein- und ausschaltest. Letztlich ist der Unterschied nur, ein anderes Register zu lesen und eine Art bool GetPinLogicLevel() Methode zu implementieren. Welches Register das ist, hängt von der Port Base Adresse und der Pin Nummer ab. Ist ja alles in Headern definiert und hast du scheinbar schon benutzt. Die PortBase und PinNummern sind heiße Kandidaten für Konstruktorparameter. Deswegen frage ich nach deiner Pinklasse. Wenn die sinnvoll gemacht ist, nimmt derern Konstruktor schon z.B. unter anderem Port und Pin Adresse.
spannungsfreak schrieb: > Nun weiss ich leider echt nicht wie ich in C++ einen Taster abfragen > kann. Im C++ Standard steht nichts über Taster. Du wirst ein API dafür benutzen müssen. Wenn du die HAL oder SPL nutzt, lies in deren Anleitung nach wie das damit geht. Wenn du direkt auf Register zugreifst, lies im Reference Manual nach. Lesen musst du noch selber tun, das erledigt das Forum nicht für dich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.