Merge pull request #8477 from thinkyhead/bf2_some_formatting
[2.0.x] Apply some formatting
This commit is contained in:
		@@ -20,24 +20,24 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/**
 | 
				
			||||||
  ServoTimers.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
					 * ServoTimers.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
				
			||||||
  Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
					 * Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef _SERVOTIMERS_H_
 | 
					#ifndef _SERVOTIMERS_H_
 | 
				
			||||||
#define _SERVOTIMERS_H_
 | 
					#define _SERVOTIMERS_H_
 | 
				
			||||||
@@ -55,7 +55,7 @@
 | 
				
			|||||||
 * --------------------
 | 
					 * --------------------
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define TRIM_DURATION       2    // compensation ticks to trim adjust for digitalWrite delays
 | 
					#define TRIM_DURATION       2   // compensation ticks to trim adjust for digitalWrite delays
 | 
				
			||||||
#define PRESCALER           8   // timer prescaler
 | 
					#define PRESCALER           8   // timer prescaler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Say which 16 bit timers can be used and in what order
 | 
					// Say which 16 bit timers can be used and in what order
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,9 +21,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Fast I/O Routines
 | 
					 * Fast I/O Routines for AVR
 | 
				
			||||||
 * Use direct port manipulation to save scads of processor time.
 | 
					 * Use direct port manipulation to save scads of processor time.
 | 
				
			||||||
 * Contributed by Triffid_Hunter. Modified by Kliment and the Marlin team.
 | 
					 * Contributed by Triffid_Hunter and modified by Kliment, thinkyhead, Bob-the-Kuhn, et.al.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef _FASTIO_ARDUINO_H_
 | 
					#ifndef _FASTIO_ARDUINO_H_
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,9 +21,10 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  This code contributed by Triffid_Hunter and modified by Kliment
 | 
					 * Fast I/O Routines for SAM3X8E
 | 
				
			||||||
  why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
 | 
					 * Use direct port manipulation to save scads of processor time.
 | 
				
			||||||
*/
 | 
					 * Contributed by Triffid_Hunter and modified by Kliment, thinkyhead, Bob-the-Kuhn, et.al.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Description: Fast IO functions for Arduino Due and compatible (SAM3X8E)
 | 
					 * Description: Fast IO functions for Arduino Due and compatible (SAM3X8E)
 | 
				
			||||||
@@ -35,17 +36,20 @@
 | 
				
			|||||||
#define _FASTIO_DUE_H
 | 
					#define _FASTIO_DUE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  utility functions
 | 
					 * Utility functions
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef MASK
 | 
					#ifndef MASK
 | 
				
			||||||
  #define MASK(PIN)  (1 << PIN)
 | 
					  #define MASK(PIN)  (1 << PIN)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  magic I/O routines
 | 
					 * Magic I/O routines
 | 
				
			||||||
  now you can simply SET_OUTPUT(STEP); WRITE(STEP, 1); WRITE(STEP, 0);
 | 
					 *
 | 
				
			||||||
*/
 | 
					 * Now you can simply SET_OUTPUT(STEP); WRITE(STEP, HIGH); WRITE(STEP, LOW);
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Read a pin
 | 
					/// Read a pin
 | 
				
			||||||
#define _READ(IO) ((bool)(DIO ## IO ## _WPORT -> PIO_PDSR & (MASK(DIO ## IO ## _PIN))))
 | 
					#define _READ(IO) ((bool)(DIO ## IO ## _WPORT -> PIO_PDSR & (MASK(DIO ## IO ## _PIN))))
 | 
				
			||||||
@@ -80,8 +84,6 @@
 | 
				
			|||||||
/// check if pin is an timer
 | 
					/// check if pin is an timer
 | 
				
			||||||
#define _GET_TIMER(IO)
 | 
					#define _GET_TIMER(IO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//  why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// Read a pin wrapper
 | 
					/// Read a pin wrapper
 | 
				
			||||||
#define READ(IO)  _READ(IO)
 | 
					#define READ(IO)  _READ(IO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -111,10 +113,9 @@
 | 
				
			|||||||
#define OUT_WRITE(IO, v) { SET_OUTPUT(IO); WRITE(IO, v); }
 | 
					#define OUT_WRITE(IO, v) { SET_OUTPUT(IO); WRITE(IO, v); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  ports and functions
 | 
					 * Ports and functions
 | 
				
			||||||
 | 
					 * Added as necessary or if I feel like it- not a comprehensive list!
 | 
				
			||||||
  added as necessary or if I feel like it- not a comprehensive list!
 | 
					 */
 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UART
 | 
					// UART
 | 
				
			||||||
#define RXD        DIO0
 | 
					#define RXD        DIO0
 | 
				
			||||||
@@ -125,8 +126,8 @@
 | 
				
			|||||||
#define SDA        DIO20
 | 
					#define SDA        DIO20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
pins
 | 
					 * pins
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DIO0_PIN 8
 | 
					#define DIO0_PIN 8
 | 
				
			||||||
#define DIO0_WPORT PIOA
 | 
					#define DIO0_WPORT PIOA
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,20 @@
 | 
				
			|||||||
/*
 | 
					/**
 | 
				
			||||||
  Copyright (c) 2013 Arduino LLC. All right reserved.
 | 
					 * Copyright (c) 2013 Arduino LLC. All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Defines for 16 bit timers used with  Servo library
 | 
					 * Defines for 16 bit timers used with  Servo library
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,13 +21,13 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* LPC1768 LCD specific defines
 | 
					 * LPC1768 LCD-specific defines
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(TARGET_LPC1768)
 | 
					#ifdef TARGET_LPC1768
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // pointers to low level routines - must always supply these
 | 
					  // pointers to low level routines - must always supply these
 | 
				
			||||||
//  #define U8G_HAL_LINKS
 | 
					  //#define U8G_HAL_LINKS
 | 
				
			||||||
  #define HAL_LCD_pin_routines "HAL_LPC1768/HAL_LCD_pin_routines.h"
 | 
					  #define HAL_LCD_pin_routines "HAL_LPC1768/HAL_LCD_pin_routines.h"
 | 
				
			||||||
  #define HAL_LCD_I2C_routines  "HAL_LPC1768/HAL_LCD_I2C_routines.h"
 | 
					  #define HAL_LCD_I2C_routines  "HAL_LPC1768/HAL_LCD_I2C_routines.h"
 | 
				
			||||||
  #define HAL_LCD_delay "HAL_LPC1768/HAL_LCD_delay.h"
 | 
					  #define HAL_LCD_delay "HAL_LPC1768/HAL_LCD_delay.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@
 | 
				
			|||||||
 * The class Servo uses the PWM class to implement its functions
 | 
					 * The class Servo uses the PWM class to implement its functions
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * All PWMs use the same repetition rate - 20mS because that's the normal servo rate
 | 
					 * All PWMs use the same repetition rate - 20mS because that's the normal servo rate
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * This is a hybrid system.
 | 
					 * This is a hybrid system.
 | 
				
			||||||
@@ -60,7 +60,6 @@
 | 
				
			|||||||
 * See the end of this file for details on the hardware/firmware interaction
 | 
					 * See the end of this file for details on the hardware/firmware interaction
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef TARGET_LPC1768
 | 
					#ifdef TARGET_LPC1768
 | 
				
			||||||
#include <lpc17xx_pinsel.h>
 | 
					#include <lpc17xx_pinsel.h>
 | 
				
			||||||
#include "LPC1768_PWM.h"
 | 
					#include "LPC1768_PWM.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@
 | 
				
			|||||||
 * The class Servo uses the PWM class to implement its functions
 | 
					 * The class Servo uses the PWM class to implement its functions
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * All PWMs use the same repetition rate - 20mS because that's the normal servo rate
 | 
					 * All PWMs use the same repetition rate - 20mS because that's the normal servo rate
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * This is a hybrid system.
 | 
					 * This is a hybrid system.
 | 
				
			||||||
@@ -60,7 +60,7 @@
 | 
				
			|||||||
 * See the end of this file for details on the hardware/firmware interaction
 | 
					 * See the end of this file for details on the hardware/firmware interaction
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 #include "fastio.h"
 | 
					#include "fastio.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define LPC_PWM1_MR0 19999  // base repetition rate minus one count - 20mS
 | 
					#define LPC_PWM1_MR0 19999  // base repetition rate minus one count - 20mS
 | 
				
			||||||
#define LPC_PWM1_PR 24      // prescaler value - prescaler divide by 24 + 1  -  1 MHz output
 | 
					#define LPC_PWM1_PR 24      // prescaler value - prescaler divide by 24 + 1  -  1 MHz output
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +1,34 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
SoftwareSerial.cpp (formerly NewSoftSerial.cpp) -
 | 
					 * SoftwareSerial.cpp (formerly NewSoftSerial.cpp)
 | 
				
			||||||
Multi-instance software serial library for Arduino/Wiring
 | 
					 *
 | 
				
			||||||
-- Interrupt-driven receive and other improvements by ladyada
 | 
					 * Multi-instance software serial library for Arduino/Wiring
 | 
				
			||||||
   (http://ladyada.net)
 | 
					 * -- Interrupt-driven receive and other improvements by ladyada
 | 
				
			||||||
-- Tuning, circular buffer, derivation from class Print/Stream,
 | 
					 *    (http://ladyada.net)
 | 
				
			||||||
   multi-instance support, porting to 8MHz processors,
 | 
					 * -- Tuning, circular buffer, derivation from class Print/Stream,
 | 
				
			||||||
   various optimizations, PROGMEM delay tables, inverse logic and
 | 
					 *    multi-instance support, porting to 8MHz processors,
 | 
				
			||||||
   direct port writing by Mikal Hart (http://www.arduiniana.org)
 | 
					 *    various optimizations, PROGMEM delay tables, inverse logic and
 | 
				
			||||||
-- Pin change interrupt macros by Paul Stoffregen (http://www.pjrc.com)
 | 
					 *    direct port writing by Mikal Hart (http://www.arduiniana.org)
 | 
				
			||||||
-- 20MHz processor support by Garrett Mace (http://www.macetech.com)
 | 
					 * -- Pin change interrupt macros by Paul Stoffregen (http://www.pjrc.com)
 | 
				
			||||||
-- ATmega1280/2560 support by Brett Hagman (http://www.roguerobotics.com/)
 | 
					 * -- 20MHz processor support by Garrett Mace (http://www.macetech.com)
 | 
				
			||||||
 | 
					 * -- ATmega1280/2560 support by Brett Hagman (http://www.roguerobotics.com/)
 | 
				
			||||||
This library is free software; you can redistribute it and/or
 | 
					 *
 | 
				
			||||||
modify it under the terms of the GNU Lesser General Public
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
License as published by the Free Software Foundation; either
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
version 2.1 of the License, or (at your option) any later version.
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
This library is distributed in the hope that it will be useful,
 | 
					 *
 | 
				
			||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
Lesser General Public License for more details.
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
You should have received a copy of the GNU Lesser General Public
 | 
					 *
 | 
				
			||||||
License along with this library; if not, write to the Free Software
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
The latest version of this library can always be found at
 | 
					 *
 | 
				
			||||||
http://arduiniana.org.
 | 
					 * The latest version of this library can always be found at
 | 
				
			||||||
*/
 | 
					 * http://arduiniana.org.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef TARGET_LPC1768
 | 
					#ifdef TARGET_LPC1768
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +1,34 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
SoftwareSerial.h (formerly NewSoftSerial.h) -
 | 
					 * SoftwareSerial.h (formerly NewSoftSerial.h)
 | 
				
			||||||
Multi-instance software serial library for Arduino/Wiring
 | 
					 *
 | 
				
			||||||
-- Interrupt-driven receive and other improvements by ladyada
 | 
					 * Multi-instance software serial library for Arduino/Wiring
 | 
				
			||||||
   (http://ladyada.net)
 | 
					 * -- Interrupt-driven receive and other improvements by ladyada
 | 
				
			||||||
-- Tuning, circular buffer, derivation from class Print/Stream,
 | 
					 *    (http://ladyada.net)
 | 
				
			||||||
   multi-instance support, porting to 8MHz processors,
 | 
					 * -- Tuning, circular buffer, derivation from class Print/Stream,
 | 
				
			||||||
   various optimizations, PROGMEM delay tables, inverse logic and
 | 
					 *    multi-instance support, porting to 8MHz processors,
 | 
				
			||||||
   direct port writing by Mikal Hart (http://www.arduiniana.org)
 | 
					 *    various optimizations, PROGMEM delay tables, inverse logic and
 | 
				
			||||||
-- Pin change interrupt macros by Paul Stoffregen (http://www.pjrc.com)
 | 
					 *    direct port writing by Mikal Hart (http://www.arduiniana.org)
 | 
				
			||||||
-- 20MHz processor support by Garrett Mace (http://www.macetech.com)
 | 
					 * -- Pin change interrupt macros by Paul Stoffregen (http://www.pjrc.com)
 | 
				
			||||||
-- ATmega1280/2560 support by Brett Hagman (http://www.roguerobotics.com/)
 | 
					 * -- 20MHz processor support by Garrett Mace (http://www.macetech.com)
 | 
				
			||||||
 | 
					 * -- ATmega1280/2560 support by Brett Hagman (http://www.roguerobotics.com/)
 | 
				
			||||||
This library is free software; you can redistribute it and/or
 | 
					 *
 | 
				
			||||||
modify it under the terms of the GNU Lesser General Public
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
License as published by the Free Software Foundation; either
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
version 2.1 of the License, or (at your option) any later version.
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
This library is distributed in the hope that it will be useful,
 | 
					 *
 | 
				
			||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
Lesser General Public License for more details.
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
You should have received a copy of the GNU Lesser General Public
 | 
					 *
 | 
				
			||||||
License along with this library; if not, write to the Free Software
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
The latest version of this library can always be found at
 | 
					 *
 | 
				
			||||||
http://arduiniana.org.
 | 
					 * The latest version of this library can always be found at
 | 
				
			||||||
*/
 | 
					 * http://arduiniana.org.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef SOFTWARESERIAL_H
 | 
					#ifndef SOFTWARESERIAL_H
 | 
				
			||||||
#define SOFTWARESERIAL_H
 | 
					#define SOFTWARESERIAL_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,20 @@
 | 
				
			|||||||
/*
 | 
					/**
 | 
				
			||||||
  Copyright (c) 2011-2012 Arduino.  All right reserved.
 | 
					 * Copyright (c) 2011-2012 Arduino.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
				
			||||||
  See the GNU Lesser General Public License for more details.
 | 
					 * See the GNU Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef TARGET_LPC1768
 | 
					#ifdef TARGET_LPC1768
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,9 +21,10 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  This code contributed by Triffid_Hunter and modified by Kliment
 | 
					 * Fast I/O Routines for LPC1768/9
 | 
				
			||||||
  why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
 | 
					 * Use direct port manipulation to save scads of processor time.
 | 
				
			||||||
*/
 | 
					 * Contributed by Triffid_Hunter and modified by Kliment, thinkyhead, Bob-the-Kuhn, et.al.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Description: Fast IO functions LPC1768
 | 
					 * Description: Fast IO functions LPC1768
 | 
				
			||||||
@@ -57,9 +58,12 @@ bool useable_hardware_PWM(uint8_t pin);
 | 
				
			|||||||
#define WRITE_PIN(IO, v)        ((v) ? WRITE_PIN_SET(IO) : WRITE_PIN_CLR(IO))
 | 
					#define WRITE_PIN(IO, v)        ((v) ? WRITE_PIN_SET(IO) : WRITE_PIN_CLR(IO))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  magic I/O routines
 | 
					 * Magic I/O routines
 | 
				
			||||||
  now you can simply SET_OUTPUT(STEP); WRITE(STEP, 1); WRITE(STEP, 0);
 | 
					 *
 | 
				
			||||||
*/
 | 
					 * Now you can simply SET_OUTPUT(STEP); WRITE(STEP, HIGH); WRITE(STEP, LOW);
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Read a pin
 | 
					/// Read a pin
 | 
				
			||||||
#define _READ(IO) READ_PIN(IO)
 | 
					#define _READ(IO) READ_PIN(IO)
 | 
				
			||||||
@@ -89,8 +93,6 @@ bool useable_hardware_PWM(uint8_t pin);
 | 
				
			|||||||
/// check if pin is an timer
 | 
					/// check if pin is an timer
 | 
				
			||||||
#define _GET_TIMER(IO)
 | 
					#define _GET_TIMER(IO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//  why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// Read a pin wrapper
 | 
					/// Read a pin wrapper
 | 
				
			||||||
#define READ(IO)  _READ(IO)
 | 
					#define READ(IO)  _READ(IO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +1,23 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
  TwoWire.h - TWI/I2C library for Arduino & Wiring
 | 
					 * TwoWire.h - TWI/I2C library for Arduino & Wiring
 | 
				
			||||||
  Copyright (c) 2006 Nicholas Zambetti.  All right reserved.
 | 
					 * Copyright (c) 2006 Nicholas Zambetti.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts
 | 
					 * Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Modified for use with the mcp4451 digipot routine
 | 
					// Modified for use with the mcp4451 digipot routine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -28,31 +28,30 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <inttypes.h>
 | 
					#include <inttypes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TwoWire
 | 
					class TwoWire {
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  public:
 | 
					  public:
 | 
				
			||||||
//    TwoWire();
 | 
					    //TwoWire();
 | 
				
			||||||
    void begin();
 | 
					    void begin();
 | 
				
			||||||
    void beginTransmission(uint8_t);
 | 
					    void beginTransmission(uint8_t);
 | 
				
			||||||
    uint8_t endTransmission(void);
 | 
					    uint8_t endTransmission(void);
 | 
				
			||||||
    size_t write(uint8_t);
 | 
					    size_t write(uint8_t);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//extern TwoWire Wire;//
 | 
					//extern TwoWire Wire;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TwoWire Wire;
 | 
					TwoWire Wire;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ////////////////////////////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
  extern "C" uint8_t digipot_mcp4451_start(uint8_t sla);
 | 
					
 | 
				
			||||||
  extern "C" void digipot_mcp4451_init(void);
 | 
					extern "C" uint8_t digipot_mcp4451_start(uint8_t sla);
 | 
				
			||||||
  extern "C" uint8_t digipot_mcp4451_send_byte(uint8_t data);
 | 
					extern "C" void digipot_mcp4451_init(void);
 | 
				
			||||||
 | 
					extern "C" uint8_t digipot_mcp4451_send_byte(uint8_t data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void TwoWire::beginTransmission(uint8_t sla) { digipot_mcp4451_start(sla);}
 | 
					void TwoWire::beginTransmission(uint8_t sla) { digipot_mcp4451_start(sla);}
 | 
				
			||||||
  void TwoWire::begin(void) {digipot_mcp4451_init();}
 | 
					void TwoWire::begin(void) {digipot_mcp4451_init();}
 | 
				
			||||||
  size_t TwoWire::write(uint8_t data) {return digipot_mcp4451_send_byte(data);}
 | 
					size_t TwoWire::write(uint8_t data) {return digipot_mcp4451_send_byte(data);}
 | 
				
			||||||
  uint8_t TwoWire::endTransmission(void) {return 1;}
 | 
					uint8_t TwoWire::endTransmission(void) {return 1;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#endif  // TARGET_LPC1768
 | 
					#endif  // TARGET_LPC1768
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,171 +1,162 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
  * Marlin 3D Printer Firmware
 | 
					 * Marlin 3D Printer Firmware
 | 
				
			||||||
  * Copyright (C) 2016, 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
					 * Copyright (C) 2016, 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
				
			||||||
  *
 | 
					 *
 | 
				
			||||||
  * Based on Sprinter and grbl.
 | 
					 * Based on Sprinter and grbl.
 | 
				
			||||||
  * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
					 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
				
			||||||
  *
 | 
					 *
 | 
				
			||||||
  * This program is free software: you can redistribute it and/or modify
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
  * it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
  * the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
  * (at your option) any later version.
 | 
					 * (at your option) any later version.
 | 
				
			||||||
  *
 | 
					 *
 | 
				
			||||||
  * This program is distributed in the hope that it will be useful,
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
  * GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
  *
 | 
					 *
 | 
				
			||||||
  * You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
  *
 | 
					 *
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// adapted from  I2C/master/master.c example
 | 
					// adapted from  I2C/master/master.c example
 | 
				
			||||||
//   https://www-users.cs.york.ac.uk/~pcc/MCP/HAPR-Course-web/CMSIS/examples/html/master_8c_source.html
 | 
					//   https://www-users.cs.york.ac.uk/~pcc/MCP/HAPR-Course-web/CMSIS/examples/html/master_8c_source.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef TARGET_LPC1768
 | 
					#ifdef TARGET_LPC1768
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #ifdef __cplusplus
 | 
					#ifdef __cplusplus
 | 
				
			||||||
    extern "C" {
 | 
					  extern "C" {
 | 
				
			||||||
  #endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #include <lpc17xx_i2c.h>
 | 
					#include <lpc17xx_i2c.h>
 | 
				
			||||||
  #include <lpc17xx_pinsel.h>
 | 
					#include <lpc17xx_pinsel.h>
 | 
				
			||||||
  #include <lpc17xx_libcfg_default.h>
 | 
					#include <lpc17xx_libcfg_default.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //////////////////////////////////////////////////////////////////////////////////////
 | 
					//////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // These two routines are exact copies of the lpc17xx_i2c.c routines.  Couldn't link to
 | 
					// These two routines are exact copies of the lpc17xx_i2c.c routines.  Couldn't link to
 | 
				
			||||||
  // to the lpc17xx_i2c.c routines so had to copy them into this file & rename them.
 | 
					// to the lpc17xx_i2c.c routines so had to copy them into this file & rename them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static uint32_t _I2C_Start (LPC_I2C_TypeDef *I2Cx)
 | 
					static uint32_t _I2C_Start (LPC_I2C_TypeDef *I2Cx) {
 | 
				
			||||||
  {
 | 
					  // Reset STA, STO, SI
 | 
				
			||||||
    // Reset STA, STO, SI
 | 
					  I2Cx->I2CONCLR = I2C_I2CONCLR_SIC|I2C_I2CONCLR_STOC|I2C_I2CONCLR_STAC;
 | 
				
			||||||
    I2Cx->I2CONCLR = I2C_I2CONCLR_SIC|I2C_I2CONCLR_STOC|I2C_I2CONCLR_STAC;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Enter to Master Transmitter mode
 | 
					  // Enter to Master Transmitter mode
 | 
				
			||||||
    I2Cx->I2CONSET = I2C_I2CONSET_STA;
 | 
					  I2Cx->I2CONSET = I2C_I2CONSET_STA;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Wait for complete
 | 
					  // Wait for complete
 | 
				
			||||||
    while (!(I2Cx->I2CONSET & I2C_I2CONSET_SI));
 | 
					  while (!(I2Cx->I2CONSET & I2C_I2CONSET_SI));
 | 
				
			||||||
 | 
					  I2Cx->I2CONCLR = I2C_I2CONCLR_STAC;
 | 
				
			||||||
 | 
					  return (I2Cx->I2STAT & I2C_STAT_CODE_BITMASK);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void _I2C_Stop (LPC_I2C_TypeDef *I2Cx) {
 | 
				
			||||||
 | 
					  /* Make sure start bit is not active */
 | 
				
			||||||
 | 
					  if (I2Cx->I2CONSET & I2C_I2CONSET_STA)
 | 
				
			||||||
    I2Cx->I2CONCLR = I2C_I2CONCLR_STAC;
 | 
					    I2Cx->I2CONCLR = I2C_I2CONCLR_STAC;
 | 
				
			||||||
    return (I2Cx->I2STAT & I2C_STAT_CODE_BITMASK);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static void _I2C_Stop (LPC_I2C_TypeDef *I2Cx)
 | 
					  I2Cx->I2CONSET = I2C_I2CONSET_STO|I2C_I2CONSET_AA;
 | 
				
			||||||
  {
 | 
					  I2Cx->I2CONCLR = I2C_I2CONCLR_SIC;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
    /* Make sure start bit is not active */
 | 
					 | 
				
			||||||
    if (I2Cx->I2CONSET & I2C_I2CONSET_STA)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      I2Cx->I2CONCLR = I2C_I2CONCLR_STAC;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    I2Cx->I2CONSET = I2C_I2CONSET_STO|I2C_I2CONSET_AA;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    I2Cx->I2CONCLR = I2C_I2CONCLR_SIC;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //////////////////////////////////////////////////////////////////////////////////////
 | 
					//////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #define USEDI2CDEV_M  1  // use I2C1 controller
 | 
					#define USEDI2CDEV_M  1  // use I2C1 controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #if (USEDI2CDEV_M == 0)
 | 
					#if (USEDI2CDEV_M == 0)
 | 
				
			||||||
    #define I2CDEV_M LPC_I2C0
 | 
					  #define I2CDEV_M LPC_I2C0
 | 
				
			||||||
  #elif (USEDI2CDEV_M == 1)
 | 
					#elif (USEDI2CDEV_M == 1)
 | 
				
			||||||
    #define I2CDEV_M LPC_I2C1
 | 
					  #define I2CDEV_M LPC_I2C1
 | 
				
			||||||
  #elif (USEDI2CDEV_M == 2)
 | 
					#elif (USEDI2CDEV_M == 2)
 | 
				
			||||||
    #define I2CDEV_M LPC_I2C2
 | 
					  #define I2CDEV_M LPC_I2C2
 | 
				
			||||||
  #else
 | 
					#else
 | 
				
			||||||
    #error "Master I2C device not defined!"
 | 
					  #error "Master I2C device not defined!"
 | 
				
			||||||
  #endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  PINSEL_CFG_Type PinCfg;
 | 
					PINSEL_CFG_Type PinCfg;
 | 
				
			||||||
  I2C_M_SETUP_Type transferMCfg;
 | 
					I2C_M_SETUP_Type transferMCfg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #define I2C_status (LPC_I2C1->I2STAT & I2C_STAT_CODE_BITMASK)
 | 
					#define I2C_status (LPC_I2C1->I2STAT & I2C_STAT_CODE_BITMASK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  uint8_t digipot_mcp4451_start(uint8_t sla) {  // send slave address and write bit
 | 
					uint8_t digipot_mcp4451_start(uint8_t sla) {  // send slave address and write bit
 | 
				
			||||||
    // Sometimes TX data ACK or NAK status is returned.  That mean the start state didn't
 | 
					  // Sometimes TX data ACK or NAK status is returned.  That mean the start state didn't
 | 
				
			||||||
    // happen which means only the value of the slave address was send.  Keep looping until
 | 
					  // happen which means only the value of the slave address was send.  Keep looping until
 | 
				
			||||||
    // the slave address and write bit are actually sent.
 | 
					  // the slave address and write bit are actually sent.
 | 
				
			||||||
    do{
 | 
					  do{
 | 
				
			||||||
      _I2C_Stop(I2CDEV_M); // output stop state on I2C bus
 | 
					    _I2C_Stop(I2CDEV_M); // output stop state on I2C bus
 | 
				
			||||||
      _I2C_Start(I2CDEV_M); // output start state on I2C bus
 | 
					    _I2C_Start(I2CDEV_M); // output start state on I2C bus
 | 
				
			||||||
      while ((I2C_status != I2C_I2STAT_M_TX_START)
 | 
					    while ((I2C_status != I2C_I2STAT_M_TX_START)
 | 
				
			||||||
          && (I2C_status != I2C_I2STAT_M_TX_RESTART)
 | 
					        && (I2C_status != I2C_I2STAT_M_TX_RESTART)
 | 
				
			||||||
          && (I2C_status != I2C_I2STAT_M_TX_DAT_ACK)
 | 
					        && (I2C_status != I2C_I2STAT_M_TX_DAT_ACK)
 | 
				
			||||||
          && (I2C_status != I2C_I2STAT_M_TX_DAT_NACK));  //wait for start to be asserted
 | 
					        && (I2C_status != I2C_I2STAT_M_TX_DAT_NACK));  //wait for start to be asserted
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      LPC_I2C1->I2CONCLR = I2C_I2CONCLR_STAC; // clear start state before tansmitting slave address
 | 
					    LPC_I2C1->I2CONCLR = I2C_I2CONCLR_STAC; // clear start state before tansmitting slave address
 | 
				
			||||||
      LPC_I2C1->I2DAT = (sla <<1) & I2C_I2DAT_BITMASK; // transmit slave address & write bit
 | 
					    LPC_I2C1->I2DAT = (sla <<1) & I2C_I2DAT_BITMASK; // transmit slave address & write bit
 | 
				
			||||||
      LPC_I2C1->I2CONSET = I2C_I2CONSET_AA;
 | 
					 | 
				
			||||||
      LPC_I2C1->I2CONCLR = I2C_I2CONCLR_SIC;
 | 
					 | 
				
			||||||
      while ((I2C_status != I2C_I2STAT_M_TX_SLAW_ACK)
 | 
					 | 
				
			||||||
          && (I2C_status != I2C_I2STAT_M_TX_SLAW_NACK)
 | 
					 | 
				
			||||||
          && (I2C_status != I2C_I2STAT_M_TX_DAT_ACK)
 | 
					 | 
				
			||||||
          && (I2C_status != I2C_I2STAT_M_TX_DAT_NACK));  //wait for slaw to finish
 | 
					 | 
				
			||||||
    }while ( (I2C_status == I2C_I2STAT_M_TX_DAT_ACK) ||  (I2C_status == I2C_I2STAT_M_TX_DAT_NACK));
 | 
					 | 
				
			||||||
    return 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  void digipot_mcp4451_init(void) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
      * Init I2C pin connect
 | 
					 | 
				
			||||||
    */
 | 
					 | 
				
			||||||
    PinCfg.OpenDrain = 0;
 | 
					 | 
				
			||||||
    PinCfg.Pinmode = 0;
 | 
					 | 
				
			||||||
    #if ((USEDI2CDEV_M == 0))
 | 
					 | 
				
			||||||
      PinCfg.Funcnum = 1;
 | 
					 | 
				
			||||||
      PinCfg.Pinnum = 27;
 | 
					 | 
				
			||||||
      PinCfg.Portnum = 0;
 | 
					 | 
				
			||||||
      PINSEL_ConfigPin(&PinCfg); // SDA0 / D57  AUX-1
 | 
					 | 
				
			||||||
      PinCfg.Pinnum = 28;
 | 
					 | 
				
			||||||
      PINSEL_ConfigPin(&PinCfg); // SCL0 / D58  AUX-1
 | 
					 | 
				
			||||||
    #endif
 | 
					 | 
				
			||||||
    #if ((USEDI2CDEV_M == 1))
 | 
					 | 
				
			||||||
      PinCfg.Funcnum = 3;
 | 
					 | 
				
			||||||
      PinCfg.Pinnum = 0;
 | 
					 | 
				
			||||||
      PinCfg.Portnum = 0;
 | 
					 | 
				
			||||||
      PINSEL_ConfigPin(&PinCfg);  // SDA1 / D20 SCA
 | 
					 | 
				
			||||||
      PinCfg.Pinnum = 1;
 | 
					 | 
				
			||||||
      PINSEL_ConfigPin(&PinCfg);  // SCL1 / D21 SCL
 | 
					 | 
				
			||||||
    #endif
 | 
					 | 
				
			||||||
    #if ((USEDI2CDEV_M == 2))
 | 
					 | 
				
			||||||
      PinCfg.Funcnum = 2;
 | 
					 | 
				
			||||||
      PinCfg.Pinnum = 10;
 | 
					 | 
				
			||||||
      PinCfg.Portnum = 0;
 | 
					 | 
				
			||||||
      PINSEL_ConfigPin(&PinCfg); // SDA2 / D38  X_ENABLE_PIN
 | 
					 | 
				
			||||||
      PinCfg.Pinnum = 11;
 | 
					 | 
				
			||||||
      PINSEL_ConfigPin(&PinCfg); // SCL2 / D55  X_DIR_PIN
 | 
					 | 
				
			||||||
    #endif
 | 
					 | 
				
			||||||
    // Initialize I2C peripheral
 | 
					 | 
				
			||||||
    I2C_Init(I2CDEV_M, 400000);  // hardwired to 400KHz bit rate, 100KHz is the other option
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Enable Master I2C operation */
 | 
					 | 
				
			||||||
    I2C_Cmd(I2CDEV_M, I2C_MASTER_MODE, ENABLE);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  uint8_t digipot_mcp4451_send_byte(uint8_t data) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    LPC_I2C1->I2DAT = data & I2C_I2DAT_BITMASK; // transmit data
 | 
					 | 
				
			||||||
    LPC_I2C1->I2CONSET = I2C_I2CONSET_AA;
 | 
					    LPC_I2C1->I2CONSET = I2C_I2CONSET_AA;
 | 
				
			||||||
    LPC_I2C1->I2CONCLR = I2C_I2CONCLR_SIC;
 | 
					    LPC_I2C1->I2CONCLR = I2C_I2CONCLR_SIC;
 | 
				
			||||||
    while ((I2C_status != I2C_I2STAT_M_TX_DAT_ACK) && (I2C_status != I2C_I2STAT_M_TX_DAT_NACK));  // wait for xmit to finish
 | 
					    while ((I2C_status != I2C_I2STAT_M_TX_SLAW_ACK)
 | 
				
			||||||
    return 1;
 | 
					        && (I2C_status != I2C_I2STAT_M_TX_SLAW_NACK)
 | 
				
			||||||
  }
 | 
					        && (I2C_status != I2C_I2STAT_M_TX_DAT_ACK)
 | 
				
			||||||
 | 
					        && (I2C_status != I2C_I2STAT_M_TX_DAT_NACK));  //wait for slaw to finish
 | 
				
			||||||
 | 
					  }while ( (I2C_status == I2C_I2STAT_M_TX_DAT_ACK) ||  (I2C_status == I2C_I2STAT_M_TX_DAT_NACK));
 | 
				
			||||||
 | 
					  return 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #ifdef __cplusplus
 | 
					void digipot_mcp4451_init(void) {
 | 
				
			||||||
    }
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Init I2C pin connect
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  PinCfg.OpenDrain = 0;
 | 
				
			||||||
 | 
					  PinCfg.Pinmode = 0;
 | 
				
			||||||
 | 
					  #if ((USEDI2CDEV_M == 0))
 | 
				
			||||||
 | 
					    PinCfg.Funcnum = 1;
 | 
				
			||||||
 | 
					    PinCfg.Pinnum = 27;
 | 
				
			||||||
 | 
					    PinCfg.Portnum = 0;
 | 
				
			||||||
 | 
					    PINSEL_ConfigPin(&PinCfg); // SDA0 / D57  AUX-1
 | 
				
			||||||
 | 
					    PinCfg.Pinnum = 28;
 | 
				
			||||||
 | 
					    PINSEL_ConfigPin(&PinCfg); // SCL0 / D58  AUX-1
 | 
				
			||||||
  #endif
 | 
					  #endif
 | 
				
			||||||
 | 
					  #if ((USEDI2CDEV_M == 1))
 | 
				
			||||||
 | 
					    PinCfg.Funcnum = 3;
 | 
				
			||||||
 | 
					    PinCfg.Pinnum = 0;
 | 
				
			||||||
 | 
					    PinCfg.Portnum = 0;
 | 
				
			||||||
 | 
					    PINSEL_ConfigPin(&PinCfg);  // SDA1 / D20 SCA
 | 
				
			||||||
 | 
					    PinCfg.Pinnum = 1;
 | 
				
			||||||
 | 
					    PINSEL_ConfigPin(&PinCfg);  // SCL1 / D21 SCL
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					  #if ((USEDI2CDEV_M == 2))
 | 
				
			||||||
 | 
					    PinCfg.Funcnum = 2;
 | 
				
			||||||
 | 
					    PinCfg.Pinnum = 10;
 | 
				
			||||||
 | 
					    PinCfg.Portnum = 0;
 | 
				
			||||||
 | 
					    PINSEL_ConfigPin(&PinCfg); // SDA2 / D38  X_ENABLE_PIN
 | 
				
			||||||
 | 
					    PinCfg.Pinnum = 11;
 | 
				
			||||||
 | 
					    PINSEL_ConfigPin(&PinCfg); // SCL2 / D55  X_DIR_PIN
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					  // Initialize I2C peripheral
 | 
				
			||||||
 | 
					  I2C_Init(I2CDEV_M, 400000);  // hardwired to 400KHz bit rate, 100KHz is the other option
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Enable Master I2C operation */
 | 
				
			||||||
 | 
					  I2C_Cmd(I2CDEV_M, I2C_MASTER_MODE, ENABLE);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t digipot_mcp4451_send_byte(uint8_t data) {
 | 
				
			||||||
 | 
					  LPC_I2C1->I2DAT = data & I2C_I2DAT_BITMASK; // transmit data
 | 
				
			||||||
 | 
					  LPC_I2C1->I2CONSET = I2C_I2CONSET_AA;
 | 
				
			||||||
 | 
					  LPC_I2C1->I2CONCLR = I2C_I2CONCLR_SIC;
 | 
				
			||||||
 | 
					  while ((I2C_status != I2C_I2STAT_M_TX_DAT_ACK) && (I2C_status != I2C_I2STAT_M_TX_DAT_NACK));  // wait for xmit to finish
 | 
				
			||||||
 | 
					  return 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // TARGET_LPC1768
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,8 +79,8 @@ int main(void) {
 | 
				
			|||||||
  USB_Init();                               // USB Initialization
 | 
					  USB_Init();                               // USB Initialization
 | 
				
			||||||
  USB_Connect(TRUE);                        // USB Connect
 | 
					  USB_Connect(TRUE);                        // USB Connect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  volatile uint32_t usb_timeout = millis() + 2000;
 | 
					  const uint32_t usb_timeout = millis() + 2000;
 | 
				
			||||||
  while (!USB_Configuration && millis() < usb_timeout) {
 | 
					  while (!USB_Configuration && PENDING(millis(), usb_timeout)) {
 | 
				
			||||||
    delay(50);
 | 
					    delay(50);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #if PIN_EXISTS(LED)
 | 
					    #if PIN_EXISTS(LED)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,10 +22,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Support routines for LPC1768
 | 
					 * Support routines for LPC1768
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * translation of routines & variables used by pinsDebug.h
 | 
					 * Translation of routines & variables used by pinsDebug.h
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define pwm_details(pin) pin = pin    // do nothing  // print PWM details
 | 
					#define pwm_details(pin) pin = pin    // do nothing  // print PWM details
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,23 +21,23 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  servo.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
					 * servo.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
				
			||||||
  Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
					 * Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Based on "servo.h - Interrupt driven Servo library for Arduino using 16 bit timers -
 | 
					 * Based on "servo.h - Interrupt driven Servo library for Arduino using 16 bit timers -
 | 
				
			||||||
@@ -47,7 +47,6 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef SERVO_PRIVATE_H
 | 
					#ifndef SERVO_PRIVATE_H
 | 
				
			||||||
#define SERVO_PRIVATE_H
 | 
					#define SERVO_PRIVATE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,15 +59,15 @@
 | 
				
			|||||||
// --------------------------------------------------------------------------
 | 
					// --------------------------------------------------------------------------
 | 
				
			||||||
/* VGPV
 | 
					/* VGPV
 | 
				
			||||||
const tTimerConfig TimerConfig [NUM_HARDWARE_TIMERS] = {
 | 
					const tTimerConfig TimerConfig [NUM_HARDWARE_TIMERS] = {
 | 
				
			||||||
{ TC0, 0, TC0_IRQn, 0},  // 0 - [servo timer5]
 | 
					  { TC0, 0, TC0_IRQn, 0},  // 0 - [servo timer5]
 | 
				
			||||||
{ TC0, 1, TC1_IRQn, 0},  // 1
 | 
					  { TC0, 1, TC1_IRQn, 0},  // 1
 | 
				
			||||||
{ TC0, 2, TC2_IRQn, 0},  // 2
 | 
					  { TC0, 2, TC2_IRQn, 0},  // 2
 | 
				
			||||||
{ TC1, 0, TC3_IRQn, 2},  // 3 - stepper
 | 
					  { TC1, 0, TC3_IRQn, 2},  // 3 - stepper
 | 
				
			||||||
{ TC1, 1, TC4_IRQn, 15}, // 4 - temperature
 | 
					  { TC1, 1, TC4_IRQn, 15}, // 4 - temperature
 | 
				
			||||||
{ TC1, 2, TC5_IRQn, 0},  // 5 - [servo timer3]
 | 
					  { TC1, 2, TC5_IRQn, 0},  // 5 - [servo timer3]
 | 
				
			||||||
{ TC2, 0, TC6_IRQn, 0},  // 6
 | 
					  { TC2, 0, TC6_IRQn, 0},  // 6
 | 
				
			||||||
{ TC2, 1, TC7_IRQn, 0},  // 7
 | 
					  { TC2, 1, TC7_IRQn, 0},  // 7
 | 
				
			||||||
{ TC2, 2, TC8_IRQn, 0},  // 8
 | 
					  { TC2, 2, TC8_IRQn, 0},  // 8
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
// --------------------------------------------------------------------------
 | 
					// --------------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,21 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
* Marlin 3D Printer Firmware
 | 
					 * Marlin 3D Printer Firmware
 | 
				
			||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
					 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* This program is free software: you can redistribute it and/or modify
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
* it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
* the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
* (at your option) any later version.
 | 
					 * (at your option) any later version.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* This program is distributed in the hope that it will be useful,
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
* GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * HAL for stm32duino.com based on Libmaple and compatible (STM32F1)
 | 
					 * HAL for stm32duino.com based on Libmaple and compatible (STM32F1)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,24 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
* Marlin 3D Printer Firmware
 | 
					 * Marlin 3D Printer Firmware
 | 
				
			||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
					 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* Based on Sprinter and grbl.
 | 
					 * Based on Sprinter and grbl.
 | 
				
			||||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
					 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* This program is free software: you can redistribute it and/or modify
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
* it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
* the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
* (at your option) any later version.
 | 
					 * (at your option) any later version.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* This program is distributed in the hope that it will be useful,
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
* GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * HAL for stm32duino.com based on Libmaple and compatible (STM32F1)
 | 
					 * HAL for stm32duino.com based on Libmaple and compatible (STM32F1)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,24 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
* Marlin 3D Printer Firmware
 | 
					 * Marlin 3D Printer Firmware
 | 
				
			||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
					 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* Based on Sprinter and grbl.
 | 
					 * Based on Sprinter and grbl.
 | 
				
			||||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
					 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* This program is free software: you can redistribute it and/or modify
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
* it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
* the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
* (at your option) any later version.
 | 
					 * (at your option) any later version.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* This program is distributed in the hope that it will be useful,
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
* GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * HAL for stm32duino.com based on Libmaple and compatible (STM32F1)
 | 
					 * HAL for stm32duino.com based on Libmaple and compatible (STM32F1)
 | 
				
			||||||
@@ -26,12 +26,12 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#ifndef WATCHDOG_STM32F1_H
 | 
					#ifndef WATCHDOG_STM32F1_H
 | 
				
			||||||
#define WATCHDOG_STM32F1_H
 | 
					#define WATCHDOG_STM32F1_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <libmaple/iwdg.h>
 | 
					#include <libmaple/iwdg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../src/inc/MarlinConfig.h"
 | 
					#include "../../../src/inc/MarlinConfig.h"
 | 
				
			||||||
#define STM32F1_WD_RELOAD 625
 | 
					#define STM32F1_WD_RELOAD 625
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
// Arduino STM32F1 core now has watchdog support
 | 
					// Arduino STM32F1 core now has watchdog support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Initialize watchdog with a 4 second countdown time
 | 
					// Initialize watchdog with a 4 second countdown time
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * Fast I/O Routines for Teensy 3.5 and Teensy 3.6
 | 
					 * Fast I/O Routines for Teensy 3.5 and Teensy 3.6
 | 
				
			||||||
 * Use direct port manipulation to save scads of processor time.
 | 
					 * Use direct port manipulation to save scads of processor time.
 | 
				
			||||||
 * Contributed by Triffid_Hunter. Modified by Kliment and the Marlin team.
 | 
					 * Contributed by Triffid_Hunter and modified by Kliment, thinkyhead, Bob-the-Kuhn, et.al.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef _FASTIO_TEENSY_H
 | 
					#ifndef _FASTIO_TEENSY_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,49 +21,49 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  servo.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
					 * servo.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
				
			||||||
  Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
					 * Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  A servo is activated by creating an instance of the Servo class passing the desired pin to the attach() method.
 | 
					 * A servo is activated by creating an instance of the Servo class passing the desired pin to the attach() method.
 | 
				
			||||||
  The servos are pulsed in the background using the value most recently written using the write() method
 | 
					 * The servos are pulsed in the background using the value most recently written using the write() method
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Note that analogWrite of PWM on pins associated with the timer are disabled when the first servo is attached.
 | 
					 * Note that analogWrite of PWM on pins associated with the timer are disabled when the first servo is attached.
 | 
				
			||||||
  Timers are seized as needed in groups of 12 servos - 24 servos use two timers, 48 servos will use four.
 | 
					 * Timers are seized as needed in groups of 12 servos - 24 servos use two timers, 48 servos will use four.
 | 
				
			||||||
  The sequence used to seize timers is defined in timers.h
 | 
					 * The sequence used to seize timers is defined in timers.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  The methods are:
 | 
					 * The methods are:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
   Servo - Class for manipulating servo motors connected to Arduino pins.
 | 
					 *  Servo - Class for manipulating servo motors connected to Arduino pins.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
   attach(pin )  - Attaches a servo motor to an i/o pin.
 | 
					 *  attach(pin )  - Attaches a servo motor to an i/o pin.
 | 
				
			||||||
   attach(pin, min, max  ) - Attaches to a pin setting min and max values in microseconds
 | 
					 *  attach(pin, min, max  ) - Attaches to a pin setting min and max values in microseconds
 | 
				
			||||||
   default min is 544, max is 2400
 | 
					 *  default min is 544, max is 2400
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
   write()     - Sets the servo angle in degrees.  (invalid angle that is valid as pulse in microseconds is treated as microseconds)
 | 
					 *  write()     - Sets the servo angle in degrees.  (invalid angle that is valid as pulse in microseconds is treated as microseconds)
 | 
				
			||||||
   writeMicroseconds() - Sets the servo pulse width in microseconds
 | 
					 *  writeMicroseconds() - Sets the servo pulse width in microseconds
 | 
				
			||||||
   read()      - Gets the last written servo pulse width as an angle between 0 and 180.
 | 
					 *  read()      - Gets the last written servo pulse width as an angle between 0 and 180.
 | 
				
			||||||
   readMicroseconds() - Gets the last written servo pulse width in microseconds. (was read_us() in first release)
 | 
					 *  readMicroseconds() - Gets the last written servo pulse width in microseconds. (was read_us() in first release)
 | 
				
			||||||
   attached()  - Returns true if there is a servo attached.
 | 
					 *  attached()  - Returns true if there is a servo attached.
 | 
				
			||||||
   detach()    - Stops an attached servos from pulsing its i/o pin.
 | 
					 *  detach()    - Stops an attached servos from pulsing its i/o pin.
 | 
				
			||||||
   move(angle) - Sequence of attach(0), write(angle),
 | 
					 *  move(angle) - Sequence of attach(0), write(angle),
 | 
				
			||||||
                   With DEACTIVATE_SERVOS_AFTER_MOVE wait SERVO_DELAY and detach.
 | 
					 *                   With DEACTIVATE_SERVOS_AFTER_MOVE wait SERVO_DELAY and detach.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef SERVO_H
 | 
					#ifndef SERVO_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,23 +21,23 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  servo_private.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
					 * servo_private.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
 | 
				
			||||||
  Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
					 * Copyright (c) 2009 Michael Margolis.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef SERVO_PRIVATE_H
 | 
					#ifndef SERVO_PRIVATE_H
 | 
				
			||||||
#define SERVO_PRIVATE_H
 | 
					#define SERVO_PRIVATE_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -263,14 +263,14 @@ void Max7219_init() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* These are sample debug features to demonstrate the usage of the 8x8 LED Matrix for debug purposes.
 | 
					 * These are sample debug features to demonstrate the usage of the 8x8 LED Matrix for debug purposes.
 | 
				
			||||||
* There is very little CPU burden added to the system by displaying information within the idle()
 | 
					 * There is very little CPU burden added to the system by displaying information within the idle()
 | 
				
			||||||
* task.
 | 
					 * task.
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* But with that said, if your debugging can be facilitated by making calls into the library from
 | 
					 * But with that said, if your debugging can be facilitated by making calls into the library from
 | 
				
			||||||
* other places in the code, feel free to do it.  The CPU burden for a few calls to toggle an LED
 | 
					 * other places in the code, feel free to do it.  The CPU burden for a few calls to toggle an LED
 | 
				
			||||||
* or clear a row is not very significant.
 | 
					 * or clear a row is not very significant.
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
void Max7219_idle_tasks() {
 | 
					void Max7219_idle_tasks() {
 | 
				
			||||||
#if MAX7219_DEBUG_STEPPER_HEAD || MAX7219_DEBUG_STEPPER_TAIL || MAX7219_DEBUG_STEPPER_QUEUE
 | 
					#if MAX7219_DEBUG_STEPPER_HEAD || MAX7219_DEBUG_STEPPER_TAIL || MAX7219_DEBUG_STEPPER_QUEUE
 | 
				
			||||||
  CRITICAL_SECTION_START
 | 
					  CRITICAL_SECTION_START
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -100,17 +100,18 @@ uint8_t mcp4728_setGain_all(uint8_t value) {
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
uint16_t mcp4728_getValue(uint8_t channel) { return mcp4728_values[channel]; }
 | 
					uint16_t mcp4728_getValue(uint8_t channel) { return mcp4728_values[channel]; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Steph: Might be useful in the future
 | 
					 * Steph: Might be useful in the future
 | 
				
			||||||
 * Return Vout
 | 
					 * Return Vout
 | 
				
			||||||
 *
 | 
					 */
 | 
				
			||||||
uint16_t mcp4728_getVout(uint8_t channel) {
 | 
					uint16_t mcp4728_getVout(uint8_t channel) {
 | 
				
			||||||
  uint32_t vref = 2048,
 | 
					  uint32_t vref = 2048,
 | 
				
			||||||
           vOut = (vref * mcp4728_values[channel] * (_DAC_STEPPER_GAIN + 1)) / 4096;
 | 
					           vOut = (vref * mcp4728_values[channel] * (_DAC_STEPPER_GAIN + 1)) / 4096;
 | 
				
			||||||
  if (vOut > defaultVDD) vOut = defaultVDD;
 | 
					  if (vOut > defaultVDD) vOut = defaultVDD;
 | 
				
			||||||
  return vOut;
 | 
					  return vOut;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
*/
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Returns DAC values as a 0-100 percentage of drive strength
 | 
					 * Returns DAC values as a 0-100 percentage of drive strength
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,25 +21,25 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  stepper_dac.cpp - To set stepper current via DAC
 | 
					 * stepper_dac.cpp - To set stepper current via DAC
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Part of Marlin
 | 
					 * Part of Marlin
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Copyright (c) 2016 MarlinFirmware
 | 
					 * Copyright (c) 2016 MarlinFirmware
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Marlin is free software: you can redistribute it and/or modify
 | 
					 * Marlin is free software: you can redistribute it and/or modify
 | 
				
			||||||
  it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
  the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
  (at your option) any later version.
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Marlin is distributed in the hope that it will be useful,
 | 
					 * Marlin is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
  GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
  along with Marlin.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with Marlin.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../inc/MarlinConfig.h"
 | 
					#include "../../inc/MarlinConfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,25 +21,25 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  stepper_dac.h   - To set stepper current via DAC
 | 
					 * stepper_dac.h   - To set stepper current via DAC
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Part of Marlin
 | 
					 * Part of Marlin
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Copyright (c) 2016 MarlinFirmware
 | 
					 * Copyright (c) 2016 MarlinFirmware
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Marlin is free software: you can redistribute it and/or modify
 | 
					 * Marlin is free software: you can redistribute it and/or modify
 | 
				
			||||||
  it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
  the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
  (at your option) any later version.
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Marlin is distributed in the hope that it will be useful,
 | 
					 * Marlin is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
  GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
  along with Marlin.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with Marlin.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef STEPPER_DAC_H
 | 
					#ifndef STEPPER_DAC_H
 | 
				
			||||||
#define STEPPER_DAC_H
 | 
					#define STEPPER_DAC_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,23 +28,22 @@
 | 
				
			|||||||
#include "../../../feature/leds/leds.h"
 | 
					#include "../../../feature/leds/leds.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* M150: Set Status LED Color - Use R-U-B-W for R-G-B-W
 | 
					 * M150: Set Status LED Color - Use R-U-B-W for R-G-B-W
 | 
				
			||||||
*       and Brightness       - Use P (for NEOPIXEL only)
 | 
					 *       and Brightness       - Use P (for NEOPIXEL only)
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* Always sets all 3 or 4 components. If a component is left out, set to 0.
 | 
					 * Always sets all 3 or 4 components. If a component is left out, set to 0.
 | 
				
			||||||
*                                    If brightness is left out, no value changed
 | 
					 *                                    If brightness is left out, no value changed
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
* Examples:
 | 
					 * Examples:
 | 
				
			||||||
*
 | 
					 *
 | 
				
			||||||
*   M150 R255       ; Turn LED red
 | 
					 *   M150 R255       ; Turn LED red
 | 
				
			||||||
*   M150 R255 U127  ; Turn LED orange (PWM only)
 | 
					 *   M150 R255 U127  ; Turn LED orange (PWM only)
 | 
				
			||||||
*   M150            ; Turn LED off
 | 
					 *   M150            ; Turn LED off
 | 
				
			||||||
*   M150 R U B      ; Turn LED white
 | 
					 *   M150 R U B      ; Turn LED white
 | 
				
			||||||
*   M150 W          ; Turn LED white using a white LED
 | 
					 *   M150 W          ; Turn LED white using a white LED
 | 
				
			||||||
*   M150 P127       ; Set LED 50% brightness
 | 
					 *   M150 P127       ; Set LED 50% brightness
 | 
				
			||||||
*   M150 P          ; Set LED full brightness
 | 
					 *   M150 P          ; Set LED full brightness
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					 | 
				
			||||||
void GcodeSuite::M150() {
 | 
					void GcodeSuite::M150() {
 | 
				
			||||||
  set_led_color(
 | 
					  set_led_color(
 | 
				
			||||||
    parser.seen('R') ? (parser.has_value() ? parser.value_byte() : 255) : 0,
 | 
					    parser.seen('R') ? (parser.has_value() ? parser.value_byte() : 255) : 0,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,23 +21,23 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  vector_3.cpp - Vector library for bed leveling
 | 
					 * vector_3.cpp - Vector library for bed leveling
 | 
				
			||||||
  Copyright (c) 2012 Lars Brubaker.  All right reserved.
 | 
					 * Copyright (c) 2012 Lars Brubaker.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../inc/MarlinConfig.h"
 | 
					#include "../inc/MarlinConfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,23 +21,23 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  vector_3.cpp - Vector library for bed leveling
 | 
					 * vector_3.cpp - Vector library for bed leveling
 | 
				
			||||||
  Copyright (c) 2012 Lars Brubaker.  All right reserved.
 | 
					 * Copyright (c) 2012 Lars Brubaker.  All right reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
  modify it under the terms of the GNU Lesser General Public
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
  License as published by the Free Software Foundation; either
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
  version 2.1 of the License, or (at your option) any later version.
 | 
					 * version 2.1 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  This library is distributed in the hope that it will be useful,
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
  Lesser General Public License for more details.
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
  License along with this library; if not, write to the Free Software
 | 
					 * License along with this library; if not, write to the Free Software
 | 
				
			||||||
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
					 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef VECTOR_3_H
 | 
					#ifndef VECTOR_3_H
 | 
				
			||||||
#define VECTOR_3_H
 | 
					#define VECTOR_3_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,8 +44,7 @@
 | 
				
			|||||||
#define MAX_STEP 0.1
 | 
					#define MAX_STEP 0.1
 | 
				
			||||||
#define SIGMA 0.1
 | 
					#define SIGMA 0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Compute the linear interpolation between to real numbers.
 | 
					// Compute the linear interpolation between two real numbers.
 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
inline static float interp(float a, float b, float t) { return (1.0 - t) * a + t * b; }
 | 
					inline static float interp(float a, float b, float t) { return (1.0 - t) * a + t * b; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,25 +21,25 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  stepper_indirection.h - stepper motor driver indirection macros
 | 
					 * stepper_indirection.h - stepper motor driver indirection macros
 | 
				
			||||||
  to allow some stepper functions to be done via SPI/I2c instead of direct pin manipulation
 | 
					 * to allow some stepper functions to be done via SPI/I2c instead of direct pin manipulation
 | 
				
			||||||
  Part of Marlin
 | 
					 * Part of Marlin
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Copyright (c) 2015 Dominik Wenger
 | 
					 * Copyright (c) 2015 Dominik Wenger
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Marlin is free software: you can redistribute it and/or modify
 | 
					 * Marlin is free software: you can redistribute it and/or modify
 | 
				
			||||||
  it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
  the Free Software Foundation, either version 3 of the License, or
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
  (at your option) any later version.
 | 
					 * at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  Marlin is distributed in the hope that it will be useful,
 | 
					 * Marlin is distributed in the hope that it will be useful,
 | 
				
			||||||
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
  GNU General Public License for more details.
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
  You should have received a copy of the GNU General Public License
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
  along with Marlin.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 * along with Marlin.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef STEPPER_INDIRECTION_H
 | 
					#ifndef STEPPER_INDIRECTION_H
 | 
				
			||||||
#define STEPPER_INDIRECTION_H
 | 
					#define STEPPER_INDIRECTION_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,7 +86,7 @@
 | 
				
			|||||||
 *   Anet Users / Skynet SW on Facebook - https://www.facebook.com/skynet3ddevelopment/
 | 
					 *   Anet Users / Skynet SW on Facebook - https://www.facebook.com/skynet3ddevelopment/
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 *   Many thanks to Hans Raaf (@oderwat) for developing the Anet-specific software and supporting the Anet community.
 | 
					 *   Many thanks to Hans Raaf (@oderwat) for developing the Anet-specific software and supporting the Anet community.
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __AVR_ATmega1284P__
 | 
					#ifndef __AVR_ATmega1284P__
 | 
				
			||||||
  #error "Oops!  Make sure you have 'Anet V1.0', 'Anet V1.0 (Optiboot)' or 'Sanguino' selected from the 'Tools -> Boards' menu."
 | 
					  #error "Oops!  Make sure you have 'Anet V1.0', 'Anet V1.0 (Optiboot)' or 'Sanguino' selected from the 'Tools -> Boards' menu."
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user