-
Thread
Einfaches Programm tut nicht das was es soll..
Ausserdem musst du deinen Taster entprellen. Sonst triggert dir das Prellen ständig den 2.ten Tastendruck
wenn das alles im Simulator funktioniert, in der Realität aber nicht, dann solltest du über das entprellen der Taste nachdenken. Oliver
-
Thread
Vergleich binär-hexadezimal - Problem mit ~-Operator
Eingang geschaltet und ich habe die internen Pull-Up-Widerstände aktiviert. An allen Eingängen hängen Taster. Es passt auch alles. Ich hab's nachgemessen und an Port D liegt echt überall Vcc an, wenn kein Schalter gedrückt ist. Wenn ein Taster gedrückt wird, wird der entsprechende Pin auf GND gezogen - wie
} Das Argument der if-Abfrage gibt aber nie true. Eigentlich sollte es ja true sein, wenn der Taster an PD0 gedrückt wurde, oder? 1<<PD0 ergibt ja in Binärschreibweise sowas wie 0b00000001. ~(1<<PD0) wäre dann entsprechend 0b11111110, also das, was an PIND anliegen sollte, wenn der Taster an PD0
-
Thread
PIC16F627, Störung durch Induktionsspannung
exakt gleiche Steuerung hab ich jetzt paralell auch auf dem Prüfstand mit direkt angeschlossenen Tastern und Lapen angeschlossen und se Funktioniert ohne Probleme egal wie die 230V~ Versorgung für die Lampen angeschlossen ist. Kann es sein das die Eingänge des PIC empfindlich sind gegenüber Induktion
unendlich' alle Zeiten abdecken, bei denen was geändert werden soll (z.B. LED blinken, Eingänge entprellen, PWM über Ausgänge ausgeben usw.) Ich habe mich die ganze Zeit gewundert, wo das induktive Feld herkommt, wenn Du ja nur ohmsche Verbraucher hast. ERST mit dem Hinweis auf die Leitungslängen (
-
Thread
Einfache Drehimpulsgebr-zu-Tastfunktion-Schaltung
oder ist das notwendig, dafür was ich vorhabe? Weil ich möcht ja nur, dass es im Endeffekt nur zwei Taster sind, nur eben sozusagen an nem Rad, also das Ding soll bei jedem Raster tasten, in jede Richtug ein anderer Taster. Dankeee :D
geschrieben, was ich vorhab. Ich brauch ne Steuerelektronik, so einfach wie möglich, mit der ich zwei Taster durch einen Drehgeber ersetzen kann, wenn man den z.B. nach Links dreht, soll das den einen Taster darstellen, der bei jedem Raster tastet, so, als ob man einfach auf nem Taster tippelt. Und eben nach
-
Thread
Unterscheidung, wie oft eine Taste gedrückt wird?
Hallo! Ich möchte mit einer Taste bestimmte Funktionen auslösen. D.h: Taste = 1x gedrückt --> Funktion1 Taste = 2x gedrückt --> Funktion2 [c] while(1) { if (Taste == 8 && count == 1) { ...mach dies
> Wie kann ich das lösen? Z.B. so: Entprellung (Taste entprellen) Zähler (Anzahl Tastendrücke) Timeout (nachtriggerbar) Entprellter Tastendruck erhöht Zähler und startet Timeout. Abgelaufener Timeout kopiert Zähler und löscht ihn dann für die
-
Thread
ATMega8 Externer Interrupt INT0
So wie du das hast, geht das nicht. * Tasten fragt man nicht per Interrupt ab, das geht fast immer in die Hose. [[Entprellung]] * In einer Interrupt Funktion wird grundsätzlich nicht gewartet (ausser vielleicht mal ganz kurz ein
irgendwann. Jetzt! Hol dir die Komfortroutinen aus [[Entprellung]] und du bist das Problem der Tasten auf einen Schlag los. Noch komfortabler gehts nicht.
-
Thread
signal entprellen vor dem takteingang
bei mir funktioniert meine entprellung nicht?!?!? auf dem testport ja und jetzt wo ich alles auf eine platine aufgebaut habe gehts nicht? wo liegt mein denkfehler??
-
Thread
Drehencoder von Pollin; how to / erfahrungen
macht. > Welche abtastrate? Das haengt davon ab wie schnell du maximal drehen willst. Ich taste ihn mit 250us ab. Das ist vielleicht etwas uebertrieben, aber ich hab den IRQ sowieso laufen. > würde es helfen jeden Kanal mit einem rc-glied zu > "entprellen"? Das kannst du machen, aber es
also z.B. 10msec > Welche abtastrate? würde es helfen jeden Kanal mit > einem rc-glied zu "entprellen"? Nein, natürlich nicht.
-
Thread
Arduino: Probleme mit dem Zählen von Impulsen
www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Phototransistor Wie sollte ich das entprellen mit HArdware richtig lösen? Kondensator parallel dazu schalten? Wenn ja wie groß? Gruß kami
auch nur ein Flag, also auch boolean. Für eine richtige Entprellung sollte der Timer auf den Taster aufsynchronisiert werden, also auf Null gesetzt werden, wenn eine Flanke erkannt worden ist. Sonst kann es passieren, dass bei geeignetem Zeitpunkt, an dem der Taster prellt, die Entprellung wirkungslos
-
Thread
Einstieg in die MikroController Welt 8, 16Bit oder 32Bit?
gestellt. Als Anfänger interssieren Dich Anwendungen erstmal überhaupt nur in Deinen Phantasien. Tasten abfragen, PWM dazu, ein LCD ansteuern und noch Ton ausgeben, davon träumst Du. Tatsächlich aber fängst Du erstmal an, eine LED leuchten zu lassen, dann blinken. Dann eine Taste abfragen, entprellen. Dann kämpfst Du mit dem Problem gleichzeitig zu entprellen und eine LED blinken zu lassen. Dann die PWM. Neue Probleme denn nun müssen drei Vorgänge über Timer gleichzeitig laufen. Dabei lernst Du noch was über Zeichenketten, über Kodierung, über Listen
-
Thread
AVR Studio Zahlenschloss Programm Problem
Tastatur" habe ich erstmal einen BCD-Dekodierschalter genommen, welcher mit einem druck auf einen Taster an PINC 0x08 bestätigt wird. Die Rote LED soll leuchten, wenn ein falscher Code eingegeben wurde, die Grüne wenn der richtige eingegeben wurde. Ganz simpel also ^^ Problem am Programm:
Bestätigungstaster ist auf PINC 3 ? Das Problem ist, dass du Wahrscheinlich 20 Auslösungen pro Taster bekommst, Stichwort Prellen von Tastern. Daher solltest du deinen Taster entprellen. http://www.mikrocontroller.net/articles/Entprellung :-)
-
Thread
Pollin-Board was muss ich alles noch bestellen
einfachsten ein Steckbrett und etwas 0,5mm2 Draht aus normalem YstY - Frage 5: was brauch ich um die Taster zu entprellen? am Pollin Board haut das ja nicht hin... Weitere Bauteile um das Tutorial durchzuarbeiten: -Potentiometer 1kOhm -LCD Display BstNr. 120 545 - Widerstand 50 Ohm - MAX232(N)
mal auf ein metall-teil legen, ohne dass es irgendwo eine ungewollte el. verbindung gibt. die tasten sind, wie bereits erwaehnt, sehr wohl verwendbar. einfach die Ko's weglassen u software maessig entprellen. schoene gruesse hans
-
Thread
Flankenerknnung C
das will nicht so richtig funk. =( ich bekomme die LED nicht zum leuchten. habs schon mal mit entprellen versucht aber dadurch wirds auch nicht besser... glg
Dav Kirschner schrieb im Beitrag #1985708: > habs schon mal mit entprellen > versucht aber dadurch wirds auch nicht besser Dann war das auch kein richtiges Entprellen. Es soll sogar Leute geben, die denken Entprellen und Delay wäre dasselbe. Idealer Weise nimmt
-
Thread
Slight Optimization oder Size Optimizations
der Ausgabe. > Optimierter Code läuft halt schneller. Stimmt. Insbesondere wenn man denkt, Tasten Entprellen sei nicht nötig, das macht sich durch die Laufzeit ganz von alleine. Peter
-
Thread
Taster auf und abwärts zählen
fährt ganz nach oben. Und es gibt welche, bei denen bewegt sich die Scheibe nur dann, wenn man den Taster gedrückt hält.
weil in der Routine die Tasten bereits entprellt sind ;-)
-
Thread
PIC_Uhr_mit_Stoppuhr wie anfangen?
haben, Start, Stop, Reset. Mein Wunsche wäre beides auf einen Display zu bringen wo man mit einem Taster von der Uhr (standart) zu der Stoppuhr umschalten kann. Mein anliegen: Ich arbeite das erste mal mit nehm PIC. Jeder Anfang ist schwer :-) Für welchen PIC soll ich mich entscheiden? Was ist
Multiplexanzeige an. Dann siehst du schon mal deine Ausgaben. Wenn das rund läuft, dann machst du dich an das Entprellen der Taster. Danach kommt erst die eigentliche Stoppuhr-Funktionalität. Auf welchem PIC programmierst du? C oder Assembler?
-
Thread
design fehler am atmel evaluations-board - programm stuerzt ab
drei C weg gelassen, zwei Leiterbahnen aufgekratzt und eine Drahtbrücke eingesetzt. Jetzt sind die Tasten gegen GND geschalten und ich kann die µC-Internen PullUp verwenden. Das man nun mittels Software entprellen muss, versteht sich wohl von selbst. Noch ein paar SMD-C direkt an den Spannungsregler
keine Spannungseinbrüche wegen der Kondensatoren. Wenns natürlich ohne diese klappt ist das ok. Entprellen muß man so oder so um vernünftige Ergebnisse beim Tasten zu erhalten ( Einstellen der Uhrzeit etc.).Ansonsten ist das Board für 15,00 Euro doch ok. Ich nehme "PonyProg" zum proggen und "Bascom-Avr
-
Thread
Event-Zähler
Könnte, möglicherweise. Ich würde das ganze aber wahrscheinlich eher wie das Problem des Entprellens von Tastern angehen. [[Entprellung]] sie Interrupt Lösung. nur dann, wenn das Signal lang genug ist, wird es auch tatsächlich gewertet. Störimpulse haben die Eigenschaft, dass sie meisten nur
schrieb im Beitrag #1972650: > Ich würde das ganze aber wahrscheinlich eher wie das Problem des > Entprellens von Tastern angehen. > [[Entprellung]] > sie Interrupt Lösung. Schwebt Ihnen dieses Lösung vor? http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29 Ist
-
Thread
Interrupt löst ungewollt aus
Bleiben da Taster drann? Wenn ja: Taster liest man nicht mit Interrupts ein. Schau dir den Atrikel [[Entprellung]] im Wiki an. Dort findest du genügend Ideen, wie man Tasten zuverlässig einliest. Taster schliesst
Ja nun funktionierts! Nun muss ich mir das mit dem entprellen noch anschaun. Vielen Dank!
-
Thread
kanalweiterschaltung per taster
An Pin 15 kommt nun also dein Taster dran, aber man muß ihn entprellen damit es wirklich nur 1 Licht weiterschaltet. Am einfachsten geht das bei einem Taster mit Umschaltkontakt und den beiden nun übrigen Gattern des 4001 die bisher
Auch mit einem NE555 kann man Taster entprellen, in dem er als MonoFlop geschaltet wird (dazu gibt es 2 Schaltungsweisen, beide geeignet, siehe Datenblatt), aber dazu muss man aufmerksam sein und lesen was man zu erlernen hat. Mit
-
Thread
2-Bit Zähler rückwerts zählen lassen
Ich würde mal vermuten, dass deine Tasten prellen -> [[Entprellung]]
Klaus T. schrieb im Beitrag #1964903: > Ich würde mal vermuten, dass deine Tasten prellen -> Entprellung ICh habe jetzt das Entprellen mit eingefügt aber es hat sich nicht verbessert wenn ich den Teil wegnehme wo Taster2 dazu kam dann läuft es problemlos. ich bin Ratlos
-
Thread
an aus per software
wie Tasten. Da das aber keine zusätzliche Rechenzeit kostet, spielt es weiter keine Rolle.
des Tastereingangs zählen, jeder Tastereingang braucht seinen eigenen Zähler. Man könnte nun jedem Taster ein Byte (Register, Variable) spendieren, das wäre aber pure Verschwendung und würde bei mehreren Tasten auch den Programmablauf verlangsamen. Stattdessen nimmt man zwei Register als Zähler für 8 Taster
-
Thread
LCD mit PIC ansteuern 2 Zeile
Display initialisieren call InitLcd mainloop call Tastfrei ; darauf warten, das keine Taste gedrückt ist ; call WAIT ; entprellen nur bei schlechten Tasten nötig drueck call Tastatur ; wird nun eine Taste gedrückt? movfw Taste ; Tastencode nach w; Taste=0 dann Z=1
************* ;***************************************************** ; warten darauf, daß keine Taste mehr gedrückt ist Tastfrei ; Warten auf freie Tastatur call Tastatur ; Tastencode nach Taste & W movfw Taste ; wenn code=0 dann Z=1 btfss STATUS, Z ; wenn Z=1 dann skip
-
Thread
Entprellen mit Kondensator
10kOhm VCC an den Pin ziehen, und den Taster an GND hängen. Jetzt möchte ich diesen Taster mit einem 330nF Kondensator entprellen, der ja zwischen VCC und GND direkt vor dem Pin hängt. Wenn ich jetzt allerdings den internen PullUp verwenden möchte
Nicolas I. schrieb im Beitrag #1959347: > Jetzt möchte ich diesen Taster mit einem 330nF Kondensator entprellen, > der ja zwischen VCC und GND direkt vor dem Pin hängt Wenn ein Kondensator zwischen VCC und GND hängt, dient er offenkundig nicht zum Entprellen. Nicolas
-
Thread
Schalten, nach mehrmaligem Tastendruck
Nachdem die Anzahl des Tastendrückens zufällig sein sollte, dachte ich > mir ich kann mir das Entprellen des Tasters ersparen. Ob das so eine gute Idee ist, ist eine andere Frage, aber seis drumm. Wichtig ist aber nach wie vor, dass du unterscheidest zwischen * mache etwas, solange eine Taste gedrückt ist * mache etwas, wenn eine Taste gedrückt wird du willst letzteres, hast aber ersteres implementiert http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten
-
Thread
critical regions vom XC164CM
am Anfang einer Interrupt-Routine den Interrupt vorübergehend sperren willst (zum Beispiel zum Entprellen) solltest du darauf achten das inzwischen kein weiterer Interrupt aufgetreten ist. Folgendes Beispiel: Du hast einen extrem prellenden Taster und willst seine Änderung mit einem Interrupt auswerten. Interrupts sind aktiv Es wird der Taster gedrückt. -> Interrupt löst aus. -> der Controller springt zum ersten Befehl der ISR und löscht automatisch das Interrupt-Flag. Der erste Befehl in der ISR ist "disable Interrupt der ISR" damit
-
Thread
RESET einfügen bei FSM
kann umgesetzt werden. > zur Vorgabe des Taktes key(0) Dir ist schon klar, dass du mit einer Taste ohne Entprellung keinen Takt bekommst. Da hast du dann schnell bei einem tastendruck so 10-20 Taktimplse benander... Ich würde das so machen (noch mit dem key-Takt): [vhdl] library ieee; use
Vielen Dank Lothar, du hast mir sehr geholfen! Das Programm läuft jetzt! Ach ja, das mit dem Entprellen ist glaub ich hardwaremäßig gelöst (ist ein Altera DE1 Entwicklungsboard)! Übrigens super Forum hier!
-
Thread
Flip-Flop Schaltung für den PC
PC. Sollte PWM ausgeschaltet sein, so sind die Schaltspiele bei den Kippschalter wie folgt. Taster nach Stellung 1 - 12V (=100%) liegen am Lüfter an Taster nach Stellung 0 - 12V (=100%) liegen am Lüfter an (Funktion Stromstoßrelais) Taster erneut nach Stellung 1 - 0V (=0%) liegen am Lüfter [...] Taster nach Stellung 2 - 7V (~60%) liegen am Lüfter an Taster nach Stellung 0 - 7V (~60&) liegen am Lüfter an (Funktion Stromstoßrelais) Taster erneut nach Stellung 2 - 0V (=0%) liegen am Lüfter. Diese
-
Artikel
Diskussion:Schmitt-Trigger
Schmitt-Trigger Das unsaubere an dieser Schaltung "Taster entprellen mit 74HC14" ist, dass vielfach Entwickler den transienten Teil bei einer Schaltungsentwicklung nicht berücksichtigen: Wenn diese Schaltung in Betrieb genommen wird, dann entsteht am Ausgang
-
Thread
Welchen ATmega soll ich nehmen?
beschleicht das ungute Gefühl, daß Du fälschlich vermutest 6 Interrupts benötigen zu müssen, weil Du 6 Tasten abfragen willst. Peter
kurz die Signale sind und ob sie von Kontakten kommen, d.h. erstmal entprellt werden müssen. Entprellen geht erheblich besser im Timerinterrupt, d.h. man braucht keine externen Interrupts. Peter
-
Thread
Letzter Hilferuf AT91SAM7S - PWM oder PCK
das kann doch nicht so extrem schwierig sein. Man verwendet doch Timer in der Art auch, um einen Taster zu entprellen (glaube mal sowas gelesen zu haben). Wenn da jemand Erfahrung hat mit dem AT91SAM7S hat wäre es total nett, hier vielleicht einen luffähigen Schnipsel zu posten... Prallel dazu hat
SID und HD44780 sind zusammengelegt. Ich habe nicht mal mehr Lust gehabt, einen zusätzlichen Taster anzulöten. Dann habe ich mich entschlossen, wenn beide Taster gedrückt sind, das dann als "Enter" zu interpretieren. Funktioniert auch gut, nachdem die Auswertung erst stattfindet, wenn beide Taster
-
Thread
ICP mit ATmega88 und Multiplexer
bleiben Eingänge und kriegen Pull-Ups */ PORTD |= (1<<Signal); // Pull-Up Signal PORTC |= (1<<Taster); // Pull-Up Taster /*Timer initialisieren und aktivieren */ TCCR1B = (1<<CS11); // Prescaler 8 / 12MHz:8 = 1,5MHz TIMSK1|=(1<<ICIE1); // ICP aktivieren /*
nur die Differenz zum Vorhergehenden ICP wert 2. Möglichen Überlauf von TIMER1berücksichtigen! 3. Taste entprellen. 4. Multiplexer noch im Interrupt umschalten, nur so kannst du sicher sein dass nach dem hochzählen der Kanalnummer auch der Multiplexer umgeschaltet ist. Die ausgabe nach dem Tasterdruck
-
Thread
ATmega Lüftersteuerung Schaltplan korrekt?
geht, man braucht 2 (oder ICs)). Die ganze Schaltung an GSPanel vergiss mal, die Impulsgeber und Taster werden direkt an Eingänge des uC angeschlossen (mit PullUps, eventeull den eingebauten) und direkt (per Software ausgewertet), deine Schaltung macht das nicht besser sondern nur schlimmer.
Nachtrag: hab den Post von MaWin nicht gelesen. Das Schalter Entprellen wollte ich Hardwareseitig machen und nicht in Software aber wenn ich so nur noch schlimmer mache, was solls kommt es eben weg. So wie ich das nun Verstehe fällt an den Transistoren zu viel Spannung
-
Thread
Atmega8 lcd taster zahl inkrementieren asm
;Warteschleife damit der sbiw r24,1 ;Taster nicht gleich rjmp wait ;die anderen Zahlen aufruft num2: sbic PINB,PB0 ;rjmp überspringen wenn Taste gedrückt rjmp num1 rcall lcd_clear
Jo danke Entpreller. Habs jetzt hinbekommen. Dankeschön :)
-
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
ATmega644P Unbekannte Resetprobleme während des Programmes
dein Programm amok läuft. Hier ein Beispiel für die Abbruchbedingung in einem Programmteil: (entprellen = 20000) [c]// Abbruchbedingung if(PINB & (1 << PB0)){ _delay_us(entprellen); while(PINB & (1 << PB0)); // Warten bis Taster losgelassen _delay_us(entprellen); if
- komplett egal was der Taster außerhalb am Pin macht. Liege ich da komplett falsch?
-
Thread
AVR-Studio - Code Größe anzeigen
so ner ewigen Bestenliste, samt Code. Als Beispiel irgendeine häufiger vorkommende Aufgabe, wie Tasten entprellen, Sinus-PWM oder dergleichen. Hardware vorgegeben, C sollte es sein, aber Compiler und Schalter, Art der Programmmierung kann sich jeder selbst aussuchen... Da hätte man gleich viele Beitragende
-
Thread
externe Interrupts
ausgelöst >Woran kann das liegen? Herzlichen Glückwunsch, auch du hast gerade rausgefunden das Taster prellen und ein externer Interrupt völlig ungeeignet ist um Taster abzufragen. Setzt einen Timerinterrupt mit ca. 20ms Abtastrate und frag deinen Taster darin ab.
sichtbar) Die Frage ist wie du die Kondensatoren angebracht hast. Einen geladenen Kondensator per Taster kurzzuschliessen kann auch einen erheblichen Stromfluss verursachen. Das möchte der Taster auf Dauer auch nicht (Kontaktabbrand). Deshalb macht man sowas auch nicht um Taster zu entprellen.
-
Thread
Taster 1 5x drücken LED1 an, Taster 2 löscht LED 1 wieder
festzustellen musst du in einer Schleife warten, bis der Pin von 1 auf 0 geht (du drückst den taster nieder) dann weiter warten bis der Pin wieder von 0 auf 1 geht (du lässt den Taster wieder los) Beide Aktionen verlaufen aus Sicht des µC in extremer Zeitlupe. So wie es für dich eine halbe Ewigkeit
Startwert 1 ... [/avrasm] Doch das Problem war nicht behoben, ich nehm mal an...es liegt an dieser "Taster-Entprell-Geschichte". Okay, also die Initialisierung lass ich dann mal im Code. Frage: Wann muss der Stack eigentlich initialisiert werden? So wie ich das verstanden hab....*immer*. Seh ich das
-
Thread
Zu blöd für Interrupt an Atmega32
spezifische Freigabe des INT0 ist nicht vorhanden. Aber eigentlich ist das sowieso keine gute Idee, Taster über einen Interrupt Eingang auszuwerten. Die bessere Variante sind die Komfort-Taster Entprellroutinen, die über einen Timer Interrupt die Taster pollen und gleichzeitig entprellen *) sie funktionieren wesentlich besser, egal wie stark die Taster prellen *) durch die Autorepeatfunktion ermöglichen sie auch komfortable Eingaberoutinen, ohne dass sich der Benutzer an den Tasten einen Wolf drückt. *) Sie sind einfach in der Verwendung
-
Thread
Übelste Anfängerfrage zum AVR GCC Tutorial -> Taster
return 0; } int main(void) { DDRB &= ~( 1 << PB0 ); /* PIN PB0 auf Eingang Taster) */ PORTB |= ( 1 << PB0 ); /* Pullup-Widerstand aktivieren */ DDRC = (1 << DDC5); while (debounce(&PINB, PB0)) // while(1) { /* Falls Taster an PIN PB0 gedrueckt
zu > PORTC |= (1<<PC5); Das Ganze dann bitte in einer Schleife, denn bei nicht gedrückter Taste beendet sich main() in nullkommanix und das war's dann schon gewesen. Der Anwender bekommt gar keine Chance, eine Taste zu drücken, außer er hat sie beim Start bereits gedrückt. P.S. Das hier
-
Thread
Mikrocontroller anfänger, wer kann helfen??
Versuche mal den Controller zu programmieren, während du manuell resetest. (reset-taster während der ganzen programmiererei gedrückt halten) hatte mal das gleiche problem. so gehts bei mir.
Du sagst der Schaltplan sei unvollständig, was meinst du damit?? Damit meinte ich eben, dass Taster, LEDs usw. dort nicht drin sind :-) Hast Du die Taster wie im Tutorial an Port D und die LEDs an Port B angeschlossen? Trenn doch mal alles von PB2 bis BP5 ab, so dass nur der Programmer dort dran
-
Thread
Problem mit Entprellungsroutine
verstehst wie er arbeitet. Der ist ziemlich trickreich und du musst ihn nicht wirklich verstehen. Einen Taster sauber zu entprellen ist erstaunlicherweise keineswegs eine triviale Aufgabe.
-
Thread
Atmega32 Taster abfragen
*/ int get_taster_zustand(int taster){ switch(taster) { case 1: if (( PIND & (1<<PIND3) )==0) return 1; break; case 2: if (( PIND & (1<<PIND2) )==0) return 1; break; case 3: if (( PIND & (1<<PIND1
PORTB |= (1 << PB2); //Pull-Up-Widerstand für on/off-Schalter aktivieren [/c] Für die Taster 1-4 Funktioniert dass ganze einwandfrei, nur leider nicht für Taster 5. Hier bekomme ich immer eine 1 (Taster gedrückt) zurück. Ich habe daraufhin mal am PINB2 gemessen und musste feststellen, dass
-
Thread
entprellter Taster an SCK - AVR Studio redet von short circuit
Frequenzen, die am SCK anliegen gegen 0Ω geht. 1. Lösungsansatz: einen Widerstand in die Leitung von Taster zu SCK rein werfen, vllt. so 100k. Oder einen Jumper, der dann fürs brennen abgezogen werden muss. 2. Lösungsansatz: per Software entprellen und interne Pullups nutzen. Der Taster schaltet dann
#1909796: > Oder ist der Aufbau so > indisukutabel und einfach nicht zulässig? Ja. Mach die Entprell-Kondensatoren raus und entprelle in Software! Du hast jetzt (auf die harte Art) folgendes gelernt: Man mißbraucht _nie nie nie_ die Programmierpins für irgendetwas anderes (andere Pins benutzt
-
Thread
Was anderes als "delay_ms" ?
Ich habe auch eine Schedule, siehst wie folgt aus: [c] int main() { while (1) { if(Taster_S==1) { MSG_Lin_Init(); // LIN Nachrichteninhalt Schedule(); // starten der MAXSchedule } } } void Schedule() { Sende(msg1); delay_ms(5); Sende(msg2); delay_ms
ist jetzt nur ein Beispiel. So ein oder ein ähnliches Prinzip lässt sich auf vieles übertragen. Tasten entprellen wird man zb sinnvollerweise komplett in der ISR abhandeln (siehe den Wiki Artikel "Entprellung") und der Tastendruck selber ist das Jobflag, das in der Hauptschleife abgefragt wird.