From: ian Date: Mon, 19 Dec 2005 12:09:09 +0000 (+0000) Subject: computing clocks in perl seems to work X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=94f2180c95c78dc00bd418e00f27e09bd0c1f829;p=trains.git computing clocks in perl seems to work --- diff --git a/detpic/make-clocks b/detpic/make-clocks index b8708b1..40ee2e2 100755 --- a/detpic/make-clocks +++ b/detpic/make-clocks @@ -1,11 +1,17 @@ #!/usr/bin/perl -w +# usage ../make-clocks [ ...] -Dmclock=khz -Dsclock=khz use strict qw(vars); use POSIX; +sub p ($) { print $_[0] or die $!; } + our (%defs); + +p("; autogenerated - do not edit\n"); +p("; $0 @ARGV\n"); while ($ARGV[$#ARGV] =~ m/^\-/) { - $_ = pop @argv; + $_ = pop @ARGV; last if m/^\-\-$/; die unless m/^\-D(\w+)\=(\w+)$/; $defs{$1}= $2; @@ -21,8 +27,6 @@ our ($name,$ms,$interval,$msclock); # ie cycles = interval * foscscale * msclock / prescale # or msclock = cycles * prescale / (foscscale * interval) -sub p ($) { print $_[0] or die $!; } - sub scaleable ($$$$$) { my ($width, $foscscale, $scalebitnums, $scales, $deadcycles) = @_; my ($maxcycles, $scalespec, $scalebits); @@ -84,13 +88,14 @@ sub do_T1ov { do_T13ov(1); } sub do_T3ov { do_T13ov(3); } sub doline () { - my ($orgname,$mswant,$unit,$how); + my ($orgname,$mswant,$specd,$unit,$how); chomp; s/[;\#].*//; return unless m/^\S/; die "$_ ?" unless m/^(\w+)\s+(M|S|MS)\s+(\w+)\s+([0-9.]+)(s|ms|us|ns|Hz|kHz|MHz)$/; ($orgname,$mswant,$how,$interval,$unit) = ($1,$2,$3,$4,$5); + $specd= $interval.$unit; if ($unit =~ m/M/) { $interval *= 1.e6; } if ($unit =~ m/k/) { $interval *= 1.e3; } if ($unit =~ m/m/) { $interval *= 1.e-3; } @@ -103,7 +108,7 @@ sub doline () { die $msclock unless exists $defs{$msclock}; $msclock= $defs{$msclock}; $name = $orgname.'_'.($ms eq 'm' ? 'master' : 'slave'); - p(";---------- $name ----------\n"); + p(";---------- $name ($specd, $interval) ----------\n"); &{ "do_$how" }; } } diff --git a/pic.make b/pic.make index e407dfa..8cd8f77 100644 --- a/pic.make +++ b/pic.make @@ -15,7 +15,8 @@ # perpicNUMBER.hex idlocsNUMBER.o config.o #ASFLAGS= -Dmclock=20000 -Dsclock=20000 -ASFLAGS= -Dmclock=20000 -Dsclock=5000 +CLOCKS= -Dmclock=20000 -Dsclock=5000 +ASFLAGS= $(CLOCKS) HEXMERGER= $(CEBPIC)merge-hex MERGEHEX= ./$^ $o