Hallo Leute,
wie kann ich eine abfallende Flanke nutzen, die vom Wert 5 auf 0 fällt.
Genauer:
Ich habe ein Triggersignal, welches so aussieht:
5 |----------|
| |
| |
| |
| |
0------------------------- ------------------------------
Ich habe zum sortieren von damit verbundenen Werten anfangs die steigende Flanke genutzt, die aber, wie ich kürzlich feststellte, sehr unscharf ist. Nun möchte ich die abfallende Flanke nutzen, die recht scharf definiert ist. Wie stelle ich das in dem Programm hier an?
Bisher wurde einfach darauf geachtet bis das Triggersignal einen Wert hat, der mit 4 beginnt. Nun möchte ich aber einen Wert auf der anderen Flanke nutzen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#! /usr/bin/perl
use strict;
use warnings;
my $file = 'test.dat';
my $out = 'test.dat.out';
my $count_ = 1;
my $datensatz = '';
{
open(my $outfh,">$out") or die $!;
open(my $fh,"<$file") or die $!;
while(my $entry = <$fh>){
$entry =~ s/\r?\n//g;
if($entry =~ /^\s*?#/){
print $outfh $entry,"\n";
}
else{
if($entry =~ /^\s*?$/){
$count_++;
}
else{
$datensatz .= $entry."\n";
}
if($count_ % 3 == 0){
$datensatz = getDatensatz($datensatz);
print $outfh $datensatz;
$count_ = 1;
$datensatz = '';
}
}
}
if($datensatz){
$datensatz = getDatensatz($datensatz);
print $outfh $datensatz;
}
close $fh;
close $outfh;
}
sub getDatensatz{
my ($entry) = @_;
my $bool = 0;
my $set = '';
my @steigend;
for my $line(split(/\r?\n/,$entry)){
chomp $line;
my $wert = (split(/\s+/,$line))[-1];
$bool = 1 if($bool || $wert =~ /^4/);
unless($bool){
push(@steigend,$line);
}
else{
$set .= $line."\n";
}
}
$set .= $_."\n" for(@steigend);
$set .= "\n\n";
return $set;
}
Danke schon mal im voraus!\n\n
<!--EDIT|EagleFox|1144673520-->