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 ;
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.