Repetier-Firmware  0.91
src/ArduinoAVR/Repetier/HAL.h File Reference
#include <avr/pgmspace.h>
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include <inttypes.h>
#include "Print.h"
#include "WProgram.h"
#include "fastio.h"

Go to the source code of this file.

Data Structures

struct  ring_buffer
struct  ring_buffer_tx
class  RFHardwareSerial
class  HAL

Defines

#define PACK
#define FSTRINGVALUE(var, value)   const char var[] PROGMEM = value;
#define FSTRINGVAR(var)   static const char var[] PROGMEM;
#define FSTRINGPARAM(var)   PGM_P var
#define TIMER0_PRESCALE   64
 Prescale factor, timer0 runs at.
#define ANALOG_PRESCALER   _BV(ADPS0)|_BV(ADPS1)|_BV(ADPS2)
#define HardwareSerial_h
#define COMPAT_PRE1
#define BEGIN_INTERRUPT_PROTECTED   {uint8_t sreg=SREG;__asm volatile( "cli" ::: "memory" );
#define END_INTERRUPT_PROTECTED   SREG=sreg;}
#define ESCAPE_INTERRUPT_PROTECTED   SREG=sreg;
#define EEPROM_OFFSET   0
#define SECONDS_TO_TICKS(s)   (unsigned long)(s*(float)F_CPU)
#define ANALOG_REDUCE_BITS   0
#define ANALOG_REDUCE_FACTOR   1
#define MAX_RAM   32767
#define bit_clear(x, y)   x&= ~(1<<y)
#define bit_set(x, y)   x|= (1<<y)
#define I2C_READ   1
#define I2C_WRITE   0
#define FAST_INTEGER_SQRT
#define SERIAL_BUFFER_SIZE   128
#define SERIAL_BUFFER_MASK   127
#define SERIAL_TX_BUFFER_SIZE   64
#define SERIAL_TX_BUFFER_MASK   63
#define RFSERIAL   RFSerial
#define WAIT_OUT_EMPTY   while(tx_buffer.head != tx_buffer.tail) {}
#define OUT_P_I(p, i)   Com::printF(PSTR(p),(int)(i))
#define OUT_P_I_LN(p, i)   Com::printFLN(PSTR(p),(int)(i))
#define OUT_P_L(p, i)   Com::printF(PSTR(p),(long)(i))
#define OUT_P_L_LN(p, i)   Com::printFLN(PSTR(p),(long)(i))
#define OUT_P_F(p, i)   Com::printF(PSTR(p),(float)(i))
#define OUT_P_F_LN(p, i)   Com::printFLN(PSTR(p),(float)(i))
#define OUT_P_FX(p, i, x)   Com::printF(PSTR(p),(float)(i),x)
#define OUT_P_FX_LN(p, i, x)   Com::printFLN(PSTR(p),(float)(i),x)
#define OUT_P(p)   Com::printF(PSTR(p))
#define OUT_P_LN(p)   Com::printFLN(PSTR(p))
#define OUT_ERROR_P(p)   Com::printErrorF(PSTR(p))
#define OUT_ERROR_P_LN(p)   {Com::printErrorF(PSTR(p));Com::println();}
#define OUT(v)   Com::print(v)
#define OUT_LN   Com::println()
#define EXTRUDER_TIMER_VECTOR   TIMER0_COMPA_vect
#define EXTRUDER_OCR   OCR0A
#define EXTRUDER_TCCR   TCCR0A
#define EXTRUDER_TIMSK   TIMSK0
#define EXTRUDER_OCIE   OCIE0A
#define PWM_TIMER_VECTOR   TIMER0_COMPB_vect
#define PWM_OCR   OCR0B
#define PWM_TCCR   TCCR0A
#define PWM_TIMSK   TIMSK0
#define PWM_OCIE   OCIE0B

Typedefs

typedef unsigned int speed_t
typedef unsigned long ticks_t
typedef unsigned long millis_t

Variables

RFHardwareSerial RFSerial

Define Documentation

