Browse Source

Use _BV macros, patch up others

pull/1/head
Scott Lahteine 9 years ago
parent
commit
ff13070b59
  1. 12
      Marlin/Marlin.h
  2. 2
      Marlin/MarlinSerial.cpp
  3. 20
      Marlin/Marlin_main.cpp
  4. 4
      Marlin/Sd2Card.cpp
  5. 8
      Marlin/Sd2PinMap.h
  6. 2
      Marlin/SdVolume.cpp
  7. 6
      Marlin/dogm_lcd_implementation.h
  8. 32
      Marlin/planner.cpp
  9. 18
      Marlin/servo.cpp
  10. 34
      Marlin/stepper.cpp
  11. 35
      Marlin/temperature.cpp
  12. 4
      Marlin/ultralcd.cpp
  13. 38
      Marlin/ultralcd.h
  14. 34
      Marlin/ultralcd_implementation_hitachi_HD44780.h

12
Marlin/Marlin.h

@ -217,12 +217,12 @@ void Stop();
* Debug flags - not yet widely applied * Debug flags - not yet widely applied
*/ */
enum DebugFlags { enum DebugFlags {
DEBUG_ECHO = BIT(0), DEBUG_ECHO = _BV(0),
DEBUG_INFO = BIT(1), DEBUG_INFO = _BV(1),
DEBUG_ERRORS = BIT(2), DEBUG_ERRORS = _BV(2),
DEBUG_DRYRUN = BIT(3), DEBUG_DRYRUN = _BV(3),
DEBUG_COMMUNICATION = BIT(4), DEBUG_COMMUNICATION = _BV(4),
DEBUG_LEVELING = BIT(5) DEBUG_LEVELING = _BV(5)
}; };
extern uint8_t marlin_debug_flags; extern uint8_t marlin_debug_flags;

2
Marlin/MarlinSerial.cpp

