my $values = trb_register_read_mem(0xfe90,0xd488,0,4);
my $stepsize = 200;
-my $headroom = 200;
+my $headroom = 250;
my @nominal = (1100,3300);
print("Suggested changes to voltage settings:\n");
print("Board\tActual\tChannel\tChange\n");
foreach my $b (sort keys %{$values}) {
my $value = $values->{$b}[0] / 16;
- my $diff = $value - $nominal[0];
- if($diff > $headroom+$stepsize) {
+ my $diff = $value - $nominal[0] - $headroom;
+ if($diff > $stepsize) {
my $sugg = $diff/$stepsize ;
printf("%04x\t%i\t%i\t%i\n",$b,$value,1,-$sugg);
}
- if($diff < $headroom) {
- my $sugg = ($diff+$headroom)/$stepsize;
+ if($diff < 0) {
+ my $sugg = (-$diff)/$stepsize + 1;
printf("%04x\t%i\t%i\t%i\n",$b,$value,1,$sugg);
}
-}
-foreach my $b (sort keys %{$values}) {
- my $value = $values->{$b}[2] / 16;
- my $diff = $value - $nominal[1];
- if($diff > $headroom+$stepsize) {
+ $value = $values->{$b}[2] / 16;
+ $diff = $value - $nominal[1] - $headroom;
+ if($diff > $stepsize) {
my $sugg = $diff/$stepsize ;
printf("%04x\t%i\t%i\t%i\n",$b,$value,0,-$sugg);
}
- if($diff < $headroom) {
- my $sugg = ($diff+$headroom)/$stepsize;
+ if($diff < 0) {
+ my $sugg = (-$diff)/$stepsize + 1;
printf("%04x\t%i\t%i\t%i\n",$b,$value,0,$sugg);
}
}