-
Thread
Stk500 switches
Für Taster nach GND an PINB.3 [code} Config Pinb.3 = Input Portb.3 = 1 [/code] Mit "Debounce" könntest Du noch entprellen.
Scheint dann bei Dir so zu sein. Siehe hier: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/taster_entprellen/
-
Thread
Auf ADC warten im Interrupt?
Hallo, mein Mikrocontroller langweilt sich warscheinlich zu tode, da er ansonsten nur 2 Taster abfragen und entprellen sowie ein paar Leds ansteuern muss. Warscheinlich hätte ich das komplette Programm in die ISR schreiben können ohne dass es Probleme gibt. Aber mich hat einfach mal interessiert
-
Thread
Drehgeber anschließen über 1m-Zuleitung - Leitung schirmen?
angesteuert werden, ohne PWM, also einfach nur statisch an. Dann noch die vier Drehgeber und ein Taster, das war's. Allerdings soll die Schaltung auf einem Messestand verwendet werden, wie es da mit Störquellen aussieht weiß man vorher ja nie so genau. Gruß Jens
Kondensatoren könnten das Entprellen durcheinander bringen. Besser die Pullups schön niederohmig machen (1k). Die Abfrage im Timerinterrupt sollte dann ausreichend resistent gegen Störungen sein. Oder jedem Encoder seinen eigenen
-
Thread
get_key_long() von Peter Dannegger
bar(); } } } [/c] Habe ich hier irgendwo einen Denkfehler? Ich kann den Taster solange drücken wie ich will, bar() wird nie aufgerufen. Danke schonmal, Alex
key_rpt |= key_state & REPEAT_MASK; #endif [/c] Wer hat sich denn sowas ausgedacht? Ob Taste gegen GND oder VCC, wird nur beim Einlesen des Input-Ports unterschieden, nirgendwo anders! Peter
-
Thread
Aufruf einer CLK-gesteuerten FSM mittels einer Buttonflanke
unterwegs. Ich habe einen Button1, welchen ich schon (habe ich bereits überprüft) erfolgreich entprelle. Ich habe dann also intern ein sauberes "Pushed" Signal in meiner architecture, welches eben konstant auf 1 ist wenn der button gerade eingedrückt ist und ansonsten 0. Liefer mir also sobald ich
www.mikrocontroller.net/topic/197296 Und dann befass dich mit dem Thema /Einsynchronisieren/ und dem richtigen Entprellen von Tastern und der anschliessenden Flankenerkennung: http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren http://www.lothar-miller.de/s9y/categories/5-Entprellung http://www.lothar-miller.de
-
Thread
ISR wird nach einem Pinchange Interrupt 2x ausgeführt?
. G. schrieb im Beitrag #2581281: > Hat jemand einen Tip was da sein könnte? Ja, Deine (jede) Taste prellt. Deshalb Tasten nie mit einem externen Interrupt abfragen! Sondern mit einem Timerinterrupt entprellen. Peter
Peter Dannegger schrieb im Beitrag #2581287: > ...Sondern mit einem Timerinterrupt entprellen. Hallo Peter! Ich habe mir deine Komfortroutine etwas angesehen, aber das ist natürlich ein overkill für eine einzige Taste welche am PCINT0 hängt. Hast du ein Beispiel mit einem Timer Interrupt
-
Thread
Counter hochzählen mittels Taster -Atmega88
im Beitrag #2580044: > Könnt ihr mir gegenenfalls einen Ansatz/Idee geben wie ich es besser [[Taster entprellen]]
Okay das ich den Taster entprellen muss, war mir klar bzw. das es damit zusammen hängt. Nur wird mir aus dem bislang gelesenen nicht deutlich wie ich das auf diesen konkreten Fall anwenden soll. Da die bislang gelesenen Artiklen
-
Thread
Externer Interrupt INT0 und INT1 mit internen PullUps
port,pin) ((*(volatile struct bits*)&port).b##pin) #define SBIT(x,y) SBIT_(x,y) #define TASTER0 SBIT(PORTD,PD2) #define TASTER0_DDR SBIT(DDRD,PD2) #define TASTER1 SBIT(PORTD,PD3) #define TASTER1_DDR SBIT(DDRD,PD3) #define LED0 SBIT(PORTC,PC0) #define LED0_DDR SBIT(DDRC,PC0
_DDR = 1; LED1_DDR = 1; LED0 = 0; LED1 = 0; //INTERRUPT (MCUCR S.33, GICR S.49) TASTER0 = 1; // Interne PullUps setzen TASTER1 = 1; // Interne PullUps setzen TASTER0_DDR = 0; // Pin auf Eingang TASTER1_DDR = 0; // Pin auf Eingang // von Dir übernommen MCUCR
-
Thread
Long time Oscilloskop with Atmega32 & LCD-Display 128x64 Pixel
Eingang als AC, 500mV, 100usec, Trigger ein, Triggerlevel = 32 (50%) und + Trigger, Auto: Die Taste „Toggle“ wechselt zwischen AC und DC Die Tasten „Up“ und „Down“ wählen den Spannungsbereich, Die Tasten „left“ und „right“ wählen den Timing-Bereich Mit der Taste „Modus“ wechselt man in
Triggerschwelle und Trigger-Polarität Mit der Taste Toggle wird zwischen + Trigger und - Trigger gewechselt Die Tasten „Up“ und „Down“ wählen den Trigger-Level Mit der Taste „Modus“ wechselt man wieder in den Modus „Auto“ Mit dem Potentiometer
-
Thread
LEDs langsam auf- und wieder abdimmen
arbeiten. Auf PB0 hast du jetzt die gleiche PWM wie auf PB1. Das dann abhängig von irgendwelchen Taster oder sonstigen Eingaben machen ist kein Problem. Bei einem Mega16 hast du vier PWM und 32IO.
parallel geschaltet, sonder mittels SW. Auf diese Weise kannst du Leds faden lassen wenn du eine Taste drückst. In meiner SW geschieht das hier: [c] if (PINB &(1<<PINB1)){ PORTB|=(1<<PB0); } else { PORTB &= ~(1<<PB0); }[/c] Wenn du es mit Taste willst musst du vorher
-
Thread
Keine Output am Pic
genauer sind als bei AVRs, aber das hab ich nur mal gelesen. Wenn du eine Relaiskarte machst, ein paar Tasten auswerten willst, nen LED-Cube machen willst, reicht der massig aus. Ob du zum entprellen der Taster 20ms oder 20,05ms wartest, ist ja total unrelevant. Es gibt allerdings Sachen, wo er als zu ungenau
-
Thread
itoa gibt fehlerhafte werte aus
1) Deine Tasten Prellen. 2) Du löschst das LCD nicht.
Hast du wirklich nur diesen Code und die Tasten direkt auf die Pins die den Interrupt triggern? Dann muss man gar nicht weitersuchen, ohne Entprellen wird das nie was. Tipp: Schreib erst mal ein Programm das Testzahlen sauber aufs Display schreibt
-
Thread
Wie viele Quadratur Encoder hat ein Mikrocontroller ?
aktuellen Signalkombination, muss jeweils die negative oder die positive Flanke INT auslösen. Ein entprellen wie bei einem Taster ist bescheuert, man kann bei einem Drehgeber doch nicht einfach die Pulse wegfiltern. Aber alles spekulieren hilft nichts, da wir nicht mal wissen welches Ausgangssignal der
nicht mehr ausführen weil es nur mit der Bearbeitung der Interrupts beschäftigt ist. > Ein entprellen wie bei einem Taster ist bescheuert, man kann bei einem > Drehgeber doch nicht einfach die Pulse wegfiltern. Falschaussage. Wenn man die maximale Drehzahl des Drehgebers kennt, kann man sehr
-
Thread
Problem mit Atmega 168-20PU
PWM Ausgängen Transistoren, dann die 11 Display Pins an verschiedenen Ausgängen und 4 Eingänge für Taster mit kondis zum entprellen. Ich werd mal morgen nen richtigen Schaltplan anfertigen. Nen Multimeter habe ich und ich hab die Schaltung auch so weit getestet wie es ohne MC geht, also jeden Pin gemessen
-
Thread
FlipFlop mit Nands / Umschalter
glaube ich bräuchte mal Hilfe von jemanden der schlauer ist als ich... ;-) Und zwar folgendes: 4 Taster 4 LEDs Jeder Taster schaltet jede LED "EIN". (aber nicht mehr aus) (d.h. FlipFlop Schaltung... das geht ja noch...) Aber: Jetzt soll immer nur EINE LED leuchten und zwar dort wo der Taster
Röllen schrieb im Beitrag #2559894: > Jetzt soll immer nur EINE LED leuchten und zwar dort wo der Taster > gedrückt wurde. Und wenn aber 2 Tasten gedrückt werden? Peter
-
Thread
FLIP FLOP Schaltung
stgammt aus dem Thread [http://www.mikrocontroller.net/topic/247265#new] Allerdings mußt Du Deinen Taster zum Anschluss an "Puls" entprellen. Gruss Ottmar
Leider geht das nicht, weil nur eine Taste vorhanden ist.
-
Thread
Nur 2 Pins mit einer case abfrage abfragen
rechtslauf(); break; } } [/c] Ein anderes Thema wäre Entprellung. Taster/Schalter prellen.
vertauschen. ;-) Alle Bits umzudrehen führt in die Irre. Case 0x01000000 bedeutet, dass der Taster an Pin 7 aktiv ist.
-
Thread
Drucktaster und Schalter richtig an FPGA anschließen
Auf deren Website ist der Schaltplan zu deinem Board. Seite 9 (von 12) zeigt es deutlich: Taster nach 3,3V, Signalseite über 10K gegen GND. Signalseite ebenfalls über 10K zum FPGA-Eingang. Die Signale am Hirose-FX2 sind über 75 Ohm an den FPGA-Pin angeschlossen, so dass du hier dieselbe Schaltung
debouncen Du musst den Eingang sowieso eintakten. Nebenher kannst du dann gleich noch ein wenig entprellen...
-
Thread
Erklärung einer Taster ISR
Ich bin gerade dabei das Tut hier im Forum durchzuarbeiten und bin jetzt beim Thema Taster entprellen etc. Jetzt bin ich bei dieser ISR angekommen aber verstehe nicht was genau da passiert: [c]ISR( TIMER0_OVF_vect ) // every 10ms { static uint8_t ct0,
Diese ISR erledigt zwei Dinge oder? zum einen fragt sie bei jedem timer overflow den status der Taster ab und zum anderen entprellt sie die Taster. Stimmt das oder liege ich da komplett falsch?? es wär super wenn jemand so geduldig wär mir den code schritt für schritt zu erklären. mfg
-
Thread
Interrupts mit Taster auslösen
Hallo, gibt es in C einen Trick ohne Timer, dass wenn ich einen Taster kurz drücke, dass er dann nich 200Millionen mal die ISR durchläuft ? Brain
Wenns unbedingt mit Interrupts sein soll, dann den Taster in Hardware entprellen (RC-Glied am Pin des µC, kann ggf. den internen Pullup nutzen).
-
Thread
Hilfe Ladereglung Atmega16 Assembler
hat) getan werden soll; z.B. Timerinterrupt: Zählen einer Zeit, die im Programm benötigt wird, Entprellen von Tastern ... Hinweis: Unterprogramme enden mit "ret" (zurück zur Adresse, wo das Programm aufgerufen wurde). ISRs enden mit "reti" (zurück zur Adresse, wo das Programm durch den Interrupt
int1_handler ; IRQ1 Handler . . . int0_handler: 1.)+++ und hier wird der interrupt (Taste) ausgelöst sbi PORTB, 0 reti Gruß Werner
-
Thread
µC - Alles auf einmal! (Design-Pattern)
Wie etwa dimmen über PWM, mittels ADC Spannungswerte auslesen, auf verschiedene Art und Weisen Tasten entprellen, UART, mittels UART und AT-Commands weitere Peripherie ansprechen wie etwa einen Ethernet-Controller und damit ein kleines Netzwerk aufbauen, LCD-Displays, usw, usf. Zum auf die Sahnetorte-Hauen
kenne gibt es wohl nicht. Es gibt kleine Lösungen für immer wiederkehrende Fälle, wie etwa das Entprellen von Tastern, aber nicht für komplexere Probleme. Vermutlich schießt man dann auch schon über die Lösung mit einem *µ* C über das Ziel hinaus. Vielen Dank Fabian
-
Thread
Vorschlag: C-Funktion für Taster-Entprellung
> was sie davon halten Schrott. Nimm an, der Taster wechselt bei jeder Abfrage den Zustand (!(*Port & (1<<Pin))) Dann zählt munter Values[0] bis 255 und Values[1] bis 255, jeweils abwechselnd. Natürlich funktioniert das. Weil ein Entprellen
Auslesen des Zustands diesen zurücksetze, >> dann wird dieser Zustand erst wieder gesetzt, wenn die Entprell-Routine >> erneut ein sicheres Signal festgestellt hat. Also nach 20ms oder sowas. > > Und wie schnell kannst du als Mensch einen Taster 2 mal hintereinander > betätigen? > > Das ganze Konzept
-
Thread
Vor/Nachteile SchmittTrigger vs. Softwareentprellung
Ausserdem ist es umgekehrt. SW-Entprellung geht nur für mässig schnelle Signale. Wenn ich einen Taster an einem Eingang habe, dann kann kein Mensch einen Taster drücken und ihn 30 Millisekunden später schon wieder loslassen. So schnell bist du nicht. Habe ich also ein Eingangssignal, auf dem ich einen
die fängt gerne mal EMI ein. Und dann wundert sich der Anfänger, wenn was passiert, obwohl er die Taste nichtmal berührt hat. Peter
-
Thread
Einsteiger FPGA für Parallelisierung von Kryptografischen Algorithmen
Entscheidungsbasis viel auf Peripherie konzentriert wird. Ich brauche keinen Grafik-Ausgang, LED, Taster, Codecs etc. All der Kram ist aber bei den einschlägigen Einsteiger-Boards immer dabei. Wenn ich mein erstes Hello World schreiben und eine LED zum blinken bringen will, kann ich diese problemlos selber
Daniel R. schrieb im Beitrag #2540089: > Ich brauche keinen Grafik-Ausgang, LED, Taster, Codecs etc. All der Kram > ist aber bei den einschlägigen Einsteiger-Boards immer dabei. Wenn ich > mein erstes Hello World schreiben und eine LED zum blinken bringen will, > kann ich diese problemlos
-
Thread
4 Bit Zähler aus Flip-Flops
Entprellung ist schon nötig. Wenn du einen Taster mit Wechslerkontakt hast, dann gibt es die Methode mit RS FF zu entprellen, so lernt man gleich noch was zu FF. Ansonsten wie beschrieben mit rc glied und Schmitt trigger z.B. CD 4093 geht gut.
...wenn der Taster nur einen Kontakt (Schließer) hat kann man auch mit einem Relais einen Wechler daraus machen...und dann ein RS entpreller und Gatter JK nachschalten. Dann kommen wir aber bereits in diese Gegend:
-
Thread
Assembler, Counter, 7Segment
out team2_led_ddr, temp ; PortB auf Eingang setzen ldi temp, 0x00 out taster, temp rcall setnull rjmp loop loop: ; Taster abfragen +/-/reset SBIC PINB,0 ; Taster 1 = Team1 + rcall setteam1 SBIC PINB,1 ; Taster 2 = Team1 - rcall resetteam1 SBIC PINB,2 ; Taster 3 = Team2 + rcall setteam2 SBIC PINB,3 ; Taster 4 = Team2 - rcall resetteam2 SBIC PINB
-
Thread
Binär-Uhr hoffentlich finale Schaltung
Samuel K. schrieb im Beitrag #2538457: > 1 Takt fürs einlesen ohne Entprellen oder 12 Takte mit entprellen bei > 30Hz Refresh @1Mhz: Ein Taster prellt doch typischerweise ca 20-30ms. Wie komme ich da mit 12 Takten hin? Oder werde ich früher oder später auf solche kniffe
Oder werde ich früher oder später auf solche kniffe beim > Programmieren kommen, dass ich das entprellen im Hintergrund laufen > lassen kann? Entprellen macht man zyklisch. Die Taste wird zyklisch abgefragt. Wenn sie 4 mal hintereinander gedrückt war gilt das als gedrückt. Im Forum gibts es genügend
-
Thread
taster abfrage
guten tag, ich benutze die taster-Entprell-Routine von Peter Dannegger die auch super Funktioniert. Nun hab ich das Problem, ich hab eine eigene selbstgeschrieben Funktion in einer externen C-Datei die auch eingebunden ist, wenn ich in dieser Funktion die Taster-Abfrage reinschreibe bekomm ich Folgende Warnings angezeigt: implicit declaration of funktion 'get_key_short' implicit declaration of funktion 'get_key_press' implicit declaration of funktion 'get_key_rpt
-
Thread
-
Thread
Servomotor per Tastendruck steuern
nachher den Modus(linke oder rechte Position) bestimmt. Danach hab ich kurze Wartezeiten um den Taster zu "entprellen". Die folgende for-scheife: for(schleife=0;schleife<1000;schleife++) { ... wartet noch eine kurze Zeit auf den nächsten Tastendruck. 1. Kommt der wird mode nochmal hochgezählt
neuer Post würde sich nicht lohnen. Ich würde gern für oben genannte Schaltung noch einen 2. Taster kaufen. Allerdings stolper ich bei CONRAD über die Schaltspannung. Die liegt da bei allen Tastern um die 200V. Mein Mikrocontroller läuft doch mit 6V... Funktionieren solche Taster an meinem AVR? Ist
-
Thread
Wie geht man ein Assemblerprojekt an ?
benötigte Takte mit dem Ziel, gemeinsame Vielfache für mehrere Aufgaben zu finden. Wenn ich z.B. Tasten entprellen muss, dann brauche ich einen Takt um die 30 bis 200 Hz. Ist noch ein handbetätigter Drehgeber im Spiel, brauche ich noch einen Takt von etwa 1 kHz. Wird Blinkerei gebraucht, so braucht es
kann man Tasten nicht entprellen. Beim Drehgeber benutze ich aber nicht Peters Routine, sondern meine eigene (mit LUT), wie auch für LCD und Ausgabeformatierungen. Und statt vieler einzelner Vergleiche benutze
-
Thread
Xmega128A3 SPI Problem
CLKSYS_Main_ClockSource_Select( CLK_SCLKSEL_PLL_gc ); // IO Init PORTA.DIR &= ~(1<<PIN0); // TESTINPUT0 Taster PORTA.PIN0CTRL |= 0x18; // Pullup PORTA.DIR &= ~(1<<PIN1); // TESTINPUT1 Taster PORTA.PIN1CTRL |= 0x18; // Pullup PORTA.DIR &= ~(1<<PIN2); // TESTINPUT2 Jumper PORTA.PIN2CTRL
SPI_INTLVL_OFF_gc; // SPI Status auf 0 setzen SPIE.STATUS = 0; while(1) { // Taster0 abfragen if (!(PORTA.IN & 0x01)) PORTA.OUTSET |= 0xf0; else PORTA.OUTCLR |= 0xf0; // Taster1 abfragen if (!(PORTA.IN & 0x02)) { _delay_ms
-
Thread
Problem mit einem Code (Atinny2313)
registriert wird. Jedoch hat der Attiny2313 nur 2 externe Interrupt Pins(INT0, INT1) aber ich müsste 3 Taster anschließen. Dafür würde ja eine tasten Matrix in frage kommen, mit der ich theoretisch 4 Taster benutzen könnte...oder?!? Aber wie stelle ich das am besten an? <- sry aber mein Kopf ist vorhin kaputt
LED_PORT = i; } } }[/c] Jedoch habe ich das selbe Problem wie bei diesem Entpreller: usr schrieb im Beitrag #2520963: > guckst du hier : Beitrag "Re: Universelle Tastenabfrage" :) Die LEDs leuchten einfach durchgehend -.- Ich habe die Taster auf PB0, PB1 und PB2. Eine
-
Thread
PIC - "beliebtester"?
eierlegende Wollmilchsau, sondern fange mit einem einfachen an. Lass erst mal ein paar LEDs blinken, Tasten entprellen und eine Zustandsautomat programmieren bevor du ein Motorsteuergerät baust das über Bluetooth vom Smartphone die Parameter verstellt kriegen kann.
-
Thread
ATtiny26 Balkenanzeige ( Hysterese ) mit acht Schaltschwellen (ASM)
Danke. Ich kämpfe gerade mit dieser genialen Routine http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof#41625 und deshalb habe ich noch nicht hierauf reagiert. Tut mir leid das ich so sprunghaft bin. Hoffe jedoch bald wieder auf diesen Thread zurück kommen zu können. Danke
-
Thread
Taster, pins sparen
Tastendruck -> Interrupt > eigentlich der sauberste und normalerweise verwendete. Und wie entprellst Du die 1-12 Interrupts, die Du bekommst, wenn die Taste einmal(!) gedrückt wird? Ich hol schon mal Popcorn...
P.S. Deine Geschichte, wie Du die zuviel erzeugten Interrupts "verschlucken" willst, um die Taster zu entprellen, halte ich für abenteuerlich. Ich gehe daher nicht näher auf so einen Schwachsinn ein.
-
Thread
12 bis 15 Volt an Eingang von Mikrocontroller
Bau dir im Labor eine nette Schaltung mit Leds auf . Programmier ein Lauflichtchen. Mit den Tastern verstellst du das Tempo. Eingangsbeschaltungen gibt es viele. Im Auto würde ich Optokoppler mit 1K Vorwiderstand nehmen. Per Software entprellen. Gruß
zusätzlichen Pullup (ca. 4k7) an den Taster. Der 30-60k-Pullup /im/ uC ist viel zu hochohmig... > Störspannungen oder benötigte Dioden... usw...? Wo willst du die Tasten anbringen? Irgendwo ausserhalb des Geräts? Oder in der Nähe (10-15cm
-
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
Rauschen am ADC als Zufallsgenerator
nimmt man dann ausnahmsweise den externen Interrupt, um den Timer als Zufallzahl auszulesen. Das Entprellen der Taste geschieht dann wie üblich im Timerinterrupt. Peter
-
Thread
PCINT0 und Bascom Rising/Falling
Lochrasterplatine bestückt, Atiny gesockelt, 10-pol ISP eingelötet, 3 LEDs mit Vorwiderstand, 1 Taster, Knopfzellenhalter für CR2025 und Schottkydiode zur Trennung vom Programmer. Klappt alles wunderbar, geschaltet wird das mit einem Taster zwischen PIN2 (PCINT3) und Ground - mit PCMSK=8 wird dieser
Wie man das über PCMSK realisiert, weiß ich nicht. Du meinst aber wohl eher etwas was um Deinen Taster zu entprellen. Da hilft DEBOUNCE in Kombination mit Bitwait. Debounce Taste , 0 , Subroutine_to_go , Sub Subroutine_to_go: Bitwait Taste , Reset.....
-
Thread
Taste gedrückt halten - zähler++ in zwei Zeiten
@Karl Heinz Buchegger ich hab die tasten entprell geschicht nicht genommen weil ich ja was eigenens machen wollte (von dir ja auch gefördert) ich hab mir die entprellroutine angeguckt und bin aber nicht hinter die makro funktinen gestiegen
Timo Solterbeck schrieb im Beitrag #2500981: > @Karl Heinz Buchegger ich hab die tasten entprell geschicht nicht > genommen weil ich ja was eigenens machen wollte (von dir ja auch > gefördert) > ich hab mir die entprellroutine angeguckt und bin aber nicht hinter die > makro funktinen
-
Thread
LED mit Taster ein-/ausschalten
Wahrscheinlich prellt Dein Taster. Du müsstest Ihn entprellen, dann wirds auch funktionieren. [[Entprellung]] Gruß
()) alter_tastenzustand = TASTE_AUF; [/C] und [C] if (TASTER_GEDRUECKT() && (alter_tastenzustand == TASTE_AUF)) { // Wechsel von OFFEN nach GESCHLOSSEN LED_AUS(LED1); alter_tastenzustand = TASTE_ZU