force inline
This commit is contained in:
		@@ -32,6 +32,7 @@
 | 
			
		||||
#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H)
 | 
			
		||||
 | 
			
		||||
#include "MarlinSerial.h"
 | 
			
		||||
#include "Marlin.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -41,7 +42,7 @@
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
inline void store_char(unsigned char c)
 | 
			
		||||
FORCE_INLINE void store_char(unsigned char c)
 | 
			
		||||
{
 | 
			
		||||
  int i = (unsigned int)(rx_buffer.head + 1) % RX_BUFFER_SIZE;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,8 @@
 | 
			
		||||
 | 
			
		||||
#include <inttypes.h>
 | 
			
		||||
#include <Stream.h>
 | 
			
		||||
#define  FORCE_INLINE __attribute__((always_inline)) inline
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Define constants and variables for buffering incoming serial data.  We're
 | 
			
		||||
@@ -55,12 +57,12 @@ class MarlinSerial //: public Stream
 | 
			
		||||
    int read(void);
 | 
			
		||||
    void flush(void);
 | 
			
		||||
    
 | 
			
		||||
    inline int available(void)
 | 
			
		||||
    FORCE_INLINE int available(void)
 | 
			
		||||
    {
 | 
			
		||||
      return (unsigned int)(RX_BUFFER_SIZE + rx_buffer.head - rx_buffer.tail) % RX_BUFFER_SIZE;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    inline void write(uint8_t c)
 | 
			
		||||
    FORCE_INLINE void write(uint8_t c)
 | 
			
		||||
    {
 | 
			
		||||
      while (!((UCSR0A) & (1 << UDRE0)))
 | 
			
		||||
        ;
 | 
			
		||||
@@ -69,7 +71,7 @@ class MarlinSerial //: public Stream
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    inline void checkRx(void)
 | 
			
		||||
    FORCE_INLINE void checkRx(void)
 | 
			
		||||
    {
 | 
			
		||||
      if((UCSR0A & (1<<RXC0)) != 0) {
 | 
			
		||||
        unsigned char c  =  UDR0;
 | 
			
		||||
@@ -94,27 +96,27 @@ class MarlinSerial //: public Stream
 | 
			
		||||
    
 | 
			
		||||
  public:
 | 
			
		||||
    
 | 
			
		||||
    inline void write(const char *str)
 | 
			
		||||
    FORCE_INLINE void write(const char *str)
 | 
			
		||||
    {
 | 
			
		||||
      while (*str)
 | 
			
		||||
        write(*str++);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    inline void write(const uint8_t *buffer, size_t size)
 | 
			
		||||
    FORCE_INLINE void write(const uint8_t *buffer, size_t size)
 | 
			
		||||
    {
 | 
			
		||||
      while (size--)
 | 
			
		||||
        write(*buffer++);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    inline void print(const String &s)
 | 
			
		||||
    FORCE_INLINE void print(const String &s)
 | 
			
		||||
    {
 | 
			
		||||
      for (int i = 0; i < s.length(); i++) {
 | 
			
		||||
        write(s[i]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    inline void print(const char *str)
 | 
			
		||||
    FORCE_INLINE void print(const char *str)
 | 
			
		||||
    {
 | 
			
		||||
      write(str);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,7 @@ extern float Kp,Ki,Kd,Kc;
 | 
			
		||||
FORCE_INLINE float degHotend0(){  return analog2temp(current_raw[TEMPSENSOR_HOTEND_0]);};
 | 
			
		||||
FORCE_INLINE float degHotend1(){  return analog2temp(current_raw[TEMPSENSOR_HOTEND_1]);};
 | 
			
		||||
FORCE_INLINE float degBed() {  return analog2tempBed(current_raw[TEMPSENSOR_BED]);};
 | 
			
		||||
inline float degHotend(uint8_t extruder){  
 | 
			
		||||
FORCE_INLINE float degHotend(uint8_t extruder){  
 | 
			
		||||
  if(extruder == 0) return analog2temp(current_raw[TEMPSENSOR_HOTEND_0]);
 | 
			
		||||
  if(extruder == 1) return analog2temp(current_raw[TEMPSENSOR_HOTEND_1]);
 | 
			
		||||
};
 | 
			
		||||
@@ -74,7 +74,7 @@ inline float degTargetHotend(uint8_t extruder){
 | 
			
		||||
  if(extruder == 1) return analog2temp(target_raw[TEMPSENSOR_HOTEND_1]);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
inline float degTargetBed() {   return analog2tempBed(target_raw[TEMPSENSOR_BED]);};
 | 
			
		||||
FORCE_INLINE float degTargetBed() {   return analog2tempBed(target_raw[TEMPSENSOR_BED]);};
 | 
			
		||||
 | 
			
		||||
FORCE_INLINE void setTargetHotend0(const float &celsius) 
 | 
			
		||||
{  
 | 
			
		||||
@@ -84,27 +84,27 @@ FORCE_INLINE void setTargetHotend0(const float &celsius)
 | 
			
		||||
  #endif //PIDTEMP
 | 
			
		||||
};
 | 
			
		||||
FORCE_INLINE void setTargetHotend1(const float &celsius) {  target_raw[TEMPSENSOR_HOTEND_1]=temp2analog(celsius);};
 | 
			
		||||
inline float setTargetHotend(const float &celcius, uint8_t extruder){  
 | 
			
		||||
FORCE_INLINE float setTargetHotend(const float &celcius, uint8_t extruder){  
 | 
			
		||||
  if(extruder == 0) setTargetHotend0(celcius);
 | 
			
		||||
  if(extruder == 1) setTargetHotend1(celcius);
 | 
			
		||||
};
 | 
			
		||||
inline void setTargetBed(const float &celsius)     {  target_raw[TEMPSENSOR_BED     ]=temp2analogBed(celsius);};
 | 
			
		||||
FORCE_INLINE void setTargetBed(const float &celsius)     {  target_raw[TEMPSENSOR_BED     ]=temp2analogBed(celsius);};
 | 
			
		||||
 | 
			
		||||
FORCE_INLINE bool isHeatingHotend0() {return target_raw[TEMPSENSOR_HOTEND_0] > current_raw[TEMPSENSOR_HOTEND_0];};
 | 
			
		||||
FORCE_INLINE bool isHeatingHotend1() {return target_raw[TEMPSENSOR_HOTEND_1] > current_raw[TEMPSENSOR_HOTEND_1];};
 | 
			
		||||
inline float isHeatingHotend(uint8_t extruder){  
 | 
			
		||||
FORCE_INLINE float isHeatingHotend(uint8_t extruder){  
 | 
			
		||||
  if(extruder == 0) return target_raw[TEMPSENSOR_HOTEND_0] > current_raw[TEMPSENSOR_HOTEND_0];
 | 
			
		||||
  if(extruder == 1) return target_raw[TEMPSENSOR_HOTEND_1] > current_raw[TEMPSENSOR_HOTEND_1];
 | 
			
		||||
};
 | 
			
		||||
inline bool isHeatingBed() {return target_raw[TEMPSENSOR_BED] > current_raw[TEMPSENSOR_BED];};
 | 
			
		||||
FORCE_INLINE bool isHeatingBed() {return target_raw[TEMPSENSOR_BED] > current_raw[TEMPSENSOR_BED];};
 | 
			
		||||
 | 
			
		||||
FORCE_INLINE bool isCoolingHotend0() {return target_raw[TEMPSENSOR_HOTEND_0] < current_raw[TEMPSENSOR_HOTEND_0];};
 | 
			
		||||
FORCE_INLINE bool isCoolingHotend1() {return target_raw[TEMPSENSOR_HOTEND_1] < current_raw[TEMPSENSOR_HOTEND_1];};
 | 
			
		||||
inline float isCoolingHotend(uint8_t extruder){  
 | 
			
		||||
FORCE_INLINE float isCoolingHotend(uint8_t extruder){  
 | 
			
		||||
  if(extruder == 0) return target_raw[TEMPSENSOR_HOTEND_0] < current_raw[TEMPSENSOR_HOTEND_0];
 | 
			
		||||
  if(extruder == 1) return target_raw[TEMPSENSOR_HOTEND_1] < current_raw[TEMPSENSOR_HOTEND_1];
 | 
			
		||||
};
 | 
			
		||||
inline bool isCoolingBed() {return target_raw[TEMPSENSOR_BED] < current_raw[TEMPSENSOR_BED];};
 | 
			
		||||
FORCE_INLINE bool isCoolingBed() {return target_raw[TEMPSENSOR_BED] < current_raw[TEMPSENSOR_BED];};
 | 
			
		||||
 | 
			
		||||
void disable_heater();
 | 
			
		||||
void setWatch();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user