PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)
Dependents: YATTT sd_map_test cPong SnowDemo ... more
PokittoLib
Library for programming Pokitto hardware
How to Use
- Import this library to online compiler (see button "import" on the right hand side
- DO NOT import mbed-src anymore, a better version is now included inside PokittoLib
- Change My_settings.h according to your project
- Start coding!
POKITTO_XTERNALS/Arduino/pins_arduino.h@71:531419862202, 2019-12-25 (annotated)
- Committer:
- Pokitto
- Date:
- Wed Dec 25 23:59:52 2019 +0000
- Revision:
- 71:531419862202
- Parent:
- 8:754a7af30890
Changed Mode2 C++ refresh code (graphical errors)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Pokitto | 8:754a7af30890 | 1 | /* |
Pokitto | 8:754a7af30890 | 2 | pins_arduino.h - Pin definition functions for Arduino |
Pokitto | 8:754a7af30890 | 3 | Part of Arduino - http://www.arduino.cc/ |
Pokitto | 8:754a7af30890 | 4 | |
Pokitto | 8:754a7af30890 | 5 | Copyright (c) 2007 David A. Mellis |
Pokitto | 8:754a7af30890 | 6 | |
Pokitto | 8:754a7af30890 | 7 | This library is free software; you can redistribute it and/or |
Pokitto | 8:754a7af30890 | 8 | modify it under the terms of the GNU Lesser General Public |
Pokitto | 8:754a7af30890 | 9 | License as published by the Free Software Foundation; either |
Pokitto | 8:754a7af30890 | 10 | version 2.1 of the License, or (at your option) any later version. |
Pokitto | 8:754a7af30890 | 11 | |
Pokitto | 8:754a7af30890 | 12 | This library is distributed in the hope that it will be useful, |
Pokitto | 8:754a7af30890 | 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
Pokitto | 8:754a7af30890 | 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
Pokitto | 8:754a7af30890 | 15 | Lesser General Public License for more details. |
Pokitto | 8:754a7af30890 | 16 | |
Pokitto | 8:754a7af30890 | 17 | You should have received a copy of the GNU Lesser General |
Pokitto | 8:754a7af30890 | 18 | Public License along with this library; if not, write to the |
Pokitto | 8:754a7af30890 | 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
Pokitto | 8:754a7af30890 | 20 | Boston, MA 02111-1307 USA |
Pokitto | 8:754a7af30890 | 21 | |
Pokitto | 8:754a7af30890 | 22 | $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ |
Pokitto | 8:754a7af30890 | 23 | */ |
Pokitto | 8:754a7af30890 | 24 | |
Pokitto | 8:754a7af30890 | 25 | #ifndef Pins_Arduino_h |
Pokitto | 8:754a7af30890 | 26 | #define Pins_Arduino_h |
Pokitto | 8:754a7af30890 | 27 | |
Pokitto | 8:754a7af30890 | 28 | #include "PokittoFakeavr.h" |
Pokitto | 8:754a7af30890 | 29 | |
Pokitto | 8:754a7af30890 | 30 | #define NUM_DIGITAL_PINS 20 |
Pokitto | 8:754a7af30890 | 31 | #define NUM_ANALOG_INPUTS 6 |
Pokitto | 8:754a7af30890 | 32 | #define analogInputToDigitalPin(p) ((p < 6) ? (p) + 14 : -1) |
Pokitto | 8:754a7af30890 | 33 | |
Pokitto | 8:754a7af30890 | 34 | #if defined(__AVR_ATmega8__) |
Pokitto | 8:754a7af30890 | 35 | #define digitalPinHasPWM(p) ((p) == 9 || (p) == 10 || (p) == 11) |
Pokitto | 8:754a7af30890 | 36 | #else |
Pokitto | 8:754a7af30890 | 37 | #define digitalPinHasPWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11) |
Pokitto | 8:754a7af30890 | 38 | #endif |
Pokitto | 8:754a7af30890 | 39 | |
Pokitto | 8:754a7af30890 | 40 | const static uint8_t SS = 10; |
Pokitto | 8:754a7af30890 | 41 | const static uint8_t MOSI = 11; |
Pokitto | 8:754a7af30890 | 42 | const static uint8_t MISO = 12; |
Pokitto | 8:754a7af30890 | 43 | const static uint8_t SCK = 13; |
Pokitto | 8:754a7af30890 | 44 | |
Pokitto | 8:754a7af30890 | 45 | //const static uint8_t SDA = 18; |
Pokitto | 8:754a7af30890 | 46 | //const static uint8_t SCL = 19; |
Pokitto | 8:754a7af30890 | 47 | const static uint8_t LED_BUILTIN = 13; |
Pokitto | 8:754a7af30890 | 48 | |
Pokitto | 8:754a7af30890 | 49 | /*const static uint8_t A0 = 14; |
Pokitto | 8:754a7af30890 | 50 | const static uint8_t A1 = 15; |
Pokitto | 8:754a7af30890 | 51 | const static uint8_t A2 = 16; |
Pokitto | 8:754a7af30890 | 52 | const static uint8_t A3 = 17; |
Pokitto | 8:754a7af30890 | 53 | const static uint8_t A4 = 18; |
Pokitto | 8:754a7af30890 | 54 | const static uint8_t A5 = 19; |
Pokitto | 8:754a7af30890 | 55 | const static uint8_t A6 = 20; |
Pokitto | 8:754a7af30890 | 56 | const static uint8_t A7 = 21;*/ |
Pokitto | 8:754a7af30890 | 57 | |
Pokitto | 8:754a7af30890 | 58 | #define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0)) |
Pokitto | 8:754a7af30890 | 59 | #define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1)) |
Pokitto | 8:754a7af30890 | 60 | #define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0)))) |
Pokitto | 8:754a7af30890 | 61 | #define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14))) |
Pokitto | 8:754a7af30890 | 62 | |
Pokitto | 8:754a7af30890 | 63 | #ifdef ARDUINO_MAIN |
Pokitto | 8:754a7af30890 | 64 | |
Pokitto | 8:754a7af30890 | 65 | // On the Arduino board, digital pins are also used |
Pokitto | 8:754a7af30890 | 66 | // for the analog output (software PWM). Analog input |
Pokitto | 8:754a7af30890 | 67 | // pins are a separate set. |
Pokitto | 8:754a7af30890 | 68 | |
Pokitto | 8:754a7af30890 | 69 | // ATMEL ATMEGA8 & 168 / ARDUINO |
Pokitto | 8:754a7af30890 | 70 | // |
Pokitto | 8:754a7af30890 | 71 | // +-\/-+ |
Pokitto | 8:754a7af30890 | 72 | // PC6 1| |28 PC5 (AI 5) |
Pokitto | 8:754a7af30890 | 73 | // (D 0) PD0 2| |27 PC4 (AI 4) |
Pokitto | 8:754a7af30890 | 74 | // (D 1) PD1 3| |26 PC3 (AI 3) |
Pokitto | 8:754a7af30890 | 75 | // (D 2) PD2 4| |25 PC2 (AI 2) |
Pokitto | 8:754a7af30890 | 76 | // PWM+ (D 3) PD3 5| |24 PC1 (AI 1) |
Pokitto | 8:754a7af30890 | 77 | // (D 4) PD4 6| |23 PC0 (AI 0) |
Pokitto | 8:754a7af30890 | 78 | // VCC 7| |22 GND |
Pokitto | 8:754a7af30890 | 79 | // GND 8| |21 AREF |
Pokitto | 8:754a7af30890 | 80 | // PB6 9| |20 AVCC |
Pokitto | 8:754a7af30890 | 81 | // PB7 10| |19 PB5 (D 13) |
Pokitto | 8:754a7af30890 | 82 | // PWM+ (D 5) PD5 11| |18 PB4 (D 12) |
Pokitto | 8:754a7af30890 | 83 | // PWM+ (D 6) PD6 12| |17 PB3 (D 11) PWM |
Pokitto | 8:754a7af30890 | 84 | // (D 7) PD7 13| |16 PB2 (D 10) PWM |
Pokitto | 8:754a7af30890 | 85 | // (D 8) PB0 14| |15 PB1 (D 9) PWM |
Pokitto | 8:754a7af30890 | 86 | // +----+ |
Pokitto | 8:754a7af30890 | 87 | // |
Pokitto | 8:754a7af30890 | 88 | // (PWM+ indicates the additional PWM pins on the ATmega168.) |
Pokitto | 8:754a7af30890 | 89 | |
Pokitto | 8:754a7af30890 | 90 | // ATMEL ATMEGA1280 / ARDUINO |
Pokitto | 8:754a7af30890 | 91 | // |
Pokitto | 8:754a7af30890 | 92 | // 0-7 PE0-PE7 works |
Pokitto | 8:754a7af30890 | 93 | // 8-13 PB0-PB5 works |
Pokitto | 8:754a7af30890 | 94 | // 14-21 PA0-PA7 works |
Pokitto | 8:754a7af30890 | 95 | // 22-29 PH0-PH7 works |
Pokitto | 8:754a7af30890 | 96 | // 30-35 PG5-PG0 works |
Pokitto | 8:754a7af30890 | 97 | // 36-43 PC7-PC0 works |
Pokitto | 8:754a7af30890 | 98 | // 44-51 PJ7-PJ0 works |
Pokitto | 8:754a7af30890 | 99 | // 52-59 PL7-PL0 works |
Pokitto | 8:754a7af30890 | 100 | // 60-67 PD7-PD0 works |
Pokitto | 8:754a7af30890 | 101 | // A0-A7 PF0-PF7 |
Pokitto | 8:754a7af30890 | 102 | // A8-A15 PK0-PK7 |
Pokitto | 8:754a7af30890 | 103 | |
Pokitto | 8:754a7af30890 | 104 | |
Pokitto | 8:754a7af30890 | 105 | // these arrays map port names (e.g. port B) to the |
Pokitto | 8:754a7af30890 | 106 | // appropriate addresses for various functions (e.g. reading |
Pokitto | 8:754a7af30890 | 107 | // and writing) |
Pokitto | 8:754a7af30890 | 108 | |
Pokitto | 8:754a7af30890 | 109 | uint8_t NULL_DATA = 0; |
Pokitto | 8:754a7af30890 | 110 | |
Pokitto | 8:754a7af30890 | 111 | const uint8_t* PROGMEM port_to_mode_PGM[] = { |
Pokitto | 8:754a7af30890 | 112 | &NULL_DATA, |
Pokitto | 8:754a7af30890 | 113 | &NULL_DATA, |
Pokitto | 8:754a7af30890 | 114 | &DDRB, |
Pokitto | 8:754a7af30890 | 115 | &DDRC, |
Pokitto | 8:754a7af30890 | 116 | &DDRD, |
Pokitto | 8:754a7af30890 | 117 | }; |
Pokitto | 8:754a7af30890 | 118 | |
Pokitto | 8:754a7af30890 | 119 | const uint8_t* PROGMEM port_to_output_PGM[] = { |
Pokitto | 8:754a7af30890 | 120 | &NULL_DATA, |
Pokitto | 8:754a7af30890 | 121 | &NULL_DATA, |
Pokitto | 8:754a7af30890 | 122 | &PORTB, |
Pokitto | 8:754a7af30890 | 123 | &PORTC, |
Pokitto | 8:754a7af30890 | 124 | &PORTD, |
Pokitto | 8:754a7af30890 | 125 | }; |
Pokitto | 8:754a7af30890 | 126 | |
Pokitto | 8:754a7af30890 | 127 | const uint8_t* PROGMEM port_to_input_PGM[] = { |
Pokitto | 8:754a7af30890 | 128 | &NULL_DATA, |
Pokitto | 8:754a7af30890 | 129 | &NULL_DATA, |
Pokitto | 8:754a7af30890 | 130 | &PINB, |
Pokitto | 8:754a7af30890 | 131 | &PINC, |
Pokitto | 8:754a7af30890 | 132 | &PIND, |
Pokitto | 8:754a7af30890 | 133 | }; |
Pokitto | 8:754a7af30890 | 134 | |
Pokitto | 8:754a7af30890 | 135 | |
Pokitto | 8:754a7af30890 | 136 | const uint8_t PROGMEM digital_pin_to_port_PGM[] = { |
Pokitto | 8:754a7af30890 | 137 | PD, /* 0 */ |
Pokitto | 8:754a7af30890 | 138 | PD, |
Pokitto | 8:754a7af30890 | 139 | PD, |
Pokitto | 8:754a7af30890 | 140 | PD, |
Pokitto | 8:754a7af30890 | 141 | PD, |
Pokitto | 8:754a7af30890 | 142 | PD, |
Pokitto | 8:754a7af30890 | 143 | PD, |
Pokitto | 8:754a7af30890 | 144 | PD, |
Pokitto | 8:754a7af30890 | 145 | PB, /* 8 */ |
Pokitto | 8:754a7af30890 | 146 | PB, |
Pokitto | 8:754a7af30890 | 147 | PB, |
Pokitto | 8:754a7af30890 | 148 | PB, |
Pokitto | 8:754a7af30890 | 149 | PB, |
Pokitto | 8:754a7af30890 | 150 | PB, |
Pokitto | 8:754a7af30890 | 151 | PC, /* 14 */ |
Pokitto | 8:754a7af30890 | 152 | PC, |
Pokitto | 8:754a7af30890 | 153 | PC, |
Pokitto | 8:754a7af30890 | 154 | PC, |
Pokitto | 8:754a7af30890 | 155 | PC, |
Pokitto | 8:754a7af30890 | 156 | PC, |
Pokitto | 8:754a7af30890 | 157 | }; |
Pokitto | 8:754a7af30890 | 158 | |
Pokitto | 8:754a7af30890 | 159 | const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { |
Pokitto | 8:754a7af30890 | 160 | _BV(0), /* 0, port D */ |
Pokitto | 8:754a7af30890 | 161 | _BV(1), |
Pokitto | 8:754a7af30890 | 162 | _BV(2), |
Pokitto | 8:754a7af30890 | 163 | _BV(3), |
Pokitto | 8:754a7af30890 | 164 | _BV(4), |
Pokitto | 8:754a7af30890 | 165 | _BV(5), |
Pokitto | 8:754a7af30890 | 166 | _BV(6), |
Pokitto | 8:754a7af30890 | 167 | _BV(7), |
Pokitto | 8:754a7af30890 | 168 | _BV(0), /* 8, port B */ |
Pokitto | 8:754a7af30890 | 169 | _BV(1), |
Pokitto | 8:754a7af30890 | 170 | _BV(2), |
Pokitto | 8:754a7af30890 | 171 | _BV(3), |
Pokitto | 8:754a7af30890 | 172 | _BV(4), |
Pokitto | 8:754a7af30890 | 173 | _BV(5), |
Pokitto | 8:754a7af30890 | 174 | _BV(0), /* 14, port C */ |
Pokitto | 8:754a7af30890 | 175 | _BV(1), |
Pokitto | 8:754a7af30890 | 176 | _BV(2), |
Pokitto | 8:754a7af30890 | 177 | _BV(3), |
Pokitto | 8:754a7af30890 | 178 | _BV(4), |
Pokitto | 8:754a7af30890 | 179 | _BV(5), |
Pokitto | 8:754a7af30890 | 180 | }; |
Pokitto | 8:754a7af30890 | 181 | |
Pokitto | 8:754a7af30890 | 182 | const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { |
Pokitto | 8:754a7af30890 | 183 | NOT_ON_TIMER, /* 0 - port D */ |
Pokitto | 8:754a7af30890 | 184 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 185 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 186 | // on the ATmega168, digital pin 3 has hardware pwm |
Pokitto | 8:754a7af30890 | 187 | #if defined(__AVR_ATmega8__) |
Pokitto | 8:754a7af30890 | 188 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 189 | #else |
Pokitto | 8:754a7af30890 | 190 | TIMER2B, |
Pokitto | 8:754a7af30890 | 191 | #endif |
Pokitto | 8:754a7af30890 | 192 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 193 | // on the ATmega168, digital pins 5 and 6 have hardware pwm |
Pokitto | 8:754a7af30890 | 194 | #if defined(__AVR_ATmega8__) |
Pokitto | 8:754a7af30890 | 195 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 196 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 197 | #else |
Pokitto | 8:754a7af30890 | 198 | TIMER0B, |
Pokitto | 8:754a7af30890 | 199 | TIMER0A, |
Pokitto | 8:754a7af30890 | 200 | #endif |
Pokitto | 8:754a7af30890 | 201 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 202 | NOT_ON_TIMER, /* 8 - port B */ |
Pokitto | 8:754a7af30890 | 203 | TIMER1A, |
Pokitto | 8:754a7af30890 | 204 | TIMER1B, |
Pokitto | 8:754a7af30890 | 205 | #if defined(__AVR_ATmega8__) |
Pokitto | 8:754a7af30890 | 206 | TIMER2, |
Pokitto | 8:754a7af30890 | 207 | #else |
Pokitto | 8:754a7af30890 | 208 | TIMER2A, |
Pokitto | 8:754a7af30890 | 209 | #endif |
Pokitto | 8:754a7af30890 | 210 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 211 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 212 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 213 | NOT_ON_TIMER, /* 14 - port C */ |
Pokitto | 8:754a7af30890 | 214 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 215 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 216 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 217 | NOT_ON_TIMER, |
Pokitto | 8:754a7af30890 | 218 | }; |
Pokitto | 8:754a7af30890 | 219 | |
Pokitto | 8:754a7af30890 | 220 | #endif |
Pokitto | 8:754a7af30890 | 221 | |
Pokitto | 8:754a7af30890 | 222 | #endif |