@ -79,7 +79,7 @@ void MarlinSerial::begin(long baud) {
#endif #endif
if (useU2X) { if (useU2X) {
M_UCSRxA = BIT(M_U2Xx); M_UCSRxA = _BV(M_U2Xx);
baud_setting = (F_CPU / 4 / baud - 1) / 2; baud_setting = (F_CPU / 4 / baud - 1) / 2;
} }
else { else {

20
Marlin/Marlin_main.cpp

@ -1608,8 +1608,8 @@ static void setup_for_endstop_move() {
enum ProbeAction { enum ProbeAction {
ProbeStay = 0, ProbeStay = 0,
ProbeDeploy = BIT(0), ProbeDeploy = _BV(0),
ProbeStow = BIT(1), ProbeStow = _BV(1),
ProbeDeployAndStow = (ProbeDeploy | ProbeStow) ProbeDeployAndStow = (ProbeDeploy | ProbeStow)
}; };
@ -6461,33 +6461,33 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_
return; return;
} }
float nx, ny, ne, normalized_dist; float nx, ny, ne, normalized_dist;
if (ix > pix && (x_splits) & BIT(ix)) { if (ix > pix && TEST(x_splits, ix)) {
nx = mbl.get_x(ix); nx = mbl.get_x(ix);
normalized_dist = (nx - current_position[X_AXIS]) / (x - current_position[X_AXIS]); normalized_dist = (nx - current_position[X_AXIS]) / (x - current_position[X_AXIS]);
ny = current_position[Y_AXIS] + (y - current_position[Y_AXIS]) * normalized_dist; ny = current_position[Y_AXIS] + (y - current_position[Y_AXIS]) * normalized_dist;
ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist; ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist;
x_splits ^= BIT(ix); CBI(x_splits, ix);
} }
else if (ix < pix && (x_splits) & BIT(pix)) { else if (ix < pix && TEST(x_splits, pix)) {
nx = mbl.get_x(pix); nx = mbl.get_x(pix);
normalized_dist = (nx - current_position[X_AXIS]) / (x - current_position[X_AXIS]); normalized_dist = (nx - current_position[X_AXIS]) / (x - current_position[X_AXIS]);
ny = current_position[Y_AXIS] + (y - current_position[Y_AXIS]) * normalized_dist; ny = current_position[Y_AXIS] + (y - current_position[Y_AXIS]) * normalized_dist;
ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist; ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist;
x_splits ^= BIT(pix); CBI(x_splits, pix);
} }
else if (iy > piy && (y_splits) & BIT(iy)) { else if (iy > piy && TEST(y_splits, iy)) {
ny = mbl.get_y(iy); ny = mbl.get_y(iy);
normalized_dist = (ny - current_position[Y_AXIS]) / (y - current_position[Y_AXIS]); normalized_dist = (ny - current_position[Y_AXIS]) / (y - current_position[Y_AXIS]);
nx = current_position[X_AXIS] + (x - current_position[X_AXIS]) * normalized_dist; nx = current_position[X_AXIS] + (x - current_position[X_AXIS]) * normalized_dist;
ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist; ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist;
y_splits ^= BIT(iy); CBI(y_splits, iy);
} }
else if (iy < piy && (y_splits) & BIT(piy)) { else if (iy < piy && TEST(y_splits, piy)) {
ny = mbl.get_y(piy); ny = mbl.get_y(piy);
normalized_dist = (ny - current_position[Y_AXIS]) / (y - current_position[Y_AXIS]); normalized_dist = (ny - current_position[Y_AXIS]) / (y - current_position[Y_AXIS]);
nx = current_position[X_AXIS] + (x - current_position[X_AXIS]) * normalized_dist; nx = current_position[X_AXIS] + (x - current_position[X_AXIS]) * normalized_dist;
ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist; ne = current_position[E_AXIS] + (e - current_position[E_AXIS]) * normalized_dist;
y_splits ^= BIT(piy); CBI(y_splits, piy);
} }
else { else {
// Already split on a border // Already split on a border

4
Marlin/Sd2Card.cpp

@ -35,8 +35,8 @@
*/ */
static void spiInit(uint8_t spiRate) { static void spiInit(uint8_t spiRate) {
// See avr processor documentation // See avr processor documentation
SPCR = BIT(SPE) | BIT(MSTR) | (spiRate >> 1); SPCR = _BV(SPE) | _BV(MSTR) | (spiRate >> 1);
SPSR = spiRate & 1 || spiRate == 6 ? 0 : BIT(SPI2X); SPSR = spiRate & 1 || spiRate == 6 ? 0 : _BV(SPI2X);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
/** SPI receive a byte */ /** SPI receive a byte */

8
Marlin/Sd2PinMap.h

@ -405,10 +405,10 @@ static inline __attribute__((always_inline))
void setPinMode(uint8_t pin, uint8_t mode) { void setPinMode(uint8_t pin, uint8_t mode) {
if (__builtin_constant_p(pin) && pin < digitalPinCount) { if (__builtin_constant_p(pin) && pin < digitalPinCount) {
if (mode) { if (mode) {
*digitalPinMap[pin].ddr |= BIT(digitalPinMap[pin].bit); SBI(*digitalPinMap[pin].ddr, digitalPinMap[pin].bit);
} }
else { else {
*digitalPinMap[pin].ddr &= ~BIT(digitalPinMap[pin].bit); CBI(*digitalPinMap[pin].ddr, digitalPinMap[pin].bit);
} }
} }
else { else {
@ -428,10 +428,10 @@ static inline __attribute__((always_inline))
void fastDigitalWrite(uint8_t pin, uint8_t value) { void fastDigitalWrite(uint8_t pin, uint8_t value) {
if (__builtin_constant_p(pin) && pin < digitalPinCount) { if (__builtin_constant_p(pin) && pin < digitalPinCount) {
if (value) { if (value) {
*digitalPinMap[pin].port |= BIT(digitalPinMap[pin].bit); SBI(*digitalPinMap[pin].port, digitalPinMap[pin].bit);
} }
else { else {
*digitalPinMap[pin].port &= ~BIT(digitalPinMap[pin].bit); CBI(*digitalPinMap[pin].port, digitalPinMap[pin].bit);
} }
} }
else { else {

2
Marlin/SdVolume.cpp

@ -364,7 +364,7 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
blocksPerCluster_ = fbs->sectorsPerCluster; blocksPerCluster_ = fbs->sectorsPerCluster;
// determine shift that is same as multiply by blocksPerCluster_ // determine shift that is same as multiply by blocksPerCluster_
clusterSizeShift_ = 0; clusterSizeShift_ = 0;
while (blocksPerCluster_ != BIT(clusterSizeShift_)) { while (blocksPerCluster_ != _BV(clusterSizeShift_)) {
// error if not power of 2 // error if not power of 2
if (clusterSizeShift_++ > 7) goto fail; if (clusterSizeShift_++ > 7) goto fail;
} }

6
Marlin/dogm_lcd_implementation.h

@ -22,9 +22,9 @@
#define BLEN_A 0 #define BLEN_A 0
#define BLEN_B 1 #define BLEN_B 1
#define BLEN_C 2 #define BLEN_C 2
#define EN_A BIT(BLEN_A) #define EN_A (_BV(BLEN_A))
#define EN_B BIT(BLEN_B) #define EN_B (_BV(BLEN_B))
#define EN_C BIT(BLEN_C) #define EN_C (_BV(BLEN_C))
#define LCD_CLICKED (buttons&EN_C) #define LCD_CLICKED (buttons&EN_C)
#endif #endif

32
Marlin/planner.cpp

@ -580,23 +580,23 @@ float junction_deviation = 0.1;
// Compute direction bits for this block // Compute direction bits for this block
uint8_t db = 0; uint8_t db = 0;
#if ENABLED(COREXY) #if ENABLED(COREXY)
if (dx < 0) db |= BIT(X_HEAD); // Save the real Extruder (head) direction in X Axis if (dx < 0) SBI(db, X_HEAD); // Save the real Extruder (head) direction in X Axis
if (dy < 0) db |= BIT(Y_HEAD); // ...and Y if (dy < 0) SBI(db, Y_HEAD); // ...and Y
if (dz < 0) db |= BIT(Z_AXIS); if (dz < 0) SBI(db, Z_AXIS);
if (dx + dy < 0) db |= BIT(A_AXIS); // Motor A direction if (dx + dy < 0) SBI(db, A_AXIS); // Motor A direction
if (dx - dy < 0) db |= BIT(B_AXIS); // Motor B direction if (dx - dy < 0) SBI(db, B_AXIS); // Motor B direction
#elif ENABLED(COREXZ) #elif ENABLED(COREXZ)
if (dx < 0) db |= BIT(X_HEAD); // Save the real Extruder (head) direction in X Axis if (dx < 0) SBI(db, X_HEAD); // Save the real Extruder (head) direction in X Axis
if (dy < 0) db |= BIT(Y_AXIS); if (dy < 0) SBI(db, Y_AXIS);
if (dz < 0) db |= BIT(Z_HEAD); // ...and Z if (dz < 0) SBI(db, Z_HEAD); // ...and Z
if (dx + dz < 0) db |= BIT(A_AXIS); // Motor A direction if (dx + dz < 0) SBI(db, A_AXIS); // Motor A direction
if (dx - dz < 0) db |= BIT(C_AXIS); // Motor B direction if (dx - dz < 0) SBI(db, C_AXIS); // Motor B direction
#else #else
if (dx < 0) db |= BIT(X_AXIS); if (dx < 0) SBI(db, X_AXIS);
if (dy < 0) db |= BIT(Y_AXIS); if (dy < 0) SBI(db, Y_AXIS);
if (dz < 0) db |= BIT(Z_AXIS); if (dz < 0) SBI(db, Z_AXIS);
#endif #endif
if (de < 0) db |= BIT(E_AXIS); if (de < 0) SBI(db, E_AXIS);
block->direction_bits = db; block->direction_bits = db;
block->active_extruder = extruder; block->active_extruder = extruder;
@ -824,14 +824,14 @@ float junction_deviation = 0.1;
ys1 = axis_segment_time[Y_AXIS][1], ys1 = axis_segment_time[Y_AXIS][1],
ys2 = axis_segment_time[Y_AXIS][2]; ys2 = axis_segment_time[Y_AXIS][2];
if ((direction_change & BIT(X_AXIS)) != 0) { if (TEST(direction_change, X_AXIS)) {
xs2 = axis_segment_time[X_AXIS][2] = xs1; xs2 = axis_segment_time[X_AXIS][2] = xs1;
xs1 = axis_segment_time[X_AXIS][1] = xs0; xs1 = axis_segment_time[X_AXIS][1] = xs0;
xs0 = 0; xs0 = 0;
} }
xs0 = axis_segment_time[X_AXIS][0] = xs0 + segment_time; xs0 = axis_segment_time[X_AXIS][0] = xs0 + segment_time;
if ((direction_change & BIT(Y_AXIS)) != 0) { if (TEST(direction_change, Y_AXIS)) {
ys2 = axis_segment_time[Y_AXIS][2] = axis_segment_time[Y_AXIS][1]; ys2 = axis_segment_time[Y_AXIS][2] = axis_segment_time[Y_AXIS][1];
ys1 = axis_segment_time[Y_AXIS][1] = axis_segment_time[Y_AXIS][0]; ys1 = axis_segment_time[Y_AXIS][1] = axis_segment_time[Y_AXIS][0];
ys0 = 0; ys0 = 0;

18
Marlin/servo.cpp

@ -139,12 +139,12 @@ static void initISR(timer16_Sequence_t timer) {
TCCR1B = _BV(CS11); // set prescaler of 8 TCCR1B = _BV(CS11); // set prescaler of 8
TCNT1 = 0; // clear the timer count TCNT1 = 0; // clear the timer count
#if defined(__AVR_ATmega8__)|| defined(__AVR_ATmega128__) #if defined(__AVR_ATmega8__)|| defined(__AVR_ATmega128__)
TIFR |= _BV(OCF1A); // clear any pending interrupts; SBI(TIFR, OCF1A); // clear any pending interrupts;
TIMSK |= _BV(OCIE1A); // enable the output compare interrupt SBI(TIMSK, OCIE1A); // enable the output compare interrupt
#else #else
// here if not ATmega8 or ATmega128 // here if not ATmega8 or ATmega128
TIFR1 |= _BV(OCF1A); // clear any pending interrupts; SBI(TIFR1, OCF1A); // clear any pending interrupts;
TIMSK1 |= _BV(OCIE1A); // enable the output compare interrupt SBI(TIMSK1, OCIE1A); // enable the output compare interrupt
#endif #endif
#ifdef WIRING #ifdef WIRING
timerAttach(TIMER1OUTCOMPAREA_INT, Timer1Service); timerAttach(TIMER1OUTCOMPAREA_INT, Timer1Service);
@ -158,8 +158,8 @@ static void initISR(timer16_Sequence_t timer) {
TCCR3B = _BV(CS31); // set prescaler of 8 TCCR3B = _BV(CS31); // set prescaler of 8
TCNT3 = 0; // clear the timer count TCNT3 = 0; // clear the timer count
#ifdef __AVR_ATmega128__ #ifdef __AVR_ATmega128__
TIFR |= _BV(OCF3A); // clear any pending interrupts; SBI(TIFR, OCF3A); // clear any pending interrupts;
ETIMSK |= _BV(OCIE3A); // enable the output compare interrupt SBI(ETIMSK, OCIE3A); // enable the output compare interrupt
#else #else
TIFR3 = _BV(OCF3A); // clear any pending interrupts; TIFR3 = _BV(OCF3A); // clear any pending interrupts;
TIMSK3 = _BV(OCIE3A) ; // enable the output compare interrupt TIMSK3 = _BV(OCIE3A) ; // enable the output compare interrupt
@ -195,21 +195,23 @@ static void finISR(timer16_Sequence_t timer) {
// Disable use of the given timer // Disable use of the given timer
#ifdef WIRING #ifdef WIRING
if (timer == _timer1) { if (timer == _timer1) {
CBI(
#if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
TIMSK1 TIMSK1
#else #else
TIMSK TIMSK
#endif #endif
&= ~_BV(OCIE1A); // disable timer 1 output compare interrupt , OCIE1A); // disable timer 1 output compare interrupt
timerDetach(TIMER1OUTCOMPAREA_INT); timerDetach(TIMER1OUTCOMPAREA_INT);
} }
else if (timer == _timer3) { else if (timer == _timer3) {
CBI(
#if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
TIMSK3 TIMSK3
#else #else
ETIMSK ETIMSK
#endif #endif
&= ~_BV(OCIE3A); // disable the timer3 output compare A interrupt , OCIE3A); // disable the timer3 output compare A interrupt
timerDetach(TIMER3OUTCOMPAREA_INT); timerDetach(TIMER3OUTCOMPAREA_INT);
} }
#else //!WIRING #else //!WIRING

34
Marlin/stepper.cpp

@ -242,8 +242,8 @@ volatile signed char count_direction[NUM_AXIS] = { 1 };
// Some useful constants // Some useful constants
#define ENABLE_STEPPER_DRIVER_INTERRUPT() TIMSK1 |= BIT(OCIE1A) #define ENABLE_STEPPER_DRIVER_INTERRUPT() SBI(TIMSK1, OCIE1A)
#define DISABLE_STEPPER_DRIVER_INTERRUPT() TIMSK1 &= ~BIT(OCIE1A) #define DISABLE_STEPPER_DRIVER_INTERRUPT() CBI(TIMSK1, OCIE1A)
void endstops_hit_on_purpose() { void endstops_hit_on_purpose() {
endstop_hit_bits = 0; endstop_hit_bits = 0;
@ -253,20 +253,20 @@ void checkHitEndstops() {
if (endstop_hit_bits) { if (endstop_hit_bits) {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT); SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT);
if (endstop_hit_bits & BIT(X_MIN)) { if (TEST(endstop_hit_bits, X_MIN)) {
SERIAL_ECHOPAIR(" X:", (float)endstops_trigsteps[X_AXIS] / axis_steps_per_unit[X_AXIS]); SERIAL_ECHOPAIR(" X:", (float)endstops_trigsteps[X_AXIS] / axis_steps_per_unit[X_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "X"); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "X");
} }
if (endstop_hit_bits & BIT(Y_MIN)) { if (TEST(endstop_hit_bits, Y_MIN)) {
SERIAL_ECHOPAIR(" Y:", (float)endstops_trigsteps[Y_AXIS] / axis_steps_per_unit[Y_AXIS]); SERIAL_ECHOPAIR(" Y:", (float)endstops_trigsteps[Y_AXIS] / axis_steps_per_unit[Y_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Y"); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Y");
} }
if (endstop_hit_bits & BIT(Z_MIN)) { if (TEST(endstop_hit_bits, Z_MIN)) {
SERIAL_ECHOPAIR(" Z:", (float)endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); SERIAL_ECHOPAIR(" Z:", (float)endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Z"); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Z");
} }
#if ENABLED(Z_MIN_PROBE_ENDSTOP) #if ENABLED(Z_MIN_PROBE_ENDSTOP)
if (endstop_hit_bits & BIT(Z_MIN_PROBE)) { if (TEST(endstop_hit_bits, Z_MIN_PROBE)) {
SERIAL_ECHOPAIR(" Z_MIN_PROBE:", (float)endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); SERIAL_ECHOPAIR(" Z_MIN_PROBE:", (float)endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "ZP"); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "ZP");
} }
@ -309,7 +309,7 @@ inline void update_endstops() {
#define _ENDSTOP_PIN(AXIS, MINMAX) AXIS ##_## MINMAX ##_PIN #define _ENDSTOP_PIN(AXIS, MINMAX) AXIS ##_## MINMAX ##_PIN
#define _ENDSTOP_INVERTING(AXIS, MINMAX) AXIS ##_## MINMAX ##_ENDSTOP_INVERTING #define _ENDSTOP_INVERTING(AXIS, MINMAX) AXIS ##_## MINMAX ##_ENDSTOP_INVERTING
#define _AXIS(AXIS) AXIS ##_AXIS #define _AXIS(AXIS) AXIS ##_AXIS
#define _ENDSTOP_HIT(AXIS) endstop_hit_bits |= BIT(_ENDSTOP(AXIS, MIN)) #define _ENDSTOP_HIT(AXIS) SBI(endstop_hit_bits, _ENDSTOP(AXIS, MIN))
#define _ENDSTOP(AXIS, MINMAX) AXIS ##_## MINMAX #define _ENDSTOP(AXIS, MINMAX) AXIS ##_## MINMAX
// SET_ENDSTOP_BIT: set the current endstop bits for an endstop to its status // SET_ENDSTOP_BIT: set the current endstop bits for an endstop to its status
@ -424,7 +424,7 @@ inline void update_endstops() {
if (z_test && current_block->steps[Z_AXIS] > 0) { // z_test = Z_MIN || Z2_MIN if (z_test && current_block->steps[Z_AXIS] > 0) { // z_test = Z_MIN || Z2_MIN
endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS]; endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
endstop_hit_bits |= BIT(Z_MIN); SBI(endstop_hit_bits, Z_MIN);
if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing...
step_events_completed = current_block->step_event_count; step_events_completed = current_block->step_event_count;
} }
@ -440,7 +440,7 @@ inline void update_endstops() {
if (TEST_ENDSTOP(Z_MIN_PROBE)) { if (TEST_ENDSTOP(Z_MIN_PROBE)) {
endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS]; endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
endstop_hit_bits |= BIT(Z_MIN_PROBE); SBI(endstop_hit_bits, Z_MIN_PROBE);
} }
#endif #endif
} }
@ -460,7 +460,7 @@ inline void update_endstops() {
if (z_test && current_block->steps[Z_AXIS] > 0) { // t_test = Z_MAX || Z2_MAX if (z_test && current_block->steps[Z_AXIS] > 0) { // t_test = Z_MAX || Z2_MAX
endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS]; endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
endstop_hit_bits |= BIT(Z_MIN); SBI(endstop_hit_bits, Z_MIN);
if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing...
step_events_completed = current_block->step_event_count; step_events_completed = current_block->step_event_count;
} }
@ -1052,10 +1052,10 @@ void st_init() {
#endif #endif
// waveform generation = 0100 = CTC // waveform generation = 0100 = CTC
TCCR1B &= ~BIT(WGM13); CBI(TCCR1B, WGM13);
TCCR1B |= BIT(WGM12); SBI(TCCR1B, WGM12);
TCCR1A &= ~BIT(WGM11); CBI(TCCR1A, WGM11);
TCCR1A &= ~BIT(WGM10); CBI(TCCR1A, WGM10);
// output mode = 00 (disconnected) // output mode = 00 (disconnected)
TCCR1A &= ~(3 << COM1A0); TCCR1A &= ~(3 << COM1A0);
@ -1073,11 +1073,11 @@ void st_init() {
#if ENABLED(ADVANCE) #if ENABLED(ADVANCE)
#if defined(TCCR0A) && defined(WGM01) #if defined(TCCR0A) && defined(WGM01)
TCCR0A &= ~BIT(WGM01); CBI(TCCR0A, WGM01);
TCCR0A &= ~BIT(WGM00); CBI(TCCR0A, WGM00);
#endif #endif
e_steps[0] = e_steps[1] = e_steps[2] = e_steps[3] = 0; e_steps[0] = e_steps[1] = e_steps[2] = e_steps[3] = 0;
TIMSK0 |= BIT(OCIE0A); SBI(TIMSK0, OCIE0A);
#endif //ADVANCE #endif //ADVANCE
enable_endstops(true); // Start with endstops active. After homing they can be disabled enable_endstops(true); // Start with endstops active. After homing they can be disabled

35
Marlin/temperature.cpp

@ -850,8 +850,8 @@ static void updateTemperaturesFromRawValues() {
void tp_init() { void tp_init() {
#if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) #if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
//disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector
MCUCR = BIT(JTD); MCUCR = _BV(JTD);
MCUCR = BIT(JTD); MCUCR = _BV(JTD);
#endif #endif
// Finish init of mult extruder arrays // Finish init of mult extruder arrays
@ -914,13 +914,13 @@ void tp_init() {
#endif //HEATER_0_USES_MAX6675 #endif //HEATER_0_USES_MAX6675
#ifdef DIDR2 #ifdef DIDR2
#define ANALOG_SELECT(pin) do{ if (pin < 8) DIDR0 |= BIT(pin); else DIDR2 |= BIT(pin - 8); }while(0) #define ANALOG_SELECT(pin) do{ if (pin < 8) SBI(DIDR0, pin); else SBI(DIDR2, pin - 8); }while(0)
#else #else
#define ANALOG_SELECT(pin) do{ DIDR0 |= BIT(pin); }while(0) #define ANALOG_SELECT(pin) do{ SBI(DIDR0, pin); }while(0)
#endif #endif
// Set analog inputs // Set analog inputs
ADCSRA = BIT(ADEN) | BIT(ADSC) | BIT(ADIF) | 0x07; ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADIF) | 0x07;
DIDR0 = 0; DIDR0 = 0;
#ifdef DIDR2 #ifdef DIDR2
DIDR2 = 0; DIDR2 = 0;
@ -960,7 +960,7 @@ void tp_init() {
// Use timer0 for temperature measurement // Use timer0 for temperature measurement
// Interleave temperature interrupt with millies interrupt // Interleave temperature interrupt with millies interrupt
OCR0B = 128; OCR0B = 128;
TIMSK0 |= BIT(OCIE0B); SBI(TIMSK0, OCIE0B);
// Wait for temperature measurement to settle // Wait for temperature measurement to settle
delay(250); delay(250);
@ -1160,13 +1160,14 @@ void disable_all_heaters() {
max6675_temp = 0; max6675_temp = 0;
CBI(
#ifdef PRR #ifdef PRR
PRR &= ~BIT(PRSPI); PRR
#elif defined(PRR0) #elif defined(PRR0)
PRR0 &= ~BIT(PRSPI); PRR0
#endif #endif
, PRSPI);
SPCR = BIT(MSTR) | BIT(SPE) | BIT(SPR0); SPCR = _BV(MSTR) | _BV(SPE) | _BV(SPR0);
// enable TT_MAX6675 // enable TT_MAX6675
WRITE(MAX6675_SS, 0); WRITE(MAX6675_SS, 0);
@ -1177,13 +1178,13 @@ void disable_all_heaters() {
// read MSB // read MSB
SPDR = 0; SPDR = 0;
for (; (SPSR & BIT(SPIF)) == 0;); for (; !TEST(SPSR, SPIF););
max6675_temp = SPDR; max6675_temp = SPDR;
max6675_temp <<= 8; max6675_temp <<= 8;
// read LSB // read LSB
SPDR = 0; SPDR = 0;
for (; (SPSR & BIT(SPIF)) == 0;); for (; !TEST(SPSR, SPIF););
max6675_temp |= SPDR; max6675_temp |= SPDR;
// disable TT_MAX6675 // disable TT_MAX6675
@ -1256,7 +1257,7 @@ ISR(TIMER0_COMPB_vect) {
static unsigned char temp_count = 0; static unsigned char temp_count = 0;
static TempState temp_state = StartupDelay; static TempState temp_state = StartupDelay;
static unsigned char pwm_count = BIT(SOFT_PWM_SCALE); static unsigned char pwm_count = _BV(SOFT_PWM_SCALE);
// Static members for each heater // Static members for each heater
#if ENABLED(SLOW_PWM_HEATERS) #if ENABLED(SLOW_PWM_HEATERS)
@ -1341,7 +1342,7 @@ ISR(TIMER0_COMPB_vect) {
if (soft_pwm_fan < pwm_count) WRITE_FAN(0); if (soft_pwm_fan < pwm_count) WRITE_FAN(0);
#endif #endif
pwm_count += BIT(SOFT_PWM_SCALE); pwm_count += _BV(SOFT_PWM_SCALE);
pwm_count &= 0x7f; pwm_count &= 0x7f;
#else // SLOW_PWM_HEATERS #else // SLOW_PWM_HEATERS
@ -1423,7 +1424,7 @@ ISR(TIMER0_COMPB_vect) {
if (soft_pwm_fan < pwm_count) WRITE_FAN(0); if (soft_pwm_fan < pwm_count) WRITE_FAN(0);
#endif //FAN_SOFT_PWM #endif //FAN_SOFT_PWM
pwm_count += BIT(SOFT_PWM_SCALE); pwm_count += _BV(SOFT_PWM_SCALE);
pwm_count &= 0x7f; pwm_count &= 0x7f;
// increment slow_pwm_count only every 64 pwm_count circa 65.5ms // increment slow_pwm_count only every 64 pwm_count circa 65.5ms
@ -1449,9 +1450,9 @@ ISR(TIMER0_COMPB_vect) {
#endif // SLOW_PWM_HEATERS #endif // SLOW_PWM_HEATERS
#define SET_ADMUX_ADCSRA(pin) ADMUX = BIT(REFS0) | (pin & 0x07); ADCSRA |= BIT(ADSC) #define SET_ADMUX_ADCSRA(pin) ADMUX = _BV(REFS0) | (pin & 0x07); SBI(ADCSRA, ADSC)
#ifdef MUX5 #ifdef MUX5
#define START_ADC(pin) if (pin > 7) ADCSRB = BIT(MUX5); else ADCSRB = 0; SET_ADMUX_ADCSRA(pin) #define START_ADC(pin) if (pin > 7) ADCSRB = _BV(MUX5); else ADCSRB = 0; SET_ADMUX_ADCSRA(pin)
#else #else
#define START_ADC(pin) ADCSRB = 0; SET_ADMUX_ADCSRA(pin) #define START_ADC(pin) ADCSRB = 0; SET_ADMUX_ADCSRA(pin)
#endif #endif

4
Marlin/ultralcd.cpp

@ -1911,7 +1911,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
WRITE(SHIFT_LD, HIGH); WRITE(SHIFT_LD, HIGH);
for (int8_t i = 0; i < 8; i++) { for (int8_t i = 0; i < 8; i++) {
newbutton_reprapworld_keypad >>= 1; newbutton_reprapworld_keypad >>= 1;
if (READ(SHIFT_OUT)) newbutton_reprapworld_keypad |= BIT(7); if (READ(SHIFT_OUT)) SBI(newbutton_reprapworld_keypad, 7);
WRITE(SHIFT_CLK, HIGH); WRITE(SHIFT_CLK, HIGH);
WRITE(SHIFT_CLK, LOW); WRITE(SHIFT_CLK, LOW);
} }
@ -1924,7 +1924,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
unsigned char tmp_buttons = 0; unsigned char tmp_buttons = 0;
for (int8_t i = 0; i < 8; i++) { for (int8_t i = 0; i < 8; i++) {
newbutton >>= 1; newbutton >>= 1;
if (READ(SHIFT_OUT)) newbutton |= BIT(7); if (READ(SHIFT_OUT)) SBI(newbutton, 7);
WRITE(SHIFT_CLK, HIGH); WRITE(SHIFT_CLK, HIGH);
WRITE(SHIFT_CLK, LOW); WRITE(SHIFT_CLK, LOW);
} }

38
Marlin/ultralcd.h

@ -63,19 +63,19 @@
void lcd_ignore_click(bool b=true); void lcd_ignore_click(bool b=true);
#if ENABLED(NEWPANEL) #if ENABLED(NEWPANEL)
#define EN_C BIT(BLEN_C) #define EN_C (_BV(BLEN_C))
#define EN_B BIT(BLEN_B) #define EN_B (_BV(BLEN_B))
#define EN_A BIT(BLEN_A) #define EN_A (_BV(BLEN_A))
#if ENABLED(REPRAPWORLD_KEYPAD) #if ENABLED(REPRAPWORLD_KEYPAD)
#define EN_REPRAPWORLD_KEYPAD_F3 (BIT(BLEN_REPRAPWORLD_KEYPAD_F3)) #define EN_REPRAPWORLD_KEYPAD_F3 (_BV(BLEN_REPRAPWORLD_KEYPAD_F3))
#define EN_REPRAPWORLD_KEYPAD_F2 (BIT(BLEN_REPRAPWORLD_KEYPAD_F2)) #define EN_REPRAPWORLD_KEYPAD_F2 (_BV(BLEN_REPRAPWORLD_KEYPAD_F2))
#define EN_REPRAPWORLD_KEYPAD_F1 (BIT(BLEN_REPRAPWORLD_KEYPAD_F1)) #define EN_REPRAPWORLD_KEYPAD_F1 (_BV(BLEN_REPRAPWORLD_KEYPAD_F1))
#define EN_REPRAPWORLD_KEYPAD_UP (BIT(BLEN_REPRAPWORLD_KEYPAD_UP)) #define EN_REPRAPWORLD_KEYPAD_UP (_BV(BLEN_REPRAPWORLD_KEYPAD_UP))
#define EN_REPRAPWORLD_KEYPAD_RIGHT (BIT(BLEN_REPRAPWORLD_KEYPAD_RIGHT)) #define EN_REPRAPWORLD_KEYPAD_RIGHT (_BV(BLEN_REPRAPWORLD_KEYPAD_RIGHT))
#define EN_REPRAPWORLD_KEYPAD_MIDDLE (BIT(BLEN_REPRAPWORLD_KEYPAD_MIDDLE)) #define EN_REPRAPWORLD_KEYPAD_MIDDLE (_BV(BLEN_REPRAPWORLD_KEYPAD_MIDDLE))
#define EN_REPRAPWORLD_KEYPAD_DOWN (BIT(BLEN_REPRAPWORLD_KEYPAD_DOWN)) #define EN_REPRAPWORLD_KEYPAD_DOWN (_BV(BLEN_REPRAPWORLD_KEYPAD_DOWN))
#define EN_REPRAPWORLD_KEYPAD_LEFT (BIT(BLEN_REPRAPWORLD_KEYPAD_LEFT)) #define EN_REPRAPWORLD_KEYPAD_LEFT (_BV(BLEN_REPRAPWORLD_KEYPAD_LEFT))
#define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1)) #define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1))
#define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F2) #define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F2)
@ -90,14 +90,14 @@
#endif //REPRAPWORLD_KEYPAD #endif //REPRAPWORLD_KEYPAD
#else #else
//atomic, do not change //atomic, do not change
#define B_LE BIT(BL_LE) #define B_LE (_BV(BL_LE))
#define B_UP BIT(BL_UP) #define B_UP (_BV(BL_UP))
#define B_MI BIT(BL_MI) #define B_MI (_BV(BL_MI))
#define B_DW BIT(BL_DW) #define B_DW (_BV(BL_DW))
#define B_RI BIT(BL_RI) #define B_RI (_BV(BL_RI))
#define B_ST BIT(BL_ST) #define B_ST (_BV(BL_ST))
#define EN_B BIT(BLEN_B) #define EN_B (_BV(BLEN_B))
#define EN_A BIT(BLEN_A) #define EN_A (_BV(BLEN_A))
#define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST)) #define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST))
#endif//NEWPANEL #endif//NEWPANEL

34
Marlin/ultralcd_implementation_hitachi_HD44780.h

@ -20,13 +20,13 @@ extern volatile uint8_t buttons; //an extended version of the last checked butt
#define BLEN_B 1 #define BLEN_B 1
#define BLEN_A 0 #define BLEN_A 0
#define EN_B BIT(BLEN_B) // The two encoder pins are connected through BTN_EN1 and BTN_EN2 #define EN_B (_BV(BLEN_B)) // The two encoder pins are connected through BTN_EN1 and BTN_EN2
#define EN_A BIT(BLEN_A) #define EN_A (_BV(BLEN_A))
#if defined(BTN_ENC) && BTN_ENC > -1 #if defined(BTN_ENC) && BTN_ENC > -1
// encoder click is directly connected // encoder click is directly connected
#define BLEN_C 2 #define BLEN_C 2
#define EN_C BIT(BLEN_C) #define EN_C (_BV(BLEN_C))
#endif #endif
// //
@ -85,14 +85,14 @@ extern volatile uint8_t buttons; //an extended version of the last checked butt
#define REPRAPWORLD_BTN_OFFSET 0 // bit offset into buttons for shift register values #define REPRAPWORLD_BTN_OFFSET 0 // bit offset into buttons for shift register values
#define EN_REPRAPWORLD_KEYPAD_F3 BIT((BLEN_REPRAPWORLD_KEYPAD_F3+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_F3 (_BV(BLEN_REPRAPWORLD_KEYPAD_F3+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_F2 BIT((BLEN_REPRAPWORLD_KEYPAD_F2+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_F2 (_BV(BLEN_REPRAPWORLD_KEYPAD_F2+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_F1 BIT((BLEN_REPRAPWORLD_KEYPAD_F1+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_F1 (_BV(BLEN_REPRAPWORLD_KEYPAD_F1+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_UP BIT((BLEN_REPRAPWORLD_KEYPAD_UP+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_UP (_BV(BLEN_REPRAPWORLD_KEYPAD_UP+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_RIGHT BIT((BLEN_REPRAPWORLD_KEYPAD_RIGHT+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_RIGHT (_BV(BLEN_REPRAPWORLD_KEYPAD_RIGHT+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_MIDDLE BIT((BLEN_REPRAPWORLD_KEYPAD_MIDDLE+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_MIDDLE (_BV(BLEN_REPRAPWORLD_KEYPAD_MIDDLE+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_DOWN BIT((BLEN_REPRAPWORLD_KEYPAD_DOWN+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_DOWN (_BV(BLEN_REPRAPWORLD_KEYPAD_DOWN+REPRAPWORLD_BTN_OFFSET))
#define EN_REPRAPWORLD_KEYPAD_LEFT BIT((BLEN_REPRAPWORLD_KEYPAD_LEFT+REPRAPWORLD_BTN_OFFSET)) #define EN_REPRAPWORLD_KEYPAD_LEFT (_BV(BLEN_REPRAPWORLD_KEYPAD_LEFT+REPRAPWORLD_BTN_OFFSET))
//#define LCD_CLICKED ((buttons&EN_C) || (buttons&EN_REPRAPWORLD_KEYPAD_F1)) //#define LCD_CLICKED ((buttons&EN_C) || (buttons&EN_REPRAPWORLD_KEYPAD_F1))
//#define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons&EN_REPRAPWORLD_KEYPAD_DOWN) //#define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons&EN_REPRAPWORLD_KEYPAD_DOWN)
@ -113,12 +113,12 @@ extern volatile uint8_t buttons; //an extended version of the last checked butt
#define BL_ST 2 #define BL_ST 2
//automatic, do not change //automatic, do not change
#define B_LE BIT(BL_LE) #define B_LE (_BV(BL_LE))
#define B_UP BIT(BL_UP) #define B_UP (_BV(BL_UP))
#define B_MI BIT(BL_MI) #define B_MI (_BV(BL_MI))
#define B_DW BIT(BL_DW) #define B_DW (_BV(BL_DW))
#define B_RI BIT(BL_RI) #define B_RI (_BV(BL_RI))
#define B_ST BIT(BL_ST) #define B_ST (_BV(BL_ST))
#define LCD_CLICKED (buttons&(B_MI|B_ST)) #define LCD_CLICKED (buttons&(B_MI|B_ST))
#endif #endif

Loading…
Cancel
Save