Entstören von Tastern; AnaCompare Atmega32

Gast #943627
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);
Gast #943686
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);
(Firma: TravelRec.) Persönliche Seite #943699
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.
Gast #943723
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 ;)
Gast #943726
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren