mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-31 15:50:55 +03:00 
			
		
		
		
	* Allow GPIO 9 and 10 for waveform generation While most ESP8266 modules use quad-io mode for their SPI flash ROM, there are some which only use dual-io mode. Allow the unused pins (GPIO 9 and 10) to have waveforms generated on them. Should the user try this on a quad-io mode board, expect very bad things to happen. * Add variant for 8285 to init GPIO 9/10 The 8285 only has 2-bit flash IO, so the other two pins can be used as inputs (9/10). Set them to input to mirror the way other pins are set up. * Update waveform gen to only allow 9/10 on 8285 Update the common.h in both generic (remove TODO, it's done!) and the 8285 variant to make isFlashInterfacePin macro correct. Use that macro to disable pins 9 and 10 in the common, non-8285 case.
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|   common.h - Commoon pin definition functions for ESP8266 boards
 | |
|   Part of Arduino - http://www.arduino.cc/
 | |
| 
 | |
|   Copyright (c) 2007 David A. Mellis
 | |
|   Modified for ESP8266 platform by Ivan Grokhotkov, 2014-2016.
 | |
| 
 | |
|   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., 59 Temple Place, Suite 330,
 | |
|   Boston, MA  02111-1307  USA
 | |
| 
 | |
|   $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
 | |
| */
 | |
| 
 | |
| #ifndef GENERIC_COMMON_H
 | |
| #define GENERIC_COMMON_H
 | |
| 
 | |
| #define EXTERNAL_NUM_INTERRUPTS 16
 | |
| #define NUM_DIGITAL_PINS        17
 | |
| #define NUM_ANALOG_INPUTS       1
 | |
| 
 | |
| // Pins 9 and 10 are available, go to positive logic since it's clearer 
 | |
| #define isFlashInterfacePin(p)      ((p) == 6 || (p) == 7 || (p) == 8 || (p) == 11)
 | |
| 
 | |
| #define analogInputToDigitalPin(p)  ((p > 0) ? NOT_A_PIN : 0)
 | |
| #define digitalPinToInterrupt(p)    (((p) < EXTERNAL_NUM_INTERRUPTS)? (p) : NOT_AN_INTERRUPT)
 | |
| #define digitalPinHasPWM(p)         (((p) < NUM_DIGITAL_PINS && !isFlashInterfacePin(p))? 1 : 0)
 | |
| 
 | |
| #define PIN_SPI_SS   (15)
 | |
| #define PIN_SPI_MOSI (13)
 | |
| #define PIN_SPI_MISO (12)
 | |
| #define PIN_SPI_SCK  (14)
 | |
| 
 | |
| static const uint8_t SS    = PIN_SPI_SS;
 | |
| static const uint8_t MOSI  = PIN_SPI_MOSI;
 | |
| static const uint8_t MISO  = PIN_SPI_MISO;
 | |
| static const uint8_t SCK   = PIN_SPI_SCK;
 | |
| 
 | |
| #ifndef PIN_A0
 | |
| #define PIN_A0 (17)
 | |
| #endif /* PIN_A0 */
 | |
| 
 | |
| static const uint8_t A0 = PIN_A0;
 | |
| 
 | |
| // These serial port names are intended to allow libraries and architecture-neutral
 | |
| // sketches to automatically default to the correct port name for a particular type
 | |
| // of use.  For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
 | |
| // the first hardware serial port whose RX/TX pins are not dedicated to another use.
 | |
| //
 | |
| // SERIAL_PORT_MONITOR        Port which normally prints to the Arduino Serial Monitor
 | |
| //
 | |
| // SERIAL_PORT_USBVIRTUAL     Port which is USB virtual serial
 | |
| //
 | |
| // SERIAL_PORT_LINUXBRIDGE    Port which connects to a Linux system via Bridge library
 | |
| //
 | |
| // SERIAL_PORT_HARDWARE       Hardware serial port, physical RX & TX pins.
 | |
| //
 | |
| // SERIAL_PORT_HARDWARE_OPEN  Hardware serial ports which are open for use.  Their RX & TX
 | |
| //                            pins are NOT connected to anything by default.
 | |
| #define SERIAL_PORT_MONITOR        Serial
 | |
| #define SERIAL_PORT_USBVIRTUAL     Serial
 | |
| #define SERIAL_PORT_HARDWARE       Serial
 | |
| #define SERIAL_PORT_HARDWARE_OPEN  Serial1
 | |
| 
 | |
| #ifdef LED_BUILTIN
 | |
| #ifdef __cplusplus
 | |
| extern "C"
 | |
| #endif
 | |
| const int BUILTIN_LED __attribute__((deprecated, weak)) = LED_BUILTIN;
 | |
| #endif
 | |
| 
 | |
| #endif /* GENERIC_COMMON_H */
 |