Gefunden für avr entprellen timer - Zum Elektronik Forum





1 - Zeitgesteuerte LED's mit Taster und Timer -- Zeitgesteuerte LED's mit Taster und Timer




Ersatzteile bestellen
  Hallo Meenzer,

Vorerst: wir haben Code-Tags, damit wird das übersichtlicher .


Achja, deine Taktfrequenz ist wirklich 8MHz? Wenn das schon nicht stimmt, sind sämtliche Zeitwerte deines Programmes in der Realität anders .
Und der AVR tut auch was?

Edit:
Öhm, also von der Timersache ist das OK, der erzeugt eine Frequenz von etwa 1Hz. Hast du mal daran gedacht, den Timer im Interrupt neuzuladen, also wieder
Load Timer1, 34285

Ansonsten ist das Programm eigentlich in Ordnung. Nur eben den Wert neuladen .
Und die Zählwerte anpassen, für 2 Sekunden ist 9 schon viel zu hoch .
Einzig die Frage, ob das Entprellen der Tasten richtig funktioniert. Ich kann mit dem Befehl debounce nichts anfangen, aber wird schon stimmen.


[ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:28 ]

[ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:31 ]...
2 - Einfaches Assemblerprogramm für PIC16F627A -- Einfaches Assemblerprogramm für PIC16F627A
Hallo,

ich bin zwar eher in der AVR-Welt zu Hause, aber das Programm sollte recht einfach sein. Idealerweise verwendest Du einen Timer, der z.B. alle 10 ms einen Interrupt aufrufst. In diesem Timer bringst Du die Abfrage des Tastereingangs und sein Entprellen unter. Bei jedem Timer-Interrupt erhöhst Du eine Zählvariable, sofern der Tastereingang logisch 1 ist. Ist z.B. 5 erreicht (logisch 1 liegt seit 50 ms an, also sicherlich kein Prellen mehr), werden die LEDs weitergeschaltet. Liegen die LEDs der Reihe nach auf einem Port, lässt sich das recht angenehm mit einer Multiplikation mit 2 erreichen.

Ohne Mikrocontroller sollte sich die Aufgabe aber auch mit einem 4017 und einigen weiteren Bauteilen lösen lassen.

Schöne Grüße,
Björn
...








3 - Programm für Fahrtsteller anpassen -- Programm für Fahrtsteller anpassen
...ich mal einfach mal hier mit einem weiteren kleinen Problemchen weiter.

Diesmal geht es ums Entprellen ....jaja ich weiß, dieses Thema wurde schon in tausend Foren durchgekaut, würde aber dennoch gerne wissen, wo der Fehler liegt.

Verwendet habe ich diesen Code (von hier)

Allerdings bringt mein Compiler (AVR Studio 4.19) die Fehlermeldung
expected identifier or '(' before '{' token
in

Zitat :
#define debounce( port, pin )
Dieser Zeile ({
static uint8_t flag = 0;

Daher die Frage a...
4 - LPT-Pin über Mega8 abfragen -- LPT-Pin über Mega8 abfragen
Hallo Wolfgang,

Dieser Debounce-Kram ist für Taster am Eingang (Entprellen in Software).
Das ist hier völlig fehl am Platze.

Was dich interessiert, ist der Zustand des Eingangpins.
Es würde also reichen, den Pin auf Änderungen zu überwachen und nur dann eine Message zu senden, wenn diese Änderung stattgefunden hat.

Da keinem hier bekannt ist, mit welcher Geschwindigkeit sich der Pin ändern kann kann man nur spekulieren.
Je nach Änderungsgeschwindigkeit kommt Polling in Frage, also permanentes Abfragen des Pins oder auch eine interruptbasierte Lösung.


Angeommen, dein Signal liegt an PinB, 5 an.
Dann ist der interessante Inhalt des PinB-Register die Veränderung des 5. Bits, hexadezimal kann man ein gesetztes Bit an der fünften Stelle so ausdrücken: &H20.

Dim Ist As Byte
Dim War As Byte
Dim Bitwert As Boolean

War = Not PinB

Do
Ist = PinB And &H20 'Register lesen und nur das fünte Bit maskieren
If Ist And &H20 Then 'Bitwert bestimmen
Bitwert = 1
Else
Bitwert = 0
End If
5 - PIC als Ersatz für einen CD4017 ? -- PIC als Ersatz für einen CD4017 ?
Ich bin mir nicht sicher ob der soviel treiben kann an den Ausgängen. Beachte auch die max. Last der Versorgungspins!

Ansonsten ist sowas natürlich ein idealer Einsatzzweck für µCs der kleinen Sorte. Für AVR könnte ich dir jetzt nen Quellkode runterschreiben, aber von PIC habe ich keine Ahnung. Daher eben nur schematisch:

Hauptschleife: Taste abfragen.
Wenn alter Tastenwert xor neuem Tastenwert wahr ist (bzw. ein Pin auf 1 oder 0 steht )
-> entprellen (praktisch eine Schleife mit ein paar 10ms) [ist zwar eigentlich unsauber, aber praktisch]
-> einen Registerwert plus sich selbst addieren (oder mal zwei multiplizieren oder eben logisch gesehen alle Bits eine Stelle nach links schieben und Bit0 auf 0 setzen.)
-> neuen Wert eben abgleichen und gucken, ob eventuell wieder bei Bit0 angefangen werden soll (sozusagen bei einem bestimmten Ausgang wieder von vorn beginnen, wie beim '4017er den Ausgang n mit Reset verbinden.)
-> Und erneut in einer Schleife den Taster einlesen und auswerten.


[ Diese Nachricht wurde geändert von: DonComi am  7 Jul 2007 23:00 ]...

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Avr Entprellen Timer eine Antwort
Im transitornet gefunden: Avr Entprellen Timer


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag       heute wurden bisher 3 Beiträge verfasst
© x sparkkelsputz        Besucher : 188742229   Heute : 22416    Gestern : 41720    Online : 291        30.1.2026    17:34
38 Besucher in den letzten 60 Sekunden        alle 1.58 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb ycvb
0.0579781532288