Forum: Mikrocontroller und Digitale Elektronik Impulsunterdrückung Simulation ok, Testaufbau geht nicht


von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Impulsunterdrückung

Hallo

Ich möchte eine Impulsunterdrückung für eine Standheizung programmieren, 
bei der jeder n-te Impuls unterdrückt wird.
Wobei n=1..9 ist.

MEIN PROBLEM: Die Simulation im AVR-Studio funktioniert, der Testaufbau 
in ECHT aber nicht.

Ich habe mir das so gedacht:

Am Anfang die Jumperstellung(PB0..PB2) in ein Register(JAM) laden.
Dann bei Impulseingang(PB4) (Negative Flanke) Ausgang(PB3) Hexfet 
schalten um Impuls an Mikrodosierpumpe durchzulassen.
Impulsbegrenzung Pumpe Ein auf 3x100ms.
Positive Flanke Pumpe Ausschalten obwohl schon aus, sicher ist sicher.
Impulse kommen regelmässig.
Zählregister (JAM) um 1 vermindern und bei Null, Impuls unterdrücken 
(nicht durchlassen).

Ich habe das Ganze schon nach bestem Wissen und Gewissen programmiert 
und in Hardware aufgebaut.
Als Impulseingang (Masseschalter) habe ich vorrübergehend einen Taster 
genommen.

MEIN PROBLEM: Die Simulation im AVR-Studio funktioniert, aber in ECHT 
nicht.

Ich komm nicht weiter vielleicht kann mir jemand einen Tip geben.
Sleepmodus ist nicht unbedingt nötig, auch die Programmierung 
perInterrupt nicht (habe es ohne interrupts und sleepmodus probiert und 
ging auch nicht.

Danke
Jan

; Schaltbild:
;                   ATMEL ATtiny13
;                     __   ___
;                   1/   |_|    |8
;+5 Volt O--|___|----|Res    Vcc|----O + 5 Volt
;                    |          |7   Jumper
;          hexfet  --|PB3    PB2|----| |--O   0 Volt
;                /   |          |6   Jumper
;     0 Volt O--O O--|PB4    PB1|----| |--O   0 Volt
;                   4|          |5   Jumper
;        0 Volt O----|Gnd    PB0|----| |--O   0 Volt
;                    |__________|
;PB4 schaltkontakt extern
;PB0-2 Eingang Jumper zur Impulszählung
;
;PB3 Ausgang Hexfet um Mikrodosierpumpe anzusteuern
;

von Arno H. (arno_h)


Lesenswert?

Ist der Taster entprellt?

Arno

von Jan (Gast)


Lesenswert?

Der Taster sollte eigentlich durch die Zeitschleifen in den 
Flankenabhängigen Interruptroutinen entprellt sein. Original sitz ein 
Federzungenkontakt auf einer "unrunden" Welle.

Zur Erklärung:
Mir der Schaltung und dem Programm möchte ich eine (impulsgesteuerte und 
zuviel fördernde) Mikrodosierpumpe einer Standheizung (die sich nicht im 
offentlichen Strasssenverkehr / KFZ  befindet) drosseln indem ich 
(einstellbar) Impulse unterdrücke und so die Fördermenge reduzieren 
kann.

Jan

von Jan M. (jam2001)


Lesenswert?

Hallo

hat nicht einer von Euch Profis Lust sich das mal anzuschauen, und mir 
seine Meinung zu sagen? Vielleicht ist es nur eine Kleinigkeit, bzw 
dummer Fehler.

Jan

von Spess53 (Gast)


Lesenswert?

Hi

PullUps an den Eingängen?

MfG Spess

von Jan M. (jam2001)


Lesenswert?

Eigentlich sollten die Internen Pullups aktiviert sein, bzw lässt sich 
auch extern die 5V messen, an den jeweiligen Inputpins.

Der Taster löst auch die Interrups aus, er lässt aber jeden Puls durch, 
auch habe ich den Eindruck das die Zeitschleifen zur Entprellung bzw 
Pumpenansteuerung nicht richtig aufgerufen werden.
Während eines Interruptes sind doch weitere Interrups gesperrt?
In "Hardware" "fühlt" es sich so an, als ob zb Schalterprellen sofort 
wieder einen Interrupt auslösen, obwohl schon ein Interrupt noch aktiv 
ist.

Jan

von Gast2 (Gast)


Lesenswert?

Also erstmal ordentlich entprellen und dann weitersehen.

Gast2

http://www.mikrocontroller.net/articles/Entprellung

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.