Initial pass of changes to work on the gQuadratic (includes Motate update)

This commit is contained in:
Rob Giseburt
2016-09-27 16:46:54 -05:00
parent f1d54d1914
commit ea20c05260
14 changed files with 303 additions and 111 deletions
+1 -1
Submodule Motate updated: 73dbb3ce43...84f1a21c14
+7 -4
View File
@@ -25,13 +25,13 @@ def load_pool(filename):
if buf:
current_buffer = int(buf.groups()[0], 16)
pool[TUMBLER[tumbler_pos]] = current_buffer
# print "TUMBLER[tumbler_pos]: %s=%i" % (TUMBLER[tumbler_pos], current_buffer)
print "TUMBLER[tumbler_pos]: %s=%i" % (TUMBLER[tumbler_pos], current_buffer)
tumbler_pos += 1
else:
buf = re.search('\(mpBuf_t\s\*\)\s(0x[0-9a-fA-F]+)', line)
if buf:
current_buffer = int(buf.groups()[0], 16)
# print "setup current_buffer: %s" % current_buffer
print "setup current_buffer: %s" % current_buffer
pool[current_buffer] = {'move_time': 0}
if current_buffer == pool['r']:
pool[current_buffer]['is_r'] = True
@@ -49,9 +49,11 @@ def load_pool(filename):
if key == 'pv':
pv = int(val, 16)
pool[current_buffer]['pv'] = pv
print "pv: %s" % pv
elif key == 'nx':
nv = int(val, 16)
pool[current_buffer]['nx'] = nv
nx = int(val, 16)
pool[current_buffer]['nx'] = nx
print "nx: %s" % nx
elif key == 'buffer_state':
pool[current_buffer]['buffer_state'] = val
elif key == 'jerk':
@@ -60,6 +62,7 @@ def load_pool(filename):
pool[current_buffer]['linenum'] = val
elif key == 'buffer_number':
pool[current_buffer]['buffer_number'] = val
print "#: %s" % val
elif key == 'junction_vmax':
pool[current_buffer]['junction_vmax'] = float(val)
elif key == 'cruise_velocity':
+4
View File
@@ -22,6 +22,7 @@ Global
Shapeoko2|ARM = Shapeoko2|ARM
shopbotShield|ARM = shopbotShield|ARM
Stub|ARM = Stub|ARM
TestQuadratic|ARM = TestQuadratic|ARM
TestQuintic|ARM = TestQuintic|ARM
TestV9|ARM = TestV9|ARM
Ultimakerv9k|ARM = Ultimakerv9k|ARM
@@ -49,6 +50,8 @@ Global
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.shopbotShield|ARM.ActiveCfg = shopbotShield|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.shopbotShield|ARM.Build.0 = shopbotShield|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.Stub|ARM.ActiveCfg = Shapeoko2|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestQuadratic|ARM.ActiveCfg = TestQuadratic|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestQuadratic|ARM.Build.0 = TestQuadratic|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestQuintic|ARM.ActiveCfg = TestQuintic|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestQuintic|ARM.Build.0 = TestQuintic|ARM
{44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestV9|ARM.ActiveCfg = TestV9|ARM
@@ -68,6 +71,7 @@ Global
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.Shapeoko2|ARM.ActiveCfg = Stub|ARM
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.shopbotShield|ARM.ActiveCfg = Stub|ARM
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.Stub|ARM.ActiveCfg = Stub|ARM
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.TestQuadratic|ARM.ActiveCfg = Stub|ARM
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.TestQuintic|ARM.ActiveCfg = Stub|ARM
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.TestV9|ARM.ActiveCfg = Stub|ARM
{D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.Ultimakerv9k|ARM.ActiveCfg = Stub|ARM
+3 -3
View File
@@ -12,15 +12,15 @@
##########
# BOARDs for use directly from the make command line (with default settings) or by CONFIGs.
ifeq ("$(BOARD)","gquadratic-a")
ifeq ("$(BOARD)","gquadratic-b")
BASE_BOARD=gquadratic
DEVICE_DEFINES += MOTATE_BOARD="gquadratic-a"
DEVICE_DEFINES += MOTATE_BOARD="gquadratic-b"
DEVICE_DEFINES += SETTINGS_FILE=${SETTINGS_FILE}
endif
##########
# The general pboard-a BASE_BOARD.
# The general gquadratic BASE_BOARD.
ifeq ("$(BASE_BOARD)","gquadratic")
_BOARD_FOUND = 1
@@ -1,5 +1,5 @@
/*
* gquadratic-a-pinout.h - board pinout specification
* gquadratic-b-pinout.h - board pinout specification
* This file is part of the g2core project
*
* Copyright (c) 2016 Robert Giseburt
@@ -29,8 +29,8 @@
*
*/
#ifndef GQUADRATIC_A_PINOUT_H
#define GQUADRATIC_A_PINOUT_H
#ifndef GQUADRATIC_B_PINOUT_H
#define GQUADRATIC_B_PINOUT_H
/*
* USAGE NOTES
@@ -100,9 +100,9 @@
// So we have to explicitly enable them as PWM pins.
// Generated with:
// perl -e 'for($i=1;$i<14;$i++) { print "#define OUTPUT${i}_PWM 0\n";}'
#define OUTPUT1_PWM 1 // Timer0ch0
#define OUTPUT1_PWM 1 // TC0.0
#define OUTPUT2_PWM 1 // PWM0.0
#define OUTPUT3_PWM 1 // Timer0ch1
#define OUTPUT3_PWM 1 // TC0.1
#define OUTPUT4_PWM 1 // PWM1.3
#define OUTPUT5_PWM 0 // unused
#define OUTPUT6_PWM 0 // unused
@@ -117,86 +117,86 @@
namespace Motate {
// Arduino pin name & function
_MAKE_MOTATE_PIN(kOutput1_PinNumber, 'A', 0); //
_MAKE_MOTATE_PIN(kOutput3_PinNumber, 'A', 1); //
_MAKE_MOTATE_PIN(kSocket2_VrefPinNumber, 'A', 2); //
_MAKE_MOTATE_PIN(kI2C1_SDAPinNumber, 'A', 3); //
_MAKE_MOTATE_PIN(kI2C1_SCLPinNumber, 'A', 4); //
_MAKE_MOTATE_PIN(kOutput4_PinNumber, 'A', 5); //
_MAKE_MOTATE_PIN(kUnassigned1, 'A', 6); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kUnassigned2, 'A', 7); //
_MAKE_MOTATE_PIN(kUnassigned3, 'A', 8); //
_MAKE_MOTATE_PIN(kSerial_RX, 'A', 9); //
_MAKE_MOTATE_PIN(kSerial_TX, 'A', 10); //
_MAKE_MOTATE_PIN(kOutput2_PinNumber, 'A', 0); // TC0.0 or PWM0
_MAKE_MOTATE_PIN(kOutput3_PinNumber, 'A', 1); // TC0.1 or PWM1
_MAKE_MOTATE_PIN(kSocket2_VrefPinNumber, 'A', 2); // PWM1
_MAKE_MOTATE_PIN(kI2C1_SDAPinNumber, 'A', 3); //
_MAKE_MOTATE_PIN(kI2C1_SCLPinNumber, 'A', 4); //
_MAKE_MOTATE_PIN(kUnassigned1, 'A', 5); //
_MAKE_MOTATE_PIN(kUnassigned2, 'A', 6); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kUnassigned3, 'A', 7); //
_MAKE_MOTATE_PIN(kUnassigned4, 'A', 8); //
_MAKE_MOTATE_PIN(kSerial_RX, 'A', 9); //
_MAKE_MOTATE_PIN(kSerial_TX, 'A', 10); //
_MAKE_MOTATE_PIN(kSocket1_Microstep_1PinNumber, 'A', 11); //
_MAKE_MOTATE_PIN(kSocket1_EnablePinNumber, 'A', 12); //
_MAKE_MOTATE_PIN(kUnassigned4, 'A', 13); //
_MAKE_MOTATE_PIN(kUnassigned6, 'A', 14); //
_MAKE_MOTATE_PIN(kUnassigned5, 'A', 15); //
_MAKE_MOTATE_PIN(kUnassigned7, 'A', 16); //
_MAKE_MOTATE_PIN(kUnassigned8, 'A', 17); //
_MAKE_MOTATE_PIN(kUnassigned9, 'A', 18); //
_MAKE_MOTATE_PIN(kUnassigned10, 'A', 19); //
_MAKE_MOTATE_PIN(kUnassigned11, 'A', 20); //
_MAKE_MOTATE_PIN(kUnassigned13, 'A', 21); //
_MAKE_MOTATE_PIN(kUnassigned12, 'A', 22); //
_MAKE_MOTATE_PIN(kUnassigned14, 'A', 23); //
_MAKE_MOTATE_PIN(kUnassigned15, 'A', 24); //
_MAKE_MOTATE_PIN(kUnassigned16, 'A', 25); //
_MAKE_MOTATE_PIN(kUnassigned17, 'A', 26); //
_MAKE_MOTATE_PIN(kSocket1_VrefPinNumber, 'A', 27); //
_MAKE_MOTATE_PIN(kSerial_CTS, 'A', 28); //
_MAKE_MOTATE_PIN(kUnassigned18, 'A', 29); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kSerial_RTS, 'A', 30); //
_MAKE_MOTATE_PIN(kOutputSAFE_PinNumber, 'A', 31); //
_MAKE_MOTATE_PIN(kSocket1_EnablePinNumber, 'A', 12); //
_MAKE_MOTATE_PIN(kUnassigned5, 'A', 13); //
_MAKE_MOTATE_PIN(kUnassigned6, 'A', 14); //
_MAKE_MOTATE_PIN(kUnassigned7, 'A', 15); //
_MAKE_MOTATE_PIN(kUnassigned8, 'A', 16); //
_MAKE_MOTATE_PIN(kUnassigned9, 'A', 17); //
_MAKE_MOTATE_PIN(kUnassigned10, 'A', 18); //
_MAKE_MOTATE_PIN(kUnassigned11, 'A', 19); //
_MAKE_MOTATE_PIN(kUnassigned12, 'A', 20); //
_MAKE_MOTATE_PIN(kUnassigned13, 'A', 21); //
_MAKE_MOTATE_PIN(kUnassigned14, 'A', 22); //
_MAKE_MOTATE_PIN(kUnassigned15, 'A', 23); //
_MAKE_MOTATE_PIN(kUnassigned16, 'A', 24); //
_MAKE_MOTATE_PIN(kUnassigned17, 'A', 25); //
_MAKE_MOTATE_PIN(kUnassigned18, 'A', 26); //
_MAKE_MOTATE_PIN(kSocket1_VrefPinNumber, 'A', 27); // TC2.1
_MAKE_MOTATE_PIN(kSerial_CTS, 'A', 28); //
_MAKE_MOTATE_PIN(kUnassigned19, 'A', 29); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kOutput1_PinNumber, 'A', 30); // PWM2
_MAKE_MOTATE_PIN(kInput4_PinNumber, 'A', 31); //
_MAKE_MOTATE_PIN(kUnassigned20, 'B', 0); //
_MAKE_MOTATE_PIN(kUnassigned22, 'B', 1); //
_MAKE_MOTATE_PIN(kUnassigned21, 'B', 2); //
_MAKE_MOTATE_PIN(kUnassigned23, 'B', 3); //
//_MAKE_MOTATE_PIN( , 'B', 4); // TDI
//_MAKE_MOTATE_PIN( , 'B', 5); // TRACESDO
//_MAKE_MOTATE_PIN( , 'B', 6); // SWDIO
//_MAKE_MOTATE_PIN( , 'B', 7); // SWDCLK
//_MAKE_MOTATE_PIN( , 'B', 8); // XOUT
//_MAKE_MOTATE_PIN( , 'B', 9); // XIN
//_MAKE_MOTATE_PIN( , 'B', 10); // USB_D-
//_MAKE_MOTATE_PIN( , 'B', 11); // USB_D+
//_MAKE_MOTATE_PIN( , 'B', 12); // ERASE
_MAKE_MOTATE_PIN(kUnassigned38, 'B', 13); // LED_1 (Heartbeat) - PWM2
_MAKE_MOTATE_PIN(kUnassigned20, 'B', 0); //
_MAKE_MOTATE_PIN(kUnassigned21, 'B', 1); //
_MAKE_MOTATE_PIN(kUnassigned22, 'B', 2); //
_MAKE_MOTATE_PIN(kUnassigned23, 'B', 3); //
//_MAKE_MOTATE_PIN( , 'B', 4); // TDI
//_MAKE_MOTATE_PIN( , 'B', 5); // TRACESDO
//_MAKE_MOTATE_PIN( , 'B', 6); // SWDIO
//_MAKE_MOTATE_PIN( , 'B', 7); // SWDCLK
//_MAKE_MOTATE_PIN( , 'B', 8); // XOUT
//_MAKE_MOTATE_PIN( , 'B', 9); // XIN
//_MAKE_MOTATE_PIN( , 'B', 10); // USB_D-
//_MAKE_MOTATE_PIN( , 'B', 11); // USB_D+
//_MAKE_MOTATE_PIN( , 'B', 12); // ERASE
_MAKE_MOTATE_PIN(kUnassigned24, 'B', 13); // LED_1 (Heartbeat) - PWM2
//_MAKE_MOTATE_PIN( , 'D', 0); // USB_VBUS
_MAKE_MOTATE_PIN(kInput1_PinNumber, 'D', 1); //
_MAKE_MOTATE_PIN(kInput2_PinNumber, 'D', 2); //
_MAKE_MOTATE_PIN(kUnassigned24, 'D', 3); //
_MAKE_MOTATE_PIN(kUnassigned25, 'D', 4); //
_MAKE_MOTATE_PIN(kUnassigned26, 'D', 5); //
_MAKE_MOTATE_PIN(kInput3_PinNumber, 'D', 6); //
_MAKE_MOTATE_PIN(kInput4_PinNumber, 'D', 7); //
_MAKE_MOTATE_PIN(kUnassigned19, 'D', 8); // INTERRUPT_OUT
_MAKE_MOTATE_PIN(kUnassigned27, 'D', 9); //
_MAKE_MOTATE_PIN(kOutput2_PinNumber, 'D', 10); //
_MAKE_MOTATE_PIN(kUnassigned28, 'D', 11); //
_MAKE_MOTATE_PIN(kSocket2_DirPinNumber, 'D', 12); //
_MAKE_MOTATE_PIN(kSocket2_EnablePinNumber, 'D', 13); //
_MAKE_MOTATE_PIN(kSocket2_StepPinNumber, 'D', 14); //
_MAKE_MOTATE_PIN(kUnassigned29, 'D', 15); //
//_MAKE_MOTATE_PIN( , 'D', 0); // USB_VBUS
_MAKE_MOTATE_PIN(kInput1_PinNumber, 'D', 1); //
_MAKE_MOTATE_PIN(kInput2_PinNumber, 'D', 2); //
_MAKE_MOTATE_PIN(kUnassigned25, 'D', 3); //
_MAKE_MOTATE_PIN(kUnassigned26, 'D', 4); //
_MAKE_MOTATE_PIN(kUnassigned27, 'D', 5); //
_MAKE_MOTATE_PIN(kInput3_PinNumber, 'D', 6); //
_MAKE_MOTATE_PIN(kSerial_RTS, 'D', 7); //
_MAKE_MOTATE_PIN(kUnassigned28, 'D', 8); // INTERRUPT_OUT
_MAKE_MOTATE_PIN(kUnassigned29, 'D', 9); //
_MAKE_MOTATE_PIN(kUnassigned30, 'D', 10); //
_MAKE_MOTATE_PIN(kLED_RGBWPixelPinNumber, 'D', 11); // PWM0
_MAKE_MOTATE_PIN(kSocket2_DirPinNumber, 'D', 12); //
_MAKE_MOTATE_PIN(kSocket2_EnablePinNumber, 'D', 13); //
_MAKE_MOTATE_PIN(kSocket2_StepPinNumber, 'D', 14); //
_MAKE_MOTATE_PIN(kOutputSAFE_PinNumber, 'D', 15); //
_MAKE_MOTATE_PIN(kSocket2_Microstep_0PinNumber, 'D', 16); //
_MAKE_MOTATE_PIN(kSocket2_Microstep_1PinNumber, 'D', 17); //
_MAKE_MOTATE_PIN(kSocket1_DirPinNumber, 'D', 18); //
_MAKE_MOTATE_PIN(kSocket1_StepPinNumber, 'D', 19); //
_MAKE_MOTATE_PIN(kSocket1_DirPinNumber, 'D', 18); //
_MAKE_MOTATE_PIN(kSocket1_StepPinNumber, 'D', 19); //
_MAKE_MOTATE_PIN(kSocket1_Microstep_0PinNumber, 'D', 20); //
_MAKE_MOTATE_PIN(kSocket1_Microstep_2PinNumber, 'D', 21); //
_MAKE_MOTATE_PIN(kUnassigned30, 'D', 22); //
_MAKE_MOTATE_PIN(kUnassigned31, 'D', 23); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kUnassigned32, 'D', 24); //
_MAKE_MOTATE_PIN(kUnassigned33, 'D', 25); //
_MAKE_MOTATE_PIN(kUnassigned34, 'D', 26); //
_MAKE_MOTATE_PIN(kUnassigned35, 'D', 27); //
_MAKE_MOTATE_PIN(kUnassigned31, 'D', 22); //
_MAKE_MOTATE_PIN(kUnassigned32, 'D', 23); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kUnassigned33, 'D', 24); //
_MAKE_MOTATE_PIN(kUnassigned34, 'D', 25); //
_MAKE_MOTATE_PIN(kUnassigned35, 'D', 26); //
_MAKE_MOTATE_PIN(kUnassigned36, 'D', 27); //
_MAKE_MOTATE_PIN(kSocket2_Microstep_2PinNumber, 'D', 28); //
_MAKE_MOTATE_PIN(kUnassigned36, 'D', 29); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kLEDPWM_PinNumber, 'D', 30); //
_MAKE_MOTATE_PIN(kUnassigned37, 'D', 31); //
_MAKE_MOTATE_PIN(kUnassigned37, 'D', 29); // Missing in 100-pin package
_MAKE_MOTATE_PIN(kLEDPWM_PinNumber, 'D', 30); //
_MAKE_MOTATE_PIN(kUnassigned38, 'D', 31); //
} // namespace Motate
@@ -206,4 +206,4 @@ _MAKE_MOTATE_PIN(kUnassigned37, 'D', 31); //
#endif
// GQUADRATIC_A_PINOUT_H
// GQUADRATIC_B_PINOUT_H
+2 -2
View File
@@ -130,8 +130,8 @@ using Motate::OutputPin;
/**** Motate Definitions ****/
// Timer definitions. See stepper.h and other headers for setup
typedef TimerChannel<0, 0> dda_timer_type; // stepper pulse generation in stepper.cpp
typedef TimerChannel<1, 0> dwell_timer_type; // dwell timing in stepper.cpp
typedef TimerChannel<9, 0> dda_timer_type; // stepper pulse generation in stepper.cpp
typedef TimerChannel<10, 0> dwell_timer_type; // dwell timing in stepper.cpp
typedef ServiceCall<0> load_timer_type; // request load timer in stepper.cpp
typedef ServiceCall<1> exec_timer_type; // request exec timer in stepper.cpp
typedef ServiceCall<2> fwd_plan_timer_type; // request exec timer in stepper.cpp
@@ -159,13 +159,15 @@ pin_number kDebug3_PinNumber = -1; // 116; //e Not the out-of-order numbering &
pin_number kDebug4_PinNumber = -1; // 114;
// END DEBUG PINS
pin_number kLED_USBRXPinNumber = 117;
pin_number kLED_USBTXPinNumber = 118;
pin_number kSD_CardDetectPinNumber = 119;
pin_number kSD_ChipSelectPinNumber = 120;
pin_number kInterlock_InPinNumber = 121;
pin_number kOutputSAFE_PinNumber = 122; // SAFE signal
pin_number kLEDPWM_PinNumber = 123;
pin_number kLED_USBRXPinNumber = 117;
pin_number kLED_USBTXPinNumber = 118;
pin_number kSD_CardDetectPinNumber = 119;
pin_number kSD_ChipSelectPinNumber = 120;
pin_number kInterlock_InPinNumber = 121;
pin_number kOutputSAFE_PinNumber = 122; // SAFE signal
pin_number kLEDPWM_PinNumber = 123;
pin_number kOutputInterrupt_PinNumber = 124; // to-host interrupt signal
pin_number kLED_RGBWPixelPinNumber = 125; // 117;
// GRBL / gShield compatibility pins -- Due board ONLY
+2 -2
View File
@@ -50,8 +50,8 @@ decltype(usb.mixin<1>::Serial) &SerialUSB1 = usb.mixin<1>::Serial;
// 115200 is the default, as well.
//UART<kSerial_RX, kSerial_TX, kSerial_RTS, kSerial_CTS> Serial {115200, UARTMode::RTSCTSFlowControl};
MOTATE_SET_USB_VENDOR_STRING( {'S' ,'y', 'n', 't', 'h', 'e', 't', 'o', 's'} )
MOTATE_SET_USB_PRODUCT_STRING( {'T', 'i', 'n', 'y', 'G', ' ', 'v', '2'} )
MOTATE_SET_USB_VENDOR_STRING( u"Synthetos" )
MOTATE_SET_USB_PRODUCT_STRING( u"TinyG v2" )
MOTATE_SET_USB_SERIAL_NUMBER_STRING_FROM_CHIPID()
+1 -1
View File
@@ -80,7 +80,7 @@ endif
ifeq ("$(CONFIG)","TestQuadratic")
ifeq ("$(BOARD)","NONE")
BOARD=gquadratic-a
BOARD=gquadratic-b
endif
SETTINGS_FILE="settings_test.h"
endif
+25
View File
@@ -339,6 +339,31 @@ typedef struct GCodeState { // Gcode model state - used by model, pl
cmCoordSystem coord_system; // G54-G59 - select coordinate system 1-9
uint8_t tool; // G // M6 tool change - moves "tool_select" to "tool"
uint8_t tool_select; // G // T value - T sets this value
void reset() {
linenum = 0;
motion_mode = 0;
for (uint8_t i = 0; i< AXES; i++) {
target[i] = 0.0;
work_offset[i] = 0.0;
}
feed_rate = 0.0;
parameter = 0.0;
feed_rate_mode = INVERSE_TIME_MODE;
select_plane = CANON_PLANE_XY;
units_mode = INCHES;
path_control = PATH_EXACT_PATH;
distance_mode = ABSOLUTE_MODE;
arc_distance_mode = ABSOLUTE_MODE;
absolute_override = ABSOLUTE_OVERRIDE_OFF;
coord_system = ABSOLUTE_COORDS;
tool = 0;
tool_select = 0;
};
} GCodeState_t;
typedef struct GCodeStateExtended { // Gcode dynamic state extensions - used by model and arcs
+72 -6
View File
@@ -5,7 +5,7 @@
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.ARMGCC.CPP</ToolchainName>
<ProjectGuid>{44ea8fec-55d7-4149-8a78-a574fc26bf51}</ProjectGuid>
<avrdevice>ATSAM3X8C</avrdevice>
<avrdevice>ATSAMS70N19</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>CPP</Language>
@@ -68,12 +68,12 @@
<com_atmel_avrdbg_tool_atmelice>
<ToolOptions>
<InterfaceProperties>
<SwdClock>2000000</SwdClock>
<SwdClock>10000000</SwdClock>
</InterfaceProperties>
<InterfaceName>SWD</InterfaceName>
</ToolOptions>
<ToolType>com.atmel.avrdbg.tool.atmelice</ToolType>
<ToolNumber>J41800004259</ToolNumber>
<ToolNumber>J41800006366</ToolNumber>
<ToolName>Atmel-ICE</ToolName>
</com_atmel_avrdbg_tool_atmelice>
<UseGdb>True</UseGdb>
@@ -100,9 +100,9 @@
<HWProgramCounterSampling>True</HWProgramCounterSampling>
</PercepioTrace>
<preserveEEPROM>true</preserveEEPROM>
<avrtoolserialnumber>J41800004259</avrtoolserialnumber>
<avrdeviceexpectedsignature>0x284E0A60</avrdeviceexpectedsignature>
<avrtoolinterfaceclock>2000000</avrtoolinterfaceclock>
<avrtoolserialnumber>J41800006366</avrtoolserialnumber>
<avrdeviceexpectedsignature>0xA11D0A00</avrdeviceexpectedsignature>
<avrtoolinterfaceclock>10000000</avrtoolinterfaceclock>
<custom>
<ToolOptions xmlns="">
<InterfaceProperties>
@@ -1454,6 +1454,72 @@
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
<OutputPath>bin\PrintrbotSimple1608-printrboardG2v3\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'TestQuadratic' ">
<ToolchainSettings>
<ArmGccCpp xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
<armgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles</Value>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles\CMSIS\Include</Value>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles\Device\ATMEL</Value>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\CMSIS\Include</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\Device\ATMEL</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\Device\ATMEL\sam3xa\include</Value>
</ListValues>
</armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level>
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcccpp.compiler.directories.IncludePaths>
<ListValues>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles</Value>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles\CMSIS\Include</Value>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles\Device\ATMEL</Value>
<Value>C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.128\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\CMSIS\Include</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\Device\ATMEL</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\Device\ATMEL\sam3xa\include</Value>
</ListValues>
</armgcccpp.compiler.directories.IncludePaths>
<armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level>
<armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel>
<armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings>
<armgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</armgcccpp.linker.libraries.Libraries>
<armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections>
<armgcccpp.linker.miscellaneous.LinkerFlags>-Tsam3x8c_flash.ld</armgcccpp.linker.miscellaneous.LinkerFlags>
<armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel>
<armgcccpp.preprocessingassembler.general.IncludePaths>
<ListValues>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\CMSIS\Include</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\Device\ATMEL</Value>
<Value>C:\Program Files\Atmel\Atmel Toolchain\ARM GCC\Native\4.7.2.87\arm-gnu-toolchain\bin\..\..\CMSIS_Atmel\Device\ATMEL\sam3xa\include</Value>
</ListValues>
</armgcccpp.preprocessingassembler.general.IncludePaths>
<armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel>
</ArmGccCpp>
</ToolchainSettings>
<UsesExternalMakeFile>True</UsesExternalMakeFile>
<OutputDirectory />
<BuildTarget>CONFIG=TestQuadratic COLOR=0 VERBOSE=1 DEBUG=1</BuildTarget>
<CleanTarget>clean CONFIG=TestQuintic</CleanTarget>
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
<OutputPath>bin\TestQuadratic\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="board\Archim\Archim-pinout.h">
<SubType>compile</SubType>
+40
View File
@@ -291,6 +291,20 @@
passBuildSettingsInEnvironment = 1;
productName = g3_due;
};
D4782AAE1D9B16BE00B32136 /* G2 Probotix */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "$(ACTION) VERBOSE=1 COLOR=0 CONFIG=ProbotixV90 DEBUG=1";
buildConfigurationList = D4782AAF1D9B16BE00B32136 /* Build configuration list for PBXLegacyTarget "G2 Probotix" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
buildWorkingDirectory = .;
dependencies = (
);
name = "G2 Probotix";
passBuildSettingsInEnvironment = 1;
productName = g3_due;
};
D4AC391A1C7BAB8E0098D685 /* G2 sbv300 */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "$(ACTION) VERBOSE=1 COLOR=0 CONFIG=sbv300 DEBUG=2";
@@ -411,6 +425,7 @@
D4AC391A1C7BAB8E0098D685 /* G2 sbv300 */,
D4F226F31D088A48008ED57C /* G2 gQuintic PrintrbotPlus */,
D43FF7141D537A5C00FB5B53 /* G2 gQuadratic Test */,
D4782AAE1D9B16BE00B32136 /* G2 Probotix */,
D457112317053BFB00EA19A8 /* index */,
);
};
@@ -653,6 +668,22 @@
};
name = Release;
};
D4782AB01D9B16BE00B32136 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
PATH = "$PATH:/usr/local/gcc-arm-none-eabi/bin";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
D4782AB11D9B16BE00B32136 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
PATH = "$PATH:/usr/local/gcc-arm-none-eabi/bin";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
D4AC391C1C7BAB8E0098D685 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -790,6 +821,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D4782AAF1D9B16BE00B32136 /* Build configuration list for PBXLegacyTarget "G2 Probotix" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D4782AB01D9B16BE00B32136 /* Debug */,
D4782AB11D9B16BE00B32136 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D4AC391B1C7BAB8E0098D685 /* Build configuration list for PBXLegacyTarget "G2 sbv300" */ = {
isa = XCConfigurationList;
buildConfigurations = (
+14 -5
View File
@@ -172,6 +172,14 @@ stat_t planner_test_assertions()
(BAD_MAGIC(mr.magic_start)) || (BAD_MAGIC(mr.magic_end))) {
return(cm_panic(STAT_PLANNER_ASSERTION_FAILURE, "planner_test_assertions()"));
}
for (uint8_t i=0; i < PLANNER_BUFFER_POOL_SIZE; i++) {
if (mb.bf[i].nx == nullptr) {
_debug_trap("buffer has nullptr for nx");
}
if (mb.bf[i].pv == nullptr) {
_debug_trap("buffer has nullptr for pv");
}
}
return (STAT_OK);
}
@@ -697,25 +705,26 @@ static inline void _clear_buffer(mpBuf_t *bf)
// the pointers and buffer number during interrupts
// We'll have to figure something else out for C, sorry.
bf->clear();
bf->reset();
}
void mp_init_buffers(void)
{
mpBuf_t *pv, *nx;
uint8_t i, nx_i;
memset(&mb, 0, sizeof(mb)); // clear all values, pointers and status
//memset(&mb, 0, sizeof(mb)); // clear all values, pointers and status
mb.magic_start = MAGICNUM;
mb.magic_end = MAGICNUM;
mb.w = &mb.bf[0]; // init all buffer pointers
mb.r = &mb.bf[0];
pv = &mb.bf[PLANNER_BUFFER_POOL_SIZE-1];
for (i=0; i < PLANNER_BUFFER_POOL_SIZE; i++) {
for (uint8_t i=0; i < PLANNER_BUFFER_POOL_SIZE; i++) {
_clear_buffer(&mb.bf[i]);
uint8_t nx_i = ((i<(PLANNER_BUFFER_POOL_SIZE-1))?(i+1):0); // buffer incr & wrap
mb.bf[i].buffer_number = i; //+++++ number it for diagnostics only (otherwise not used)
nx_i = ((i<PLANNER_BUFFER_POOL_SIZE-1)?(i+1):0); // buffer incr & wrap
nx = &mb.bf[nx_i];
mb.bf[i].nx = nx; // setup ring pointers
mb.bf[i].pv = pv;
+45 -2
View File
@@ -229,8 +229,51 @@ struct mpBuffer_to_clear {
GCodeState_t gm; // Gcode model state - passed from model, used by planner and runtime
void clear() {
memset((void *)(this), 0, sizeof(mpBuffer_to_clear));
void reset() {
//memset((void *)(this), 0, sizeof(mpBuffer_to_clear));
bf_func = nullptr;
cm_func = nullptr;
linenum = 0;
iterations = 0;
block_time_ms = 0;
plannable_time_ms = 0;
plannable_length = 0;
meet_iterations = 0;
buffer_state = MP_BUFFER_EMPTY;
block_type = BLOCK_TYPE_NULL;
block_state = BLOCK_INACTIVE;
hint = NO_HINT;
for (uint8_t i = 0; i< AXES; i++) {
unit[i] = 0;
axis_flags[i] = 0;
}
plannable = false;
length = 0.0;
block_time = 0.0;
override_factor = 0.0;
cruise_velocity = 0.0;
exit_velocity = 0.0;
cruise_vset = 0.0;
cruise_vmax = 0.0;
exit_vmax = 0.0;
absolute_vmax = 0.0;
junction_vmax = 0.0;
jerk = 0.0;
jerk_sq = 0.0;
recip_jerk = 0.0;
sqrt_j = 0.0;
q_recip_2_sqrt_j = 0.0;
gm.reset();
}
};