Hallo, ich bin gerade an einem Projekt und benutze den MSP430f5529 genauer gesagt das Experimenterboard von TI. Nun versuche ich über längeres drücken eines Knopfes den MSP in den LMP zu versetzen. Da meine Kenntnisse noch etwas beschränkt sind würde mich interessieren ob dies überhaupt möglich ist. Im zugehörigen Beispielprogramm habe ich jedenfalls nichts dazu gefunden bzw. in meinen Büchern steht auch nichts dazu. Das alles soll folgender Maßen aussehen wenn ich den Knopf nur drücke geht mein MSP in den MassStorage-Modus und wenn ich den Knopf länger drücke soll er in LMP4 gehen. Der übrige Code stellt kein Problem da einzig die Sache das der Knopf länger gedrückt wird (>=3s) übersteigt doch meinen jetzigen Horizont. Kann man das über einen Timer regeln der in einer Whileschleife die Tastendruckzeit überprüft und wenn >=3s Fall a aufruft bzw. <3s Fall b? Also meine Frage, ist es überhaupt möglich (kann mir eigentlich nicht vorstellen wieso nicht) und wo finde ich hierzu Literatur im Netz? Bin für jede Hilfe dankbar!
Schau dir das mal an Beitrag "Tasten entprellen" Dort wird auch zwischen kurzem und langem Tastendruck unterschieden. Umschreiben auf einen MSP sollte keine Problem sein. Ich benutz sowas in einer abgewandelten Art auch immer für andere Controller z.B. PIC. Tom
Vielen Dank für die Antwort, das man dieses Problem über die Entprellung lösen kann war mir nicht bewusst. Hab nun nochmal das Demoprogramm durchforstet und bin auf das hier gestoßen (HAL_Buttons.c): /*********************************************************************** ****//** * @brief Sets up the WDT as a button debouncer, only activated once a * button interrupt has occurred. * @param none * @return none ************************************************************************ ******/ void Buttons_startWDT() { // WDT as 250ms interval counter SFRIFG1 &= ~WDTIFG; WDTCTL = WDTPW + WDTSSEL_1 + WDTTMSEL + WDTCNTCL + WDTIS_5; SFRIE1 |= WDTIE; } Das sieht ja eigentlich schon sehr gut aus. Jedoch habe ich mit dem Watchdog noch nicht gearbeitet. Laut einem Buch hängt der Intervall (250 ms) von den Ausgewählten Bits ab und kann von 2 bis x ms eingestellt werden. Wenn ich meine Literatur richtig verstehe wird über WDTIS die Bitzahl eingestellt welche dann die Durchläufe bzw. die Zeit regeln. Kann mir jemand ein gutes Tutorial für den Watchdog empfehlen. Vorzugsweiße für den MSP430 da ich erst am Anfang stehe und noch so meine Probleme mit dem Programmieren habe. Oder weiß zufällig jemand was ich im Code oben ändern kann um auf ca. 3 s zu kommen (WDTIS_5 durch bspw. WDTIS_60 ersetzen?) oder ist das nicht so einfach wie ich denke. Vielen dank nochmal, stehe einfach noch am Anfang und das alles erschlägt mich dann doch ein wenig!
Was macht deine Experimentierplatine denn während du den Taster betätigst? Denn wenn da nix zu tun ist würd ich den Taster z.B. alle 100ms Pollen. Wenn er Die Anzahl der Pollings wird gezählt. Die Anzahl der positiv zurückgegebenen Werte des Pollings (Taster ist gedrückt) kann man zählen und sich daraus dementsprechend eine Zeit berechnen. Sobald der Taster nicht mehr gedrückt ist kann man noch 1 oder 2x abfragen um sicherzustellen, dass der Taster wirklich nicht mehr gedrückt ist und kann aufhören zu pollen. - Ich habe den Beitrag über "Taster entprellen" nicht gelesen. Ich habe so mal mit einem PIC ein Türcodeschloss entprellt, bei dem der PIC nix anderes zu tun hatte, als auf Tasteneingaben zu warten.
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.