-
Thread
Entprellen > Bitte um Hilfe
Hallo, auch wenn das schon hundertmal diskutiert wurde, möchte ich um Hilfe bitten : Dies ist der Beginn eines Ereigniszählers. Ich hänge an der Tastenentprellung ( bei der Danegger Version blicke ich nicht durch ) und so habe ich nach googlen mir etwas zusammengebastelt. Bitte um Kritik und Verbesserungen. Und noch eine Frage : Kann ich bei der Simulation im AVR-Studio auch Tasten irgebdwie simulieren? Beim Simulieren diese Programmes hänge ich ja im main loop fest. Vielen Dank im voraus
-
Thread
Spannung und Strom mit dem Mega8 messen
jetzt gar nicht drann gedacht. ist auf jeden fall interessant. auf der seite wird das ganze ja mit tastern gesteuert. könnte man die regelung auch mit einem drehknopf umsetzen, finde das sieht dann irrgendwie besser aus.
einschalten. Das geht sehr gut in einem Timer-Interrupt, mit dem man auch noch ganz nebenbei Tasten entprellen oder andere Dinge erledigen kann. ...
-
Thread
msp430 Interrupt löst "selbständig" aus
das stichwort heisst "Taster entprellen"... VG, mui
Hast Du den Taster irgendwie entprellt?
-
Thread
LedMitMehrerenSchaltern
Schaltern schalten, d.h. jeder Schalter kann ein und jeder kann ausschalten. es sind Schalter keine taster. kann mir jemand Hilfe geben, welche grundlegende Struktur ich dafür nehmen sollte (d.h. if oder switch oder so)? Danke
wiederholen. Falls es sich bei den Schaltern um gewöhnliche mechanische Schalter handelt: Entprellen nicht vergessen, sonst kommt Müll raus.
-
Thread
hardwarenah, objektorientiert programmiert
using namespace Combie::Pin; using namespace Combie::Timer; using namespace Combie::Millis; TasterGND<2> schalter; // zwischen Pin und GND(invertierend) OutputPin<3> absaugung; OutputPin<4> maschine; EntprellTimer entprell { 20_ms}; // Schalter entprellen RisingEdgeTimer ton {500
eine Frage der Prioritäten. > Aus dem Lotus-Land gibt es auch Rückenschonenderes > > EntprellTimer entprell { 20_ms}; // Schalter entprellen > RisingEdgeTimer ton {500_ms}; // steigende Flanke wird > FallingEdgeTimer toff { 3_sec}; // abfallende Flanke wird > Ja, userdefined
-
Thread
lcd modul wd-c2704m-1hnn
120232) dieses hat 2 controller (HD44780 kompatibel) in der beschreibung steht das man dort 8 taster anschliesen kan. so nun möchte ich gern das wenn ich zb die taste oder schalter 1 drücke im display ein text steht ZB: Test 1 und wenn ich taste 2 drücke dann ein neuer text erscheint
Modul gibt es m.E. fertige Bibliotheken für die Displayausgabe. Allerdings fragen die nicht die Taster ab. Hast Du Dir die Anschlußpins der Taster mal angeschaut ? Das sind nur Kontaktflächen für eine Gummitastatur. Ansonsten die Taster abfragen (hier im Forum mal nach "Entprellen" suchen) und
-
Thread
Eingang: auf positive Flanke regieren
nicht extra einen Flip-Flop nehmen. (und beim togglen hochzählen) Und NEIN ich bin nicht zu faul Taster zu entprellen. Ich mach es zwar nur mit einem parallelen Kondensator, aber es funktioniert :D. mit freundlichen Grüßen, Wolfgang
die ausführliche Erklärung. Ich auch. Aber die Vorgehensweise ist immer: (Einsynchronisieren), Entprellen, Flanke erkennen, Flanke zählen
-
Thread
programmierung arduino schalter
schreiben für Aeduino uno,ähnich wie weiter oben, um meine Blinker am Fahrad zu steuern? -Habe 2 Taster, Links und Taster Rechts eingebaut. Zwei LED,s. für Links und Rechts (Blinker). Mit Taster Links, Blinker Links einschalten und beim 2x dücken auf den Taster, soll Blinken aus gehen. Für rechten Taster, auch so. Wenn man den einen oder den anderen Taster/Blinker als ersten gedrückt hat, soll der andere Blinker nicht kommen, ausser man bleibt 2 od. 3sec. auf beide Taster, dann kommen beide Led
-
Thread
Auswahlliste auf 16x4 Display mit 8051
schieben, dann scrollen. Ein Menü zurück entweder über Menüpunkt "zurück" oder über eine "Escape"-Taste (dann wären es 4 Tasten). Gruß aus Berlin Michael
du dass mit dem weiterschalten machst(inkrementieren?)? Hast du einen beliebigen Port Pin für die Tasten gewählt oder ne interrupt?? Kannst du mir sagen wie du das mit dem Entprellen machst? Mfg Cri
-
Thread
Arduino FlipFlop Schaltung ein/aus schalten
noch mal suchen. Ich selbst machte mit µC in den Anfangsjahren auch Designfehler, und entprellte Tasten direkt in der Main-Schleife. Die Tasten wurden aber dort direkt physikalisch auf Prellung untersucht, das ist eine Sache von einer Milisekunde, und dank Assemblercode gab es auch nie zeitliche Stockungen
hmmm ok, aber wie lasse ich sonst auf Knopfdruck die LEDs blinken ? Bzw. kann mit dem gleichen Taster die LEDs wieder ausschalten ? Das mit dem entprellen ist mir jetzt noch etwas zu hoch ;-)
-
Thread
Stoppuhr mit Interrupt (8051)
Taster abfragen ob gedrückt jmp abfrage oder Du nimmst Flankengetriggerten Interrupt EXT0 EXT1 gleiches Prinzip ABER..... Du mußt die Taster entprellen !!!! Soft oder Hardwareseitig. Keine Ahnung wie genau die Uhr sein soll. Im Einfachsten Fall ein FF am Taster.
-
Thread
Anfänger braucht Starthilfe :-)
in den reissenden Fluss springen. Ich würde erstmal erste Gehversuche machen. LED blinker, ein Taste abfragen, Taste entprellen. Das geht mit nem STK 500. Einen Debugger JTAG ICE MK-II oder einen AVR-Dragon (billiger, aber Codegrössengrenze <glaub max. 32k!). Wenn Du per Assembler und C die Gehversuche
am Anfang an und zerlege Dein großes Projekt in Teilprojekte 1. einen Motor mit Relais und 2 Tastern rechts und links rum laufen lassen 2. zwei Motoren mit Relais und 4 Tastern (oder 2en) rechts und links rum laufen lassen. 3. Schaltung 2 durch einen 5. Taster (3. Taster) ergänzen und rückwirkungsfrei
-
Thread
Leuchtschriftsteuerung
speichern kann, welches er durch die MANUAL-Taste vorgibt. --> Zum speichern eines individuellen "Blinkmusters" wird zunächst die STORE-Taste gedrückt gehalten, während mit der MANUAL-Taste das beliebige Muster "eingespielt" wird. Nachdem dann der
beinhalten das gewünschte Muster welches über den Ausgangspin ausgegeben werden soll. Sobald die CLEAR-Taste gedrückt wird, wird die InterruptRoutine aufgerufen, welche das Licht erlöschen lässt. Dann die STORE-Taste (das schwierigste an der Sache). Dabei frage ich zunächst ab, ob die Taste alleine oder
-
Thread
taster an at90s2313 / attiny2313
Debouncing=Entprellung unterzogen. Dazu hier im Forum mal nach Peter Danneneggers Source suchen "Tasten+Entprellen" in der Codelib. Fertig. Gruß Hagen
kennt jemand den taster von TASTER 1032.2 von reichelt ? bzw weiß jemand wie die abmasse sind ? jeroen
-
Thread
Pause im Interrupt
zu messenden Widerstand float SpannungLB; float Widerstand; float Widerstand2; //Variablen Taster int tasterRechts = 0; int tasterLinks = 0; int endschalterLinks = 0; int endschalterRechts = 0; int tasterVersuch = 0; // Entprellen Taster int reading; // Wert des Eingangs
-------------------------------------------------------------------- void loop() { tasterRechts = digitalRead(buttonPin1); tasterLinks = digitalRead(buttonPin2); tasterVersuch = digitalRead(buttonPin3); // Beim Wechsel des Eingangs von LOW zu HIGH und
-
Thread
Beispiel "Entprellun" Verständnissfrage
> Ich möchte den Code dazu bringen, mit "Low-Active" Tastern > zusammenzuarbeiten Genau das ist die von Peter bevorzugte Schaltungsweise von Tastern, weil man damit u.a. die internen Pull-Ups eines AVR verwenden kann. Du musst den Code im Artikel [[Entprellung]] für active-low Taster überhaupt nicht ändern. Oder verwechselst du vielleicht etwas mit dem Begriff. Zeige doch mal deinen Schaltplan...
-
Thread
Anfängerfrage: If-Bedingung und LED schalten
noch mit reinnehme funktioniert es, aber natürlich leuchtet dann die LED nur so lange wie ich den Taster drücke. Danke im Voraus Sebastian
Nachtrag: Die Taste prellt und muss noch mit einem Delay oder am besten mit einem Timer entprellt werden.
-
Thread
1. Projekt 5Bit-Rechner
optimieren, wenn du mal Übung hast, könnte z.B. so aussehen: clr r16 loop: sbic PIND, 0 ;wenn Taster = gedrückt(0), überspringe nächsten Befehl rjmp loop ;zurückspringen button: ;Taster gedrückt inc r16 ;zähle hoch sbrc r16, 4 ;wenn im Zählwert bit5 gesetzt ist (=32),
Hi, zum Entprellen könnte man vor "dem wait_button_release:" noch eine kleine Warteschleife einbauen. (für Taster... vielleicht 50 ms?) das "sbrc r16, 4 ;wenn im Zählwert bit5 gesetzt ist (=32)," würde ich persönlich
-
Thread
Zeitverzögerung mit 4538
deshalb nicht von selbst drauf... Die gewünschte Funktion konnte man vielleicht als eine Art "Entpreller" verstehen: Erst wenn der Taster dauerhaft für min. 1Sek. gedrückt wird, reagiert der Ausgang... Also Anti-Retriggerbar...
eine Taste eine bestimmte Zeit gedrückt ist ist Standardfunktion bei jeder Tastaturauswertung, reine Routine. Georg
-
Thread
Längere Tasterleitunggen direkt an Controller?
10uF parallel 100nF zur Eliminierung von Störungen gegen Masse. Serienwiderstand von 100 Ohm zum Taster.
solche langen Leitungen können leicht Störimpulse eingfangen. Kondensatoren brauchts nicht, Entprellen geht besser in SW. Peter
-
Thread
LED blinken mit Taster an/ausschalten will nicht so recht
LED soll beginnen zu blinken, wenn der Taster gedrückt wurde. Die Leuchtdauer und "Auszeit" wird über die Variable zeitmerker eingestellt. Wenn der Taster erneut gedrückt wird, soll das Programm anhalten, hierzu die Variable "statusProgramm".
Ich möchte die Qualität einer Entprell-Routine, die unnötig Rechenzeit verbrät (mit _delay_us(150);) grundsätzlich in Frage stellen. Und die Entprellung ist garantiert falsch: [c] debounce( (uint8_t*)&PINB, (1<<Taster1) )
-
Thread
Anzeige für Stockschützen
lahmsten Programmiersprache der Welt laufen, denn sonst ist ja nix zu tun. Außer das Einlesen und [[Entprellen]] der Taster. Das langweilt den RasPi immer noch!
" am > Monitor bedeutet hier die Bahnnummer. Ist aber nicht zwingend notwendig. > Mit den +/- Tasten sollen die Spielstände manuell eingetippt werden, > (Auf/Ab...für links und rechts, 00-Taste für Reset auf 00 : 00). Was fuer eine Tastatur? Wo? Wie angeschlossen?
-
Thread
Atmega16 als IR-Fernbedienung
Hallo, die Kondensatore parallel zu den Tastern habe ich zur Funkenlöschung angelötet. Entprellen mache ich nicht, da ich ja über externe Interrupts gehe und diese dann deaktiviere und erst nach ca 100 ms wieder freigebe. Ich benutze die externen
aktiviere ich ja die internen Pullups für Pin 16/17, sprich INT0 und INT1. Und an denen hängen ja die Taster.
-
Thread
Transistorschaltung und PCB Design
wurde aber ein Serienwiderstand zum Taster vergessen. Das führt dazu, dass der Kondensator schlagartig über den Taster entladen wird und die Kontakte auf Dauer sehr leiden müssen. Ich würde den Kondensator eher als ESD Maßnahme sehen und weniger zum Entprellen des Signals, und dann reichen 100pF auch aus.
-
Thread
STM32F105 Parameter im Code zur Laufzeit updaten
hier, die Peter Danneggers Tastenentprellung schon mehrtausendfach benötigt haben, weil sie das Entprellen ihrer Taste aus eigener Kraft nicht zuwege bringen, in der Lage sind, sich _mal eben_ ein kleines und tatsächlich funktionables wear-leveling auszudenken und zu implementieren? ich nicht. W.S
die Peter > Danneggers Tastenentprellung schon mehrtausendfach benötigt haben, weil > sie das Entprellen ihrer Taste aus eigener Kraft nicht zuwege bringen, > in der Lage sind, sich mal eben ein kleines und tatsächlich > funktionables wear-leveling auszudenken und zu implementieren? > > ich nicht
-
Thread
Problem mit Entprellung?
Ich bastel im Moment mein erstes µC-Projekt. Aus dem AVR-Tutorial habe ich diese Funktion zum entprellen kopiert: inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) ) { /* Pin wurde auf Masse gezogen, 100ms warten */
Warum verwendet eigentlich niemand einen 74C922 bzw. 74C923 um Taster/Tastaturen zum µC anzuschliessen. Dann gibt es keine Tastenprellprobleme mehr...
-
Thread
erstes C-Programm läuft nicht am AVR
Array counter[] notwendig ist. Das Programm wird zyklisch über die ISR ausgeführt und scannt alle Tasten (in meinem Falle gerade nur 2) Prellt die Taste nicht wird der Zähler bis auf 5 erhöht, und schaltet in diesem falle eine stelle des Arrays outputs[] auf eins was signalisiert das die Taste ohne
0; } Aber sobald ich die Funktion wieder rein nehme is wieder alles im eimer... Das entprellen der Tasten klappt eigentlich auch, denn wenn ich die funktion blinken rausnehme und nur die LED toggeln lasse kann ich die ohne Probleme an und auch wieder ausschalten. werde aber gerne deine
-
Thread
Interrupt an ATmega32
Ich würde dazu keinen Interrupt nehmen, sondern einen normalen Eingang pollen (und entprellen). Der Goldcap speichert Energie für mehrere Minuten (ein Goldcap 0,1F hat genug Energie für mehr als eine halbe Minute Soundausgabe mit Tiny85 über HS-PWM direkt auf Lautsprecher), da hast Du verdammt
wrote: > Ich würde dazu keinen Interrupt nehmen, sondern einen normalen Eingang > pollen (und entprellen). Der Goldcap speichert Energie für mehrere > Minuten (ein Goldcap 0,1F hat genug Energie für mehr als eine halbe > Minute Soundausgabe mit Tiny85 über HS-PWM direkt auf Lautsprecher), da > hast
-
Thread
IC4017 Dekadenzähler letzten Stand "merken" nach Einschaltung
an der Batterie (Falls man den Zähler beabsichtigt länger nicht zu benutzen, Urlaub o.ä.) - Ein Taster -> Reset (Pin 15, Reset) - Ein Taster -> Weiterschalten und LED kurz aufleuchten lassen (Pin 14 Clock) - Ein Taster -> LED kurz aufleuchten lassen Werde am Wochenende mal herumexperimentieren
Hallo Jörg, > So wie Du den Taster derzeit angeschlossen hast würde der 4017 unkontrolliert > "zählen" weil kein Kondensator zum entprellen angeschlossen ist (oder ein Widerstand fehlt)? Auf meinem Breadboard steckt einer drin,
-
Thread
zeitschaltung zur darstellung der UHRZEIT
vorgeschlagen. Meiner Schaltung fehlt noch eine Möglichkeit, die Uhr zu stellen. Einfach wäre je ein Taster mit R und Entprell-C zum Hochzählen der Minuten und Stunden, indem je ein EXOR-Gatter CD4030 /CD4070 bzw. 74HC86 in die "Puls-pro-Minute" und "Puls-pro-Stunde" Leitung eingefügt würde. Wenn man
programmiert (TTL/CMOS) oder komfortabel und flexibel auf einem AVR (dann evtl. gleich noch mit LCD und Tasten oder DCF77), das eigentliche Problem bleibt doch: - Magnetventile für 230V (Netzspannung, Einhaltung der VDE-Vorschriften) - Wasser (feuchte Umgebung, entsprechend dichtes Gehäuse) - relativ
-
Thread
Tastenstatus während Druck überprüfen
Sicherheit für viele von Euch eine Anfängerfrage. Ich programmiere in C mit einem ATmega8. Problem: Taster 1 gedrückt -> rote LED leuchtet Taster 2 gedrückt -> gelbe LED leuchtet Taster 1+2 gedrückt -> rote,gelbe,grüne LED leuchtet. Lasse ich nun einen der Taster wieder los ändert sich der Status der
Tasten fragt manmit einem Timer raster und einer Zustandsmaschine ab.
-
Thread
LED hat dauerhaft Spannung egal ob an oder aus
Bereite dich schonmal drauf vor, den Eingang in der Software zu entprellen...
Arduino zu entprellen und Auszuwerten. Ich werde mal ausprobieren was dabei raus kommt. Und zu meinem Arduino sollte das ganze dann ganz sicher galvanisch getrennt sein ;)
-
Thread
Interner Button Launchpad
sollte es das) in realem Code nicht vor. In realem Code sollte das dann so stehen [C] #define TASTER_PORT P1IN // Port, an dem der Taster hängt #define TASTER 3 // Taster hängt am Pin 3 vom Port 1 #define LED_POPRT P1OUT // POrt, an dem die LED hängt #define LED 7 // Diese LED hängt am Pin 7 .... if( TASTER_PORT & ( 1 << TASTER ) ) LED_PORT |= ( 1 << LED ); else LED_PORT &= ~( 1 << LED ); [/C] und wenn dann irgendwann mal die LED vom Pin 7 auf den Pin 5 umziehen muss (wegen zb Hardware
-
Thread
Anfängerfrage zu µC und BASCOM
Abschätzung der zeitlichen Abläufe. Ansonsten bietet Bascom da etliche eingebaute Funktionen zum Thema Tasten. Stichworte Entprellen von Tasten Interrupt Gruß aus Berlin Michael
ATMega8515 IMHO bereits entprellt. Zumindest hatte ich mit dem STK500-Board und den darauf befindlichen Tasten bislang keinerlei Probleme damit. Ich lasse die Tastenabfragen ja auch meistens in Schleifen laufen, wie ein nachtriggerbares "Monoflop", erst beim Loslassen der Taste wird's interessant. Dann läuft
-
Thread
Einstieg in die Welt der Mikrocontroller leicht gemacht: Onlinekurs zum ESP32 im Mai
anschließend irgendwelche Fachkenntnisse erworben haben? Mich erinnert das an die überdimensionale ENTER-Taste: "da mußt du draufdrücken, wenn die Lampe angeht". Anschließend hat man gelernt, auf die Taste zu drücken, .. na eben wenn die Lampe angeht. Ist doch was, oder? Mal im Ernst: Alles hat seine richtige
schreibt einer, der sich zu dämlich anstellt, die Signale für nen simplen Drehgeber sauber zu entprellen. W.S.
-
Thread
Pollin RFID Board Sicherheitssystem
Debounce ist vermutlich eine Bascom Funktion zum Entprellen von Tasten. Da du in deiner "Programmbeschreibung" nichts von Tasten geschrieben hast, kannst du diesen Teil auch weglassen ;-)
...ansonste kann man in Bascom auch mal die F1-Taste bemühen!
-
Thread
[C] GCC Atmega32, Menü über Funktionspointer, PeDa Entprellung, unterscheidet key_short/long nicht
questions/133214/is-there-a-typical-state-machine-implementation-pattern/9322528#9322528 Zum Entprellen der Tasten benutze ich den Code von PeDa. Hier mal der grobe Aufbau des Menüs: [code] Optionsmenü <-----> Option 1 <--> Option 1 einstellen ^ ^ |
Variable zuzuweisen, kann ich nicht überblicken. Zumindest können die if/else-Ketten bewirken, daß Tasten längere Zeit nicht ausgewertet werden, weil sie weiter hinten in der Kette stehen. Ich habe in Menüs die Tasten immer direkt ausgewertet. Dann ist es auch möglich, daß die selbe Taste in einem Kontext
-
Thread
Abfrage einer Folientastatur
Wenn du noch ein paar Dioden dazwischentust, müsstest du alle Tasten an einen Pin anschließen können. Musst die Dioden halt so einbauen, dass Strom zum Controller fließt aber nicht zurück. Also bräuchte man für jede Taste eine Diode. Wenn man dann eine Taste drückt, spricht der Interrupt an, die Dioden verhindern jedoch, dass alle Tasten kurzgeschlossen sind. mfg Michael
-
Thread
Lauflicht spezial
Sekunde wäre gut) und sie sollen auch anbleiben. Ich soll das ANgehen der LED's jederzeit mit einem Taster anhalten können, wobei die die bereits AN sind auch AN bleiben. Wenn ich den Taster loslasse sollen das ANgehen weiterlaufen. Wenn alle LED's AN sind sollen ALLE LED'S zusammen 3 mal blinken und der
spart man sich das Dekodieren und die Schaltung wird einfacher. Aber bloß nicht vergessen, die Tasten zu entprellen (RC-Glied mit Schmitt-Trigger) ! Oder man programmiert nen ATtiny2313 dafür, dann braucht man nur einen Chip. Peter
-
Thread
switch-case ausdruck!
statt switch case die if anweisung benutze funktioneiert es. aber mich ist das break wichtig, da die taster nach dem drücken in diesem zustand bleiben sollen und nicht mehr verändert werden.
[C] if(!(PIND&(1<<PIND2))) //irgendein Taster wurde gedrueckt, entprellt. [/C] Du scheinst umständlicher Weise eine externe Entprell-Hardware zu benutzen. Trotzdem sollte man immer einen Port einmalig in eine Variable einlesen, wenn man
-
Thread
Tastenentprellung mit Bascom
Taste nicht gedrückt ist. Ist sie gedrückt, wird die variable erhöht. Ist ein Schwellwert überschritten, so gilt die taste als gedrückt. Die Auswertung erfolgt grundsätzlich NICHT im Interrupt! [c] ISR
; while(1) { if ( u8TasteGedr = 1 ) { u8TasteGedr = 0; .. mach was mit Tastendruck und lösche ihn .. } //-- Anzeige auf Display au8Display [ Stelle 0..3 ] = au8Zahl[ anzuzeigende Ziffer 0..9 ];
-
Thread
arduino encoder problem
zurückdrehen wieder auf Null kommen. Stattdessen kommt einmal 400, das nächste mal -20 usw. raus. Zum Entprellen habe ich folgende Schaltung zusammengelötet. Hatte aber statt den 10 nF nur 100nF hier. Leider ergab dies keine Änderung
war noch eine Frage offen: >>> Welchen "Encoder"? Es gibt nicht nur einen einzigen... > Zum Entprellen habe ich folgende Schaltung zusammengelötet. Dreh mal den Encoder gaaaaaaaannnnnnzzzz lllllaaaaaaannnnggggssssaaaaammmm und miss die Spannung an den Pins. Was siehst du da? Wenn du gut bist kannst
-
Thread
dcf77 empfänger
klein anfangen: - LED an bzw. ausschalten - LED blinken (Delay Loop, Timerinterrupt) - LED mit Taster schalten, dabei merken, daß man den Taster entprellen muß - mehrere LEDs mit mehreren Tastern gleichzeitig schalten, d.h. lernen, wie man mehrere Aufgaben quasi gleichzeitig macht - LEDs in der Helligkeit
-
Thread
Eingangssignale mit delay einlesen
verzögert einzulesen? z.B. > Es wird als high erkannt, wenn es mind. 100ms anliegt Wie bei einem Taster auch: Entprellen. Der Entprellsoftware ist es egal, warum der Eingang "wackelt". > Wie kann ich das geschickt programmieren, wenn ich mehrere > Eingangssignale habe, ich kann ja nicht für jedes
Danke für die Antworten. Ja klar Entprellen ist das Stichwort. Ich habe hier im Forum diesen Beitrag gefunden und habe zu dem Code von Peter Danegger eine Frage: http://www.mikrocontroller.net/topic/164194#3803833
-
Thread
Eingangsschaltung für Reed-Schalter, Taster etc..
Ich möchte mit folgender Schalterung Reed-Relais, Taster oder sonstige potentialfreien Kontakte einlesen. Leitungslänge soll bis einige Meter möglich sein. J6 und J7 werden gegen J8 extern geschaltet. A3 und A4 sind direkt die Ports einer ATSAMD21G18A
articles/Entprellung#Einfacher_Taster > ESD, Surge und sonstige Einkopplungen sollten halt nicht direkt die MCU > killen. Da kann man ggf. noch eine ESD-Diode an den Eingang packen.
-
Thread
Zeit von einem Tastendruck Messen
Man könnte auch das Entprellen, das gedrückt erkennen und das lange gedrückt erkennen im Timerinterrupt zusammen fassen. Und damit es sich auch lohnt, das Ganze für bis zu 8 Tasten gleichzeitig. Wobei das lange gedrückt erkennen nur für eine Taste gleichzeitig ausreichen sollte. Das Beispiel ist allerdings nur in C geschrieben: http://www.mikrocontroller.net/attachment.php/252480/C_TAST.C Peter
-
Thread
Eingangsabfrage und Kontaktentprellung funktioniert nicht richtig in AVR Studio 4
reagiert wird, und dann mal exakt 2 sekunden! nur warum? :( christian [c] // Funktion: Taster entprellen und abfragen int status_standardtaster(void) { warten = 0; do { if ( (PIND & (1<<PIND5)) ) // Eingangssignal vorhanden? { warten = warten + 1;
die bedingte Wertzuweisung nicht gefällt. Genaugenommen muss man für exakte 1000ms gedrückten Taster auch noch den Pin abfragen. Im Code oben könnte man den Taster 25ms vor Schluss loslassen, das while verlassen weil warten == 0 wird und trotzdem ein 1 zurückgeben! [C] // Taster immer noch
-
Thread
Steigende Flanke mit Funktion klappt nicht
gedacht: [c] bool Eingang[64] = {false}; bool arraytest[40] = {false};; [/c] [c] void R_TRIG_Taster(bool bit,int bitnr, bool array[]) { if(!array[bitnr] && bit) //Taster wird gedrueckt (steigende Flanke) { array[bitnr] = true; } else if (array[bitnr] && bit) //Taster wird gehalten { array[bitnr] = false; } else */ //Taster wird losgelassen (fallende Flanke) { array[bitnr] = false; } return array; } [/c] so in der main-Schleife aufgerufen: [c] R_TRIG_Taster(Eingang[4],4, arraytest