Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP MODSERIAL mbed monitor timer0
Fork of 19_Taster_a by
Diff: main.cpp
- Revision:
- 10:84387eed15b5
- Parent:
- 9:28519e850e1c
- Child:
- 11:7bc691148135
--- a/main.cpp Fri Aug 08 16:02:54 2014 +0000
+++ b/main.cpp Mon Aug 18 08:27:08 2014 +0000
@@ -29,8 +29,9 @@
Serial pc(USBTX, USBRX); // tx, rx
Serial com(PTC4, PTC3);
Buffer <char> buf; // Ringbuffer für ankommende Zeichen
-// DS2482 ow(PTE0,PTE1,0x30); // sda, scl, adr
+// DS2482 ow(PTE0,PTE1,0x30); // sda, scl, adr
+Timer t; // Zeitmessung für Entprellen
//------------------------------------------------------------------------------
// Zuordnung von Eingängen und Ausgängen
@@ -115,10 +116,16 @@
//------------------------------------------------------------------------------
// Interruptroutine wird bei jedem Tropfen aufgerufen
-
+// Pulse die in einem Abstand kleine 1ms sind werden nicht gezählt
+//
void tropfen_handler()
{
- tropfen_anz++;
+ if(t.read_us() > 1000)
+ {
+ tropfen_anz++;
+ }
+ t.reset();
+ t.start();
}
//------------------------------------------------------------------------------
@@ -191,6 +198,8 @@
esum = 0.0;
tropfen.fall(&tropfen_handler);
+ t.reset();
+ t.start();
//------------------------------------------------------------------------------
// RS232 Schnittstellt welche auf den CMSIS-DAP (USB Port) weitergeleitet wird
@@ -312,13 +321,18 @@
{
down_timer.SetCountdownTimer(1,2,tropfperiode);
- tropfen_anz = 0;
-
- // mit einer 1 die Tropfen freigeben
- if (~send_flag){
- com.putc('1'); // Tropfensteuerung freigeben
- send_flag=true; // Flag zum Status der Tropfensteuerung
- LED6 = 0; // Anzeige zum Status der Tropfensteuerung
+ //-------------------------------------------
+ // nur freigeben, wenn nicht über monitor gesperrt
+ if (f_flag)
+ {
+ tropfen_anz = 0;
+
+ // mit einer 1 die Tropfen freigeben
+ if (~send_flag){
+ com.putc('1'); // Tropfensteuerung freigeben
+ send_flag=true; // Flag zum Status der Tropfensteuerung
+ LED6 = 0; // Anzeige zum Status der Tropfensteuerung
+ }
}
}
