www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Entstören von Tastern; AnaCompare Atmega32


Autor: kaputtnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein neuestes Problem:
Ich habe Taster an meinem Mega. Zwischen VCC und Pin am Mega hängt ein 
10k Widerstand. Der Taster zieht den Pin auf Masse.
Trocken funktioniert das. Im Einsatz am Fahrzeug springt das Ding 
ständig ins Menu und im Menu umher sobald die Taster angeschlossen sind. 
Wenn ich sie abklemme (sodass nur noch VCC-R-Pin verbunden ist), dann 
ist das Phänomen aus der Welt. Versteh ich nicht so recht darum frage 
ich. Der Taster ist halt mit dem Pin und Masse verbunden. Der kann ja 
schlecht einen Masseschluss mit der Luft hinbekommen, oder?

Das nächste Problem:
Ich möchte gerne im Eeprom speicher, wenn die Spannung einbricht. Dieser 
Interrupt wird aber nicht ausgelöst, wenn man den Netzstecker zieht. 
Dafür jedoch im Einsatz (am Netzteil bleibts ruhig) am Fahrzeug 
ununterbrochen.
Im Endeffekt ist das so verdrahtet:

VCC- Diode - 470u C - Atmega Pin3
|
Diode
|
10u C - Displaybeleuchtung etc.
|
Atmega Pin4

Wenn ich nicht pratschjeck bin, dann sollte doch der 10u C ruckzuck leer 
sein und die Kapazität des 470u C´s locker reichen um noch eben den 
Interrupt abzuarbeiten?
Dann mach ichs software-seitig mal wieder falsch. Macht diese Zeile, was 
ich will oder ist sie die Wurzel allen übels?

ACSR = (0<< ACD) | (0<<ACBG) | (1 << ACIE) | (1 << ACIS1) | (0 << 
ACIS0);

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu Problem1:

bei laufendem Motor?

dei Vibrationen werden die Taster irgendwie betätigen.

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu2

0 verschieben und dann oder-verknüpfen hat keinen effekt.

x | 1 = 1
x | 0 = x
x & 0 = 0

Autor: Vorname Nachname (logout-name)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu hoher Pullup-Widerstand?

am 10u- Kondi solltest du noch ein Widerstand nach Masse machen, damit 
dieser auch ein wenig belastet wird z.B. 10k

Bedenke, dass im Auto (bei laufendem Motor) nicht unbedingt das 
angenehmste EMV-Klima herrscht. Da sind schon einige Massnahmen zu 
treffen...

Autor: Vorname Nachname (logout-name)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J. K. wrote:
> zu2
>
> 0 verschieben und dann oder-verknüpfen hat keinen effekt.

Das ist wahrscheinlich so gedacht, damit man bei einer Änderung nur 1 
reinschreiben kann. Also gezielt so geschrieben. Mach ich manchmal 
auch...

Autor: kaputtnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann ich mir nicht so recht vorstellen da die Taster doch einiges an 
Druck verlangen. Ich habe das grad mal mit dem Messgerät probiert und 
die Kontakte schließen erst ganz am Ende des Federwegs.

Keiner eine Idee hierzu:?
//set ac for power loose interrupt
  ACSR = (1 << ACIE) | (1 << ACIS1);

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wie erzeugst du deine Versorgungsspannung im Auto?

MfG Spess

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind Funkstörungen, die durch die Zündanlage und andere elektrische 
Geräte (Ventilatoren) hervorgerufen werden und auf das (lange) 
Tasterkabel wirken. Du kannst a) den Tasterpin am Controller zusätzlich 
mit 100nF nach Masse abblocken und b) eine Software-Filterung am 
Tastenpin vornehmen. Siehe dazu auch Peter Danneggers Entprellung in der 
Codsammlung.

Autor: kaputtnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Widerstand hats nicht gebracht. Hat mich aber drauf 
gebracht, dass eine der angeschloßenen Meßschaltungen die Schuld trägt. 
Wenn ich Sie abhänge, dann wird der Interrupt nicht mehr ständig 
ausgelöst. Ob er das im richtigen Moment tut, muss ich noch testen. Das 
mit der Software-Entprellung schau ich mir mal an. Kann man ja in den 
bereits vorhandenen Debounce-Code einbinden. Ansonsten löt ich halt noch 
nen Kondensator ein. Hab ausreichend herumfliegen ;)

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst aber auch externe Ziehwiderstände von 4,7 Kiloohm von den 
Eingängen nach +Ub vorsehen. Die internen Ziehwiderstände sind oft zu 
hochohmig, um bei "langen Strippen" draußen dran immer einen 
vernünftigen H_Pegel zu erzeugen.

MfG Paul

Autor: kaputtnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...also den 10k gegen einen 4,7 tauschen?
intern habe ich gar nicht aktiviert...

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ganz grünau.

MfG Paul

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.