Impulsunterdrückung Simulation ok, Testaufbau geht nicht

Gast #842268
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
;
Angehängte Dateien:
Gast #843350
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
#845547
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.