#define ANALOG_PRESCALER   _BV(ADPS0)|_BV(ADPS1)|_BV(ADPS2)
#define ANALOG_REDUCE_BITS   0
#define ANALOG_REDUCE_FACTOR   1
#define BEGIN_INTERRUPT_PROTECTED   {uint8_t sreg=SREG;__asm volatile( "cli" ::: "memory" );
#define bit_clear (   x,
 
)    x&= ~(1<<y)
#define bit_set (   x,
 
)    x|= (1<<y)
#define COMPAT_PRE1
#define EEPROM_OFFSET   0
#define END_INTERRUPT_PROTECTED   SREG=sreg;}
#define ESCAPE_INTERRUPT_PROTECTED   SREG=sreg;
#define EXTRUDER_OCIE   OCIE0A
#define EXTRUDER_OCR   OCR0A
#define EXTRUDER_TCCR   TCCR0A
#define EXTRUDER_TIMER_VECTOR   TIMER0_COMPA_vect
#define EXTRUDER_TIMSK   TIMSK0
#define FSTRINGPARAM (   var)    PGM_P var
#define FSTRINGVALUE (   var,
  value 
)    const char var[] PROGMEM = value;
#define FSTRINGVAR (   var)    static const char var[] PROGMEM;
#define I2C_READ   1

defines the data direction (reading from I2C device) in i2cStart(),i2cRepStart()

#define I2C_WRITE   0

defines the data direction (writing to I2C device) in i2cStart(),i2cRepStart()

#define MAX_RAM   32767
#define OUT (   v)    Com::print(v)
#define OUT_ERROR_P (   p)    Com::printErrorF(PSTR(p))
#define OUT_ERROR_P_LN (   p)    {Com::printErrorF(PSTR(p));Com::println();}
#define OUT_LN   Com::println()
#define OUT_P (   p)    Com::printF(PSTR(p))
#define OUT_P_F (   p,
 
)    Com::printF(PSTR(p),(float)(i))
#define OUT_P_F_LN (   p,
 
)    Com::printFLN(PSTR(p),(float)(i))
#define OUT_P_FX (   p,
  i,
 
)    Com::printF(PSTR(p),(float)(i),x)
#define OUT_P_FX_LN (   p,
  i,
 
)    Com::printFLN(PSTR(p),(float)(i),x)
#define OUT_P_I (   p,
 
)    Com::printF(PSTR(p),(int)(i))
#define OUT_P_I_LN (   p,
 
)    Com::printFLN(PSTR(p),(int)(i))
#define OUT_P_L (   p,
 
)    Com::printF(PSTR(p),(long)(i))
#define OUT_P_L_LN (   p,
 
)    Com::printFLN(PSTR(p),(long)(i))
#define OUT_P_LN (   p)    Com::printFLN(PSTR(p))
union cache_t PACK

This is the main Hardware Abstraction Layer (HAL). To make the firmware work with different processors and toolchains, all hardware related code should be packed into the hal files.

#define PWM_OCIE   OCIE0B
#define PWM_OCR   OCR0B
#define PWM_TCCR   TCCR0A
#define PWM_TIMER_VECTOR   TIMER0_COMPB_vect
#define PWM_TIMSK   TIMSK0
#define RFSERIAL   RFSerial
#define SECONDS_TO_TICKS (   s)    (unsigned long)(s*(float)F_CPU)
#define SERIAL_BUFFER_MASK   127
#define SERIAL_BUFFER_SIZE   128
#define SERIAL_TX_BUFFER_MASK   63
#define SERIAL_TX_BUFFER_SIZE   64
#define TIMER0_PRESCALE   64

Prescale factor, timer0 runs at.

All known arduino boards use 64. This value is needed for the extruder timing.

#define WAIT_OUT_EMPTY   while(tx_buffer.head != tx_buffer.tail) {}

Typedef Documentation

typedef unsigned long millis_t
typedef unsigned int speed_t
typedef unsigned long ticks_t

Variable Documentation

 All Data Structures Namespaces Files Functions Variables Typedefs Friends Defines