This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
reprapfirmware-dc42/Libraries/SamNonDuePin/SamNonDuePin.h
David Crocker 8589e91ff6 Version 0.78q
Added modified lwip files that were missed from last checkin
Fixed incorrect JSON format in response to the rr_files command when no
files were found
Enabled hardware debounce filter on cooling fan RPM pin to get a correct
and stable readout
2014-08-31 10:49:34 +01:00

78 lines
3.1 KiB
C

/*
Copyright (c) 2011 Arduino. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
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
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
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
Code from wiring-digital.c and wiring-analog.c from the arduino core.
See undefined.cpp file for more info
*/
#ifndef SAM_NON_DUE_PIN_H
#define SAM_NON_DUE_PIN_H
#include "Arduino.h"
// Number of pins defined in PinDescription array
#define PINS_C 25
static const unsigned int pwmFastFrequency = 25000; // fast PWM frequency for Intel spec PWM fans
// Undefined pins constants so the undef pins can be referred to a Xn rather than n
// Any pin numbers below X0 we assume are ordinary Due pin numbers
// Note: these must all be <=127 because pin numbers are held in int8_t in some places.
// There are 92 pins defined in the Arduino Due core as at version 1.5.4, so these must all be >=92
static const uint8_t X0 = 100;
static const uint8_t X1 = 101;
static const uint8_t X2 = 102;
static const uint8_t X3 = 103;
static const uint8_t X4 = 104;
static const uint8_t X5 = 105;
static const uint8_t X6 = 106;
static const uint8_t X7 = 107;
static const uint8_t X8 = 108;
//HSMCI
static const uint8_t PIN_HSMCI_MCCDA_GPIO = 9;
static const uint8_t PIN_HSMCI_MCCK_GPIO = 10;
static const uint8_t PIN_HSMCI_MCDA0_GPIO = 11;
static const uint8_t PIN_HSMCI_MCDA1_GPIO = 12;
static const uint8_t PIN_HSMCI_MCDA2_GPIO = 13;
static const uint8_t PIN_HSMCI_MCDA3_GPIO = 14;
//EMAC
static const uint8_t PIN_EMAC_EREFCK_GPIO = 15; //What is this one for?
static const uint8_t PIN_EMAC_EREFCK = 15;
static const uint8_t PIN_EMAC_ETXEN = 16;
static const uint8_t PIN_EMAC_ETX0 = 17;
static const uint8_t PIN_EMAC_ETX1 = 18;
static const uint8_t PIN_EMAC_ECRSDV = 19;
static const uint8_t PIN_EMAC_ERX0 = 20;
static const uint8_t PIN_EMAC_ERX1 = 21;
static const uint8_t PIN_EMAC_ERXER = 22;
static const uint8_t PIN_EMAC_EMDC = 23;
static const uint8_t PIN_EMAC_EMDIO = 24;
// struct used to hold the descriptions for the "non arduino" pins.
// from the Arduino.h files
extern const PinDescription nonDuePinDescription[] ;
extern void pinModeNonDue( uint32_t ulPin, uint32_t ulMode, uint32_t debounceCutoff = 0 ); // NB only one debounce cutoff frequency can be set per PIO
extern void digitalWriteNonDue( uint32_t ulPin, uint32_t ulVal );
extern int digitalReadNonDue( uint32_t ulPin);
extern void analogWriteNonDue(uint32_t ulPin, uint32_t ulValue, bool fastPwm = false);
extern void analogOutputNonDue();
extern void hsmciPinsinit();
extern void ethPinsInit();
#endif /* SAM_NON_DUE_PIN_H */