From fd5fe676f43921a11659dc0fe1d54007adad9e01 Mon Sep 17 00:00:00 2001 From: Markus Hitter Date: Wed, 27 Nov 2013 02:16:08 +0100 Subject: [PATCH] run-in-simulator.sh: express velocities in mm/min, too. Uh, this bloats the resulting VCD file by 50% ... ;-) --- testcases/run-in-simulavr.sh | 43 +++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/testcases/run-in-simulavr.sh b/testcases/run-in-simulavr.sh index 7b0a12d..081c800 100755 --- a/testcases/run-in-simulavr.sh +++ b/testcases/run-in-simulavr.sh @@ -29,6 +29,22 @@ echo "# Y Dir" >> /tmp/tracein.txt echo "+ PORTA.A5-Out" >> /tmp/tracein.txt echo "# Y Step" >> /tmp/tracein.txt echo "+ PORTA.A4-Out" >> /tmp/tracein.txt +echo "Assuming pin configuration for a Gen7-v1.4." + +STEPS_PER_M_X=$(grep STEPS_PER_M_X ../config.h | \ + grep -v ^// | awk '{ print $3; }') +if [ "${STEPS_PER_M_X}"0 -eq 0 ]; then + echo "STEPS_PER_M_X not found, assuming 80'000." + STEPS_PER_M_X=80000 +fi +STEPS_PER_M_Y=$(grep STEPS_PER_M_Y ../config.h | \ + grep -v ^// | awk '{ print $3; }') +if [ "${STEPS_PER_M_Y}"0 -eq 0 ]; then + echo "STEPS_PER_M_Y not found, assuming 80'000." + STEPS_PER_M_Y=80000 +fi +echo "Taking STEPS_PER_M_X = ${STEPS_PER_M_X} and" +echo " STEPS_PER_M_Y = ${STEPS_PER_M_Y} for mm/min calculation." for GCODE_FILE in $*; do @@ -141,13 +157,11 @@ EOF BEGIN { # These lines must match the ones after the sort. intLen = 16; - xStepID = "0"; xVelID = "1"; - yStepID = "2"; yVelID = "3"; + xStepID = "0"; xVelID = "1"; xMmmID = "3" + yStepID = "4"; yVelID = "5"; yMmmID = "6" xDir = yDir = 0; xPos = yPos = 0; - xVel = yVel = 0; - yAcc = yAcc = 0; lastxTime = lastyTime = 0; } /^#/ { @@ -174,8 +188,10 @@ EOF if ($2 == "1") { # X Step if (bit == 1) { # raising flange xPos += xDir; - xVel = 1000000000 / (time - lastxTime); - print lastxTime " b" print_binary(xVel, intLen) " " xVelID; + vel = 1000000000 / (time - lastxTime); + print lastxTime " b" print_binary(vel, intLen) " " xVelID; + vel = vel * 60000 / '"${STEPS_PER_M_X}"'; + print lastxTime " b" print_binary(vel, intLen) " " xMmmID; print time " b" bit " " xStepID; lastxTime = time; } else { # falling flange @@ -185,8 +201,10 @@ EOF if ($2 == "3") { # Y Step if (bit == 1) { # raising flange yPos += yDir; - yVel = 1000000000 / (time - lastyTime); - print lastyTime " b" print_binary(yVel, intLen) " " yVelID; + vel = 1000000000 / (time - lastyTime); + print lastyTime " b" print_binary(vel, intLen) " " yVelID; + vel = vel * 60000 / '"${STEPS_PER_M_Y}"'; + print lastyTime " b" print_binary(vel, intLen) " " yMmmID; print time " b" bit " " yStepID; lastyTime = time; } else { # falling flange @@ -200,24 +218,29 @@ EOF BEGIN { # These lines must match the ones before the sort. intLen = 16; - xStepID = "0"; xVelID = "1"; - yStepID = "2"; yVelID = "3"; + xStepID = "0"; xVelID = "1"; xMmmID = "3" + yStepID = "4"; yVelID = "5"; yMmmID = "6" + lastTime = ""; print "$timescale 1ns $end"; print "$scope module Steppers $end"; print "$var wire 1 " xStepID " X_step $end"; print "$var integer " intLen " " xVelID " X_steps/s $end"; + print "$var integer " intLen " " xMmmID " X_mm/min $end"; print "$var wire 1 " yStepID " Y_step $end"; print "$var integer " intLen " " yVelID " Y_steps/s $end"; + print "$var integer " intLen " " yMmmID " Y_mm/min $end"; print "$upscope $end"; print "$enddefinitions $end"; print "#0"; print "$dumpvars"; print "b0 " xStepID; print "b0 " xVelID; + print "b0 " xMmmID; print "b0 " yStepID; print "b0 " yVelID; + print "b0 " yMmmID; print "$end"; } {