|
|
|
@ -21,24 +21,24 @@
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Contributed by Triffid_Hunter, modified by Kliment, extended by the Marlin team
|
|
|
|
|
* Why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
|
|
|
|
|
* Fast I/O Routines
|
|
|
|
|
* Use direct port manipulation to save scads of processor time.
|
|
|
|
|
* Contributed by Triffid_Hunter. Modified by Kliment and the Marlin team.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef _FASTIO_ARDUINO_H
|
|
|
|
|
#ifndef _FASTIO_ARDUINO_H
|
|
|
|
|
#define _FASTIO_ARDUINO_H
|
|
|
|
|
|
|
|
|
|
#include <avr/io.h>
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Include Ports and Functions
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Enable this option to use Teensy++ 2.0 assignments for AT90USB processors.
|
|
|
|
|
*/
|
|
|
|
|
//#define AT90USBxx_TEENSYPP_ASSIGNMENTS
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Include Ports and Functions
|
|
|
|
|
*/
|
|
|
|
|
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__)
|
|
|
|
|
#include "fastio_168.h"
|
|
|
|
|
#elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284P__)
|
|
|
|
@ -65,6 +65,8 @@
|
|
|
|
|
* Magic I/O routines
|
|
|
|
|
*
|
|
|
|
|
* Now you can simply SET_OUTPUT(PIN); WRITE(PIN, HIGH); WRITE(PIN, LOW);
|
|
|
|
|
*
|
|
|
|
|
* Why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#define _READ(IO) ((bool)(DIO ## IO ## _RPORT & _BV(DIO ## IO ## _PIN)))
|
|
|
|
|