Hallo, ich bräuchte mal einen Rat bei einem Projekt wo ich zurzeit ein wenig hänge Aufgabenstellung Es gibt einen Taster der gedrückt wird damit ein Programm abläuft beim drücken des Tasters soll das Laufende Programm nicht abgebrochen werden sondern erst bis zum Schluss durchlaufen Gleichzeitig soll der Microcontroller sich das Signal merken wenn der Taster gedrückt wird und wie oft. Soll wie folgt z.B. aussehen Taster ist gedrückt Ledlauflicht von 8Leds startet Das Programm ist bei Led 4 angekommen und Taster wird noch zweimal gedrückt Somit soll nach Beendigung des Ledlauflichtes das Programm noch 2xdurchlaufen werden Hat da jemand vielleicht ein Beispielcode in C?
Pinie schrieb: > ich bräuchte mal einen Rat bei einem Projekt wo ich zurzeit ein wenig > hänge Dann hast du ja schon was. Zeig das doch (am Besten als Anhnag in einer .c Datei), dann kann man darüber diskutieren.
gugst Du Entprellung Dann machst Du eine Flanke und damit wird eine Variable hoch gezählt. Bei jedem LED Durchlauf wir wieder eins abgezogen. Fertig Axel
Ahh... jetzt müsst Ihr mir nochmal helfen mit den Flanken ich habe noch nie Flanken Programmiert das ist mein Problem :( Ich sehe mich ehr als besserer Anfänger was das Programmieren angeht bestendank im vorraus
LESEN: http://www.mikrocontroller.net/articles/Netiquette#Keine_Rundumschlagprobleme_als_Aufgaben_stellen Einem Bäcker (nichts gegen Bäcker) wird man eine solche Aufgabe wohl kaum stellen, ich gehe also davon aus dass du in der Schule / im Studium das nötige Wissen gelehrt bekommen hast. Wenn du natürlich nie da warst Pech gehabt, setz dich auf deinen Hosenboden und hol es nach. Das Forum ist keine "Wir-machen-deine-Hausaufgaben-und-du-kassierst-das-Diplom-ohne-einen-Fi nger-zu-rühren"-Plattform!!!
Pinie schrieb: > jetzt müsst Ihr mir nochmal helfen mit den Flanken ich habe noch nie > Flanken Programmiert das ist mein Problem :( Flanken erkennen ist sehr einfach. Hast du schon tausendmal gemacht Es geht darum festzustellen, ob sich etwas verändert hat. Dazu merkt man sich den jetzigen Zustand. Sieht man dann später noch einmal nach und ist der Zustand dann verschieden vom jetzigen Zustand, dann gab es in der Zwischenzeit eine Flanke zb warten bis eine Flanke kommt
1 | uint8_t vorher; |
2 | |
3 | vorher = Pinzustand; |
4 | |
5 | while( Pinzustand != vorher ) |
6 | ;
|
oder in der Hauptschleife etwas tun, wenn eine Flanke detektiert wird
1 | uint8_t vorher, jetzt; |
2 | |
3 | vorher = Pinzustand; |
4 | |
5 | while( 1 ) { |
6 | ....
|
7 | |
8 | jetzt = Pinzustand; |
9 | if( vorher != jetzt ) { |
10 | |
11 | mach was; |
12 | vorher = jetzt; |
13 | }
|
14 | |
15 | ...
|
16 | }
|
ist immer das gleiche Schema: in einer Variablen einen Zustand merken und etwas später vergleichen, ob er noch vorliegt. Wenn nicht, dann gab es eine Schaltflanke. Zb * ein Taster wurde gedrückt * vorher waren noch keine Schuhe im Vorzimmer -> die Flanke "Frau ist nach Hause gekommen" ist eingetreten * Auto vom Sohnemann stand vorhin noch in der Garage -> die Flanke "der ist schon wieder zu seiner Dulcinea gefahren" ist eingetreten * vor 10 Minuten war dein Dach noch auf dem Haus -> die Flanke "Wirbelsturm" ist eingetreten. * .... Wie gesagt: Hast du im realen Leben schon tausende male gemacht in unzähligen Variationen.
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.