/ Repetier / fastio.h
fastio.h
   1  /*
   2  	This code contibuted by Triffid_Hunter and modified by Kliment
   3  	why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
   4          2012/3/10 AT90USB128x modified by lincomatic to match Teensyduino
   5  */
   6  #ifndef	_ARDUINO_H
   7  #define	_ARDUINO_H
   8  
   9  #include	<avr/io.h>
  10  
  11  /*
  12  	utility functions
  13  */
  14  
  15  #ifndef		MASK
  16  /// MASKING- returns \f$2^PIN\f$
  17  	#define		MASK(PIN)				(1 << PIN)
  18  #endif
  19  
  20  /*
  21  	magic I/O routines
  22  
  23  	now you can simply SET_OUTPUT(STEP); WRITE(STEP, 1); WRITE(STEP, 0);
  24  */
  25  
  26  /// Read a pin
  27  #define		_READ(IO)					((bool)(DIO ## IO ## _RPORT & MASK(DIO ## IO ## _PIN)))
  28  /// write to a pin
  29  #define		_WRITE(IO, v)			do { if (v) {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ##  IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)
  30  /// toggle a pin
  31  #define		_TOGGLE(IO)				do {DIO ##  IO ## _RPORT = MASK(DIO ## IO ## _PIN); } while (0)
  32  
  33  /// set pin as input
  34  #define		_SET_INPUT(IO)		do {DIO ##  IO ## _DDR &= ~MASK(DIO ## IO ## _PIN); } while (0)
  35  /// set pin as output
  36  #define		_SET_OUTPUT(IO)		do {DIO ##  IO ## _DDR |=  MASK(DIO ## IO ## _PIN); } while (0)
  37  
  38  /// check if pin is an input
  39  #define		_GET_INPUT(IO)		((DIO ## IO ## _DDR & MASK(DIO ## IO ## _PIN)) == 0)
  40  /// check if pin is an output
  41  #define		_GET_OUTPUT(IO)		((DIO ## IO ## _DDR & MASK(DIO ## IO ## _PIN)) != 0)
  42  
  43  //	why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
  44  
  45  /// Read a pin wrapper
  46  #define		READ(IO)					_READ(IO)
  47  /// Write to a pin wrapper
  48  #define		WRITE(IO, v)			_WRITE(IO, v)
  49  /// toggle a pin wrapper
  50  #define		TOGGLE(IO)				_TOGGLE(IO)
  51  
  52  /// set pin as input wrapper
  53  #define		SET_INPUT(IO)			_SET_INPUT(IO)
  54  /// set pin as output wrapper
  55  #define		SET_OUTPUT(IO)		_SET_OUTPUT(IO)
  56  
  57  /// check if pin is an input wrapper
  58  #define		GET_INPUT(IO)			_GET_INPUT(IO)
  59  /// check if pin is an output wrapper
  60  #define		GET_OUTPUT(IO)		_GET_OUTPUT(IO)
  61  
  62  /*
  63  	ports and functions
  64  
  65  	added as necessary or if I feel like it- not a comprehensive list!
  66  */
  67  
  68  #if defined (__AVR_ATmega168__) || defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__)
  69  // UART
  70  #define	RXD					DIO0
  71  #define	TXD					DIO1
  72  
  73  // SPI
  74  #define	SCK					DIO13
  75  #define	MISO				DIO12
  76  #define	MOSI				DIO11
  77  #define	SS					DIO10
  78  
  79  // TWI (I2C)
  80  #define	SCL					AIO5
  81  #define	SDA					AIO4
  82  
  83  // timers and PWM
  84  #define	OC0A				DIO6
  85  #define	OC0B				DIO5
  86  #define	OC1A				DIO9
  87  #define	OC1B				DIO10
  88  #define	OC2A				DIO11
  89  #define	OC2B				DIO3
  90  
  91  #define	DEBUG_LED		AIO5
  92  
  93  /*
  94  pins
  95  */
  96  
  97  #define DIO0_PIN		PIND0
  98  #define DIO0_RPORT	PIND
  99  #define DIO0_WPORT	PORTD
 100  #define DIO0_DDR		DDRD
 101  #define DIO0_PWM		NULL
 102  
 103  #define DIO1_PIN		PIND1
 104  #define DIO1_RPORT	PIND
 105  #define DIO1_WPORT	PORTD
 106  #define DIO1_DDR		DDRD
 107  #define DIO1_PWM		NULL
 108  
 109  #define DIO2_PIN		PIND2
 110  #define DIO2_RPORT	PIND
 111  #define DIO2_WPORT	PORTD
 112  #define DIO2_DDR		DDRD
 113  #define DIO2_PWM		NULL
 114  
 115  #define DIO3_PIN		PIND3
 116  #define DIO3_RPORT	PIND
 117  #define DIO3_WPORT	PORTD
 118  #define DIO3_DDR		DDRD
 119  #define DIO3_PWM		&OCR2B
 120  
 121  #define DIO4_PIN		PIND4
 122  #define DIO4_RPORT	PIND
 123  #define DIO4_WPORT	PORTD
 124  #define DIO4_DDR		DDRD
 125  #define DIO4_PWM		NULL
 126  
 127  #define DIO5_PIN		PIND5
 128  #define DIO5_RPORT	PIND
 129  #define DIO5_WPORT	PORTD
 130  #define DIO5_DDR		DDRD
 131  #define DIO5_PWM		&OCR0B
 132  
 133  #define DIO6_PIN		PIND6
 134  #define DIO6_RPORT	PIND
 135  #define DIO6_WPORT	PORTD
 136  #define DIO6_DDR		DDRD
 137  #define DIO6_PWM		&OCR0A
 138  
 139  #define DIO7_PIN		PIND7
 140  #define DIO7_RPORT	PIND
 141  #define DIO7_WPORT	PORTD
 142  #define DIO7_DDR		DDRD
 143  #define DIO7_PWM		NULL
 144  
 145  #define DIO8_PIN		PINB0
 146  #define DIO8_RPORT	PINB
 147  #define DIO8_WPORT	PORTB
 148  #define DIO8_DDR		DDRB
 149  #define DIO8_PWM		NULL
 150  
 151  #define DIO9_PIN		PINB1
 152  #define DIO9_RPORT	PINB
 153  #define DIO9_WPORT	PORTB
 154  #define DIO9_DDR		DDRB
 155  #define DIO9_PWM		NULL
 156  
 157  #define DIO10_PIN		PINB2
 158  #define DIO10_RPORT	PINB
 159  #define DIO10_WPORT	PORTB
 160  #define DIO10_DDR		DDRB
 161  #define DIO10_PWM		NULL
 162  
 163  #define DIO11_PIN		PINB3
 164  #define DIO11_RPORT	PINB
 165  #define DIO11_WPORT	PORTB
 166  #define DIO11_DDR		DDRB
 167  #define DIO11_PWM		&OCR2A
 168  
 169  #define DIO12_PIN		PINB4
 170  #define DIO12_RPORT	PINB
 171  #define DIO12_WPORT	PORTB
 172  #define DIO12_DDR		DDRB
 173  #define DIO12_PWM		NULL
 174  
 175  #define DIO13_PIN		PINB5
 176  #define DIO13_RPORT	PINB
 177  #define DIO13_WPORT	PORTB
 178  #define DIO13_DDR		DDRB
 179  #define DIO13_PWM		NULL
 180  
 181  
 182  #define DIO14_PIN		PINC0
 183  #define DIO14_RPORT	PINC
 184  #define DIO14_WPORT	PORTC
 185  #define DIO14_DDR		DDRC
 186  #define DIO14_PWM		NULL
 187  
 188  #define DIO15_PIN		PINC1
 189  #define DIO15_RPORT	PINC
 190  #define DIO15_WPORT	PORTC
 191  #define DIO15_DDR		DDRC
 192  #define DIO15_PWM		NULL
 193  
 194  #define DIO16_PIN		PINC2
 195  #define DIO16_RPORT	PINC
 196  #define DIO16_WPORT	PORTC
 197  #define DIO16_DDR		DDRC
 198  #define DIO16_PWM		NULL
 199  
 200  #define DIO17_PIN		PINC3
 201  #define DIO17_RPORT	PINC
 202  #define DIO17_WPORT	PORTC
 203  #define DIO17_DDR		DDRC
 204  #define DIO17_PWM		NULL
 205  
 206  #define DIO18_PIN		PINC4
 207  #define DIO18_RPORT	PINC
 208  #define DIO18_WPORT	PORTC
 209  #define DIO18_DDR		DDRC
 210  #define DIO18_PWM		NULL
 211  
 212  #define DIO19_PIN		PINC5
 213  #define DIO19_RPORT	PINC
 214  #define DIO19_WPORT	PORTC
 215  #define DIO19_DDR		DDRC
 216  #define DIO19_PWM		NULL
 217  
 218  #define DIO20_PIN		PINC6
 219  #define DIO20_RPORT	PINC
 220  #define DIO20_WPORT	PORTC
 221  #define DIO20_DDR		DDRC
 222  #define DIO20_PWM		NULL
 223  
 224  #define DIO21_PIN		PINC7
 225  #define DIO21_RPORT	PINC
 226  #define DIO21_WPORT	PORTC
 227  #define DIO21_DDR		DDRC
 228  #define DIO21_PWM		NULL
 229  
 230  
 231  
 232  #undef PB0
 233  #define PB0_PIN			PINB0
 234  #define PB0_RPORT		PINB
 235  #define PB0_WPORT		PORTB
 236  #define PB0_DDR			DDRB
 237  #define PB0_PWM			NULL
 238  
 239  #undef PB1
 240  #define PB1_PIN			PINB1
 241  #define PB1_RPORT		PINB
 242  #define PB1_WPORT		PORTB
 243  #define PB1_DDR			DDRB
 244  #define PB1_PWM			NULL
 245  
 246  #undef PB2
 247  #define PB2_PIN			PINB2
 248  #define PB2_RPORT		PINB
 249  #define PB2_WPORT		PORTB
 250  #define PB2_DDR			DDRB
 251  #define PB2_PWM			NULL
 252  
 253  #undef PB3
 254  #define PB3_PIN			PINB3
 255  #define PB3_RPORT		PINB
 256  #define PB3_WPORT		PORTB
 257  #define PB3_DDR			DDRB
 258  #define PB3_PWM			&OCR2A
 259  
 260  #undef PB4
 261  #define PB4_PIN			PINB4
 262  #define PB4_RPORT		PINB
 263  #define PB4_WPORT		PORTB
 264  #define PB4_DDR			DDRB
 265  #define PB4_PWM			NULL
 266  
 267  #undef PB5
 268  #define PB5_PIN			PINB5
 269  #define PB5_RPORT		PINB
 270  #define PB5_WPORT		PORTB
 271  #define PB5_DDR			DDRB
 272  #define PB5_PWM			NULL
 273  
 274  #undef PB6
 275  #define PB6_PIN			PINB6
 276  #define PB6_RPORT		PINB
 277  #define PB6_WPORT		PORTB
 278  #define PB6_DDR			DDRB
 279  #define PB6_PWM			NULL
 280  
 281  #undef PB7
 282  #define PB7_PIN			PINB7
 283  #define PB7_RPORT		PINB
 284  #define PB7_WPORT		PORTB
 285  #define PB7_DDR			DDRB
 286  #define PB7_PWM			NULL
 287  
 288  
 289  #undef PC0
 290  #define PC0_PIN			PINC0
 291  #define PC0_RPORT		PINC
 292  #define PC0_WPORT		PORTC
 293  #define PC0_DDR			DDRC
 294  #define PC0_PWM			NULL
 295  
 296  #undef PC1
 297  #define PC1_PIN			PINC1
 298  #define PC1_RPORT		PINC
 299  #define PC1_WPORT		PORTC
 300  #define PC1_DDR			DDRC
 301  #define PC1_PWM			NULL
 302  
 303  #undef PC2
 304  #define PC2_PIN			PINC2
 305  #define PC2_RPORT		PINC
 306  #define PC2_WPORT		PORTC
 307  #define PC2_DDR			DDRC
 308  #define PC2_PWM			NULL
 309  
 310  #undef PC3
 311  #define PC3_PIN			PINC3
 312  #define PC3_RPORT		PINC
 313  #define PC3_WPORT		PORTC
 314  #define PC3_DDR			DDRC
 315  #define PC3_PWM			NULL
 316  
 317  #undef PC4
 318  #define PC4_PIN			PINC4
 319  #define PC4_RPORT		PINC
 320  #define PC4_WPORT		PORTC
 321  #define PC4_DDR			DDRC
 322  #define PC4_PWM			NULL
 323  
 324  #undef PC5
 325  #define PC5_PIN			PINC5
 326  #define PC5_RPORT		PINC
 327  #define PC5_WPORT		PORTC
 328  #define PC5_DDR			DDRC
 329  #define PC5_PWM			NULL
 330  
 331  #undef PC6
 332  #define PC6_PIN			PINC6
 333  #define PC6_RPORT		PINC
 334  #define PC6_WPORT		PORTC
 335  #define PC6_DDR			DDRC
 336  #define PC6_PWM			NULL
 337  
 338  #undef PC7
 339  #define PC7_PIN			PINC7
 340  #define PC7_RPORT		PINC
 341  #define PC7_WPORT		PORTC
 342  #define PC7_DDR			DDRC
 343  #define PC7_PWM			NULL
 344  
 345  
 346  #undef PD0
 347  #define PD0_PIN			PIND0
 348  #define PD0_RPORT		PIND
 349  #define PD0_WPORT		PORTD
 350  #define PD0_DDR			DDRD
 351  #define PD0_PWM			NULL
 352  
 353  #undef PD1
 354  #define PD1_PIN			PIND1
 355  #define PD1_RPORT		PIND
 356  #define PD1_WPORT		PORTD
 357  #define PD1_DDR			DDRD
 358  #define PD1_PWM			NULL
 359  
 360  #undef PD2
 361  #define PD2_PIN			PIND2
 362  #define PD2_RPORT		PIND
 363  #define PD2_WPORT		PORTD
 364  #define PD2_DDR			DDRD
 365  #define PD2_PWM			NULL
 366  
 367  #undef PD3
 368  #define PD3_PIN			PIND3
 369  #define PD3_RPORT		PIND
 370  #define PD3_WPORT		PORTD
 371  #define PD3_DDR			DDRD
 372  #define PD3_PWM			&OCR2B
 373  
 374  #undef PD4
 375  #define PD4_PIN			PIND4
 376  #define PD4_RPORT		PIND
 377  #define PD4_WPORT		PORTD
 378  #define PD4_DDR			DDRD
 379  #define PD4_PWM			NULL
 380  
 381  #undef PD5
 382  #define PD5_PIN			PIND5
 383  #define PD5_RPORT		PIND
 384  #define PD5_WPORT		PORTD
 385  #define PD5_DDR			DDRD
 386  #define PD5_PWM			&OCR0B
 387  
 388  #undef PD6
 389  #define PD6_PIN			PIND6
 390  #define PD6_RPORT		PIND
 391  #define PD6_WPORT		PORTD
 392  #define PD6_DDR			DDRD
 393  #define PD6_PWM			&OCR0A
 394  
 395  #undef PD7
 396  #define PD7_PIN			PIND7
 397  #define PD7_RPORT		PIND
 398  #define PD7_WPORT		PORTD
 399  #define PD7_DDR			DDRD
 400  #define PD7_PWM			NULL
 401  #endif	/*	_AVR_ATmega{168,328,328P}__ */
 402  
 403  #if defined (__AVR_ATmega644__) || defined (__AVR_ATmega644P__) || defined (__AVR_ATmega644PA__) || defined (__AVR_ATmega1284P__)
 404  // UART
 405  #define	RXD					DIO8
 406  #define	TXD					DIO9
 407  #define	RXD0				DIO8
 408  #define	TXD0				DIO9
 409  
 410  #define	RXD1				DIO10
 411  #define	TXD1				DIO11
 412  
 413  // SPI
 414  #define	SCK					DIO7
 415  #define	MISO				DIO6
 416  #define	MOSI				DIO5
 417  #define	SS					DIO4
 418  
 419  // TWI (I2C)
 420  #define	SCL					DIO16
 421  #define	SDA					DIO17
 422  
 423  // timers and PWM
 424  #define	OC0A				DIO3
 425  #define	OC0B				DIO4
 426  #define	OC1A				DIO13
 427  #define	OC1B				DIO12
 428  #define	OC2A				DIO15
 429  #define	OC2B				DIO14
 430  
 431  #define	DEBUG_LED		DIO0
 432  /*
 433  pins
 434  */
 435  
 436  #define DIO0_PIN		PINB0
 437  #define DIO0_RPORT	PINB
 438  #define DIO0_WPORT	PORTB
 439  #define DIO0_DDR		DDRB
 440  #define DIO0_PWM		NULL
 441  
 442  #define DIO1_PIN		PINB1
 443  #define DIO1_RPORT	PINB
 444  #define DIO1_WPORT	PORTB
 445  #define DIO1_DDR		DDRB
 446  #define DIO1_PWM		NULL
 447  
 448  #define DIO2_PIN		PINB2
 449  #define DIO2_RPORT	PINB
 450  #define DIO2_WPORT	PORTB
 451  #define DIO2_DDR		DDRB
 452  #define DIO2_PWM		NULL
 453  
 454  #define DIO3_PIN		PINB3
 455  #define DIO3_RPORT	PINB
 456  #define DIO3_WPORT	PORTB
 457  #define DIO3_DDR		DDRB
 458  #define DIO3_PWM		&OCR0A
 459  
 460  #define DIO4_PIN		PINB4
 461  #define DIO4_RPORT	PINB
 462  #define DIO4_WPORT	PORTB
 463  #define DIO4_DDR		DDRB
 464  #define DIO4_PWM		&OCR0B
 465  
 466  #define DIO5_PIN		PINB5
 467  #define DIO5_RPORT	PINB
 468  #define DIO5_WPORT	PORTB
 469  #define DIO5_DDR		DDRB
 470  #define DIO5_PWM		NULL
 471  
 472  #define DIO6_PIN		PINB6
 473  #define DIO6_RPORT	PINB
 474  #define DIO6_WPORT	PORTB
 475  #define DIO6_DDR		DDRB
 476  #define DIO6_PWM		NULL
 477  
 478  #define DIO7_PIN		PINB7
 479  #define DIO7_RPORT	PINB
 480  #define DIO7_WPORT	PORTB
 481  #define DIO7_DDR		DDRB
 482  #define DIO7_PWM		NULL
 483  
 484  #define DIO8_PIN		PIND0
 485  #define DIO8_RPORT	PIND
 486  #define DIO8_WPORT	PORTD
 487  #define DIO8_DDR		DDRD
 488  #define DIO8_PWM		NULL
 489  
 490  #define DIO9_PIN		PIND1
 491  #define DIO9_RPORT	PIND
 492  #define DIO9_WPORT	PORTD
 493  #define DIO9_DDR		DDRD
 494  #define DIO9_PWM		NULL
 495  
 496  #define DIO10_PIN		PIND2
 497  #define DIO10_RPORT	PIND
 498  #define DIO10_WPORT	PORTD
 499  #define DIO10_DDR		DDRD
 500  #define DIO10_PWM		NULL
 501  
 502  #define DIO11_PIN		PIND3
 503  #define DIO11_RPORT	PIND
 504  #define DIO11_WPORT	PORTD
 505  #define DIO11_DDR		DDRD
 506  #define DIO11_PWM		NULL
 507  
 508  #define DIO12_PIN		PIND4
 509  #define DIO12_RPORT	PIND
 510  #define DIO12_WPORT	PORTD
 511  #define DIO12_DDR		DDRD
 512  #define DIO12_PWM		NULL
 513  
 514  #define DIO13_PIN		PIND5
 515  #define DIO13_RPORT	PIND
 516  #define DIO13_WPORT	PORTD
 517  #define DIO13_DDR		DDRD
 518  #define DIO13_PWM		NULL
 519  
 520  #define DIO14_PIN		PIND6
 521  #define DIO14_RPORT	PIND
 522  #define DIO14_WPORT	PORTD
 523  #define DIO14_DDR		DDRD
 524  #define DIO14_PWM		&OCR2B
 525  
 526  #define DIO15_PIN		PIND7
 527  #define DIO15_RPORT	PIND
 528  #define DIO15_WPORT	PORTD
 529  #define DIO15_DDR		DDRD
 530  #define DIO15_PWM		&OCR2A
 531  
 532  #define DIO16_PIN		PINC0
 533  #define DIO16_RPORT	PINC
 534  #define DIO16_WPORT	PORTC
 535  #define DIO16_DDR		DDRC
 536  #define DIO16_PWM		NULL
 537  
 538  #define DIO17_PIN		PINC1
 539  #define DIO17_RPORT	PINC
 540  #define DIO17_WPORT	PORTC
 541  #define DIO17_DDR		DDRC
 542  #define DIO17_PWM		NULL
 543  
 544  #define DIO18_PIN		PINC2
 545  #define DIO18_RPORT	PINC
 546  #define DIO18_WPORT	PORTC
 547  #define DIO18_DDR		DDRC
 548  #define DIO18_PWM		NULL
 549  
 550  #define DIO19_PIN		PINC3
 551  #define DIO19_RPORT	PINC
 552  #define DIO19_WPORT	PORTC
 553  #define DIO19_DDR		DDRC
 554  #define DIO19_PWM		NULL
 555  
 556  #define DIO20_PIN		PINC4
 557  #define DIO20_RPORT	PINC
 558  #define DIO20_WPORT	PORTC
 559  #define DIO20_DDR		DDRC
 560  #define DIO20_PWM		NULL
 561  
 562  #define DIO21_PIN		PINC5
 563  #define DIO21_RPORT	PINC
 564  #define DIO21_WPORT	PORTC
 565  #define DIO21_DDR		DDRC
 566  #define DIO21_PWM		NULL
 567  
 568  #define DIO22_PIN		PINC6
 569  #define DIO22_RPORT	PINC
 570  #define DIO22_WPORT	PORTC
 571  #define DIO22_DDR		DDRC
 572  #define DIO22_PWM		NULL
 573  
 574  #define DIO23_PIN		PINC7
 575  #define DIO23_RPORT	PINC
 576  #define DIO23_WPORT	PORTC
 577  #define DIO23_DDR		DDRC
 578  #define DIO23_PWM		NULL
 579  
 580  #define DIO24_PIN		PINA7
 581  #define DIO24_RPORT	PINA
 582  #define DIO24_WPORT	PORTA
 583  #define DIO24_DDR		DDRA
 584  #define DIO24_PWM		NULL
 585  
 586  #define DIO25_PIN		PINA6
 587  #define DIO25_RPORT	PINA
 588  #define DIO25_WPORT	PORTA
 589  #define DIO25_DDR		DDRA
 590  #define DIO25_PWM		NULL
 591  
 592  #define DIO26_PIN		PINA5
 593  #define DIO26_RPORT	PINA
 594  #define DIO26_WPORT	PORTA
 595  #define DIO26_DDR		DDRA
 596  #define DIO26_PWM		NULL
 597  
 598  #define DIO27_PIN		PINA4
 599  #define DIO27_RPORT	PINA
 600  #define DIO27_WPORT	PORTA
 601  #define DIO27_DDR		DDRA
 602  #define DIO27_PWM		NULL
 603  
 604  #define DIO28_PIN		PINA3
 605  #define DIO28_RPORT	PINA
 606  #define DIO28_WPORT	PORTA
 607  #define DIO28_DDR		DDRA
 608  #define DIO28_PWM		NULL
 609  
 610  #define DIO29_PIN		PINA2
 611  #define DIO29_RPORT	PINA
 612  #define DIO29_WPORT	PORTA
 613  #define DIO29_DDR		DDRA
 614  #define DIO29_PWM		NULL
 615  
 616  #define DIO30_PIN		PINA1
 617  #define DIO30_RPORT	PINA
 618  #define DIO30_WPORT	PORTA
 619  #define DIO30_DDR		DDRA
 620  #define DIO30_PWM		NULL
 621  
 622  #define DIO31_PIN		PINA0
 623  #define DIO31_RPORT	PINA
 624  #define DIO31_WPORT	PORTA
 625  #define DIO31_DDR		DDRA
 626  #define DIO31_PWM		NULL
 627  
 628  #define AIO0_PIN		PINA0
 629  #define AIO0_RPORT	PINA
 630  #define AIO0_WPORT	PORTA
 631  #define AIO0_DDR		DDRA
 632  #define AIO0_PWM		NULL
 633  
 634  #define AIO1_PIN		PINA1
 635  #define AIO1_RPORT	PINA
 636  #define AIO1_WPORT	PORTA
 637  #define AIO1_DDR		DDRA
 638  #define AIO1_PWM		NULL
 639  
 640  #define AIO2_PIN		PINA2
 641  #define AIO2_RPORT	PINA
 642  #define AIO2_WPORT	PORTA
 643  #define AIO2_DDR		DDRA
 644  #define AIO2_PWM		NULL
 645  
 646  #define AIO3_PIN		PINA3
 647  #define AIO3_RPORT	PINA
 648  #define AIO3_WPORT	PORTA
 649  #define AIO3_DDR		DDRA
 650  #define AIO3_PWM		NULL
 651  
 652  #define AIO4_PIN		PINA4
 653  #define AIO4_RPORT	PINA
 654  #define AIO4_WPORT	PORTA
 655  #define AIO4_DDR		DDRA
 656  #define AIO4_PWM		NULL
 657  
 658  #define AIO5_PIN		PINA5
 659  #define AIO5_RPORT	PINA
 660  #define AIO5_WPORT	PORTA
 661  #define AIO5_DDR		DDRA
 662  #define AIO5_PWM		NULL
 663  
 664  #define AIO6_PIN		PINA6
 665  #define AIO6_RPORT	PINA
 666  #define AIO6_WPORT	PORTA
 667  #define AIO6_DDR		DDRA
 668  #define AIO6_PWM		NULL
 669  
 670  #define AIO7_PIN		PINA7
 671  #define AIO7_RPORT	PINA
 672  #define AIO7_WPORT	PORTA
 673  #define AIO7_DDR		DDRA
 674  #define AIO7_PWM		NULL
 675  
 676  
 677  
 678  #undef PA0
 679  #define PA0_PIN			PINA0
 680  #define PA0_RPORT		PINA
 681  #define PA0_WPORT		PORTA
 682  #define PA0_DDR			DDRA
 683  #define PA0_PWM			NULL
 684  
 685  #undef PA1
 686  #define PA1_PIN			PINA1
 687  #define PA1_RPORT		PINA
 688  #define PA1_WPORT		PORTA
 689  #define PA1_DDR			DDRA
 690  #define PA1_PWM			NULL
 691  
 692  #undef PA2
 693  #define PA2_PIN			PINA2
 694  #define PA2_RPORT		PINA
 695  #define PA2_WPORT		PORTA
 696  #define PA2_DDR			DDRA
 697  #define PA2_PWM			NULL
 698  
 699  #undef PA3
 700  #define PA3_PIN			PINA3
 701  #define PA3_RPORT		PINA
 702  #define PA3_WPORT		PORTA
 703  #define PA3_DDR			DDRA
 704  #define PA3_PWM			NULL
 705  
 706  #undef PA4
 707  #define PA4_PIN			PINA4
 708  #define PA4_RPORT		PINA
 709  #define PA4_WPORT		PORTA
 710  #define PA4_DDR			DDRA
 711  #define PA4_PWM			NULL
 712  
 713  #undef PA5
 714  #define PA5_PIN			PINA5
 715  #define PA5_RPORT		PINA
 716  #define PA5_WPORT		PORTA
 717  #define PA5_DDR			DDRA
 718  #define PA5_PWM			NULL
 719  
 720  #undef PA6
 721  #define PA6_PIN			PINA6
 722  #define PA6_RPORT		PINA
 723  #define PA6_WPORT		PORTA
 724  #define PA6_DDR			DDRA
 725  #define PA6_PWM			NULL
 726  
 727  #undef PA7
 728  #define PA7_PIN			PINA7
 729  #define PA7_RPORT		PINA
 730  #define PA7_WPORT		PORTA
 731  #define PA7_DDR			DDRA
 732  #define PA7_PWM			NULL
 733  
 734  
 735  #undef PB0
 736  #define PB0_PIN			PINB0
 737  #define PB0_RPORT		PINB
 738  #define PB0_WPORT		PORTB
 739  #define PB0_DDR			DDRB
 740  #define PB0_PWM			NULL
 741  
 742  #undef PB1
 743  #define PB1_PIN			PINB1
 744  #define PB1_RPORT		PINB
 745  #define PB1_WPORT		PORTB
 746  #define PB1_DDR			DDRB
 747  #define PB1_PWM			NULL
 748  
 749  #undef PB2
 750  #define PB2_PIN			PINB2
 751  #define PB2_RPORT		PINB
 752  #define PB2_WPORT		PORTB
 753  #define PB2_DDR			DDRB
 754  #define PB2_PWM			NULL
 755  
 756  #undef PB3
 757  #define PB3_PIN			PINB3
 758  #define PB3_RPORT		PINB
 759  #define PB3_WPORT		PORTB
 760  #define PB3_DDR			DDRB
 761  #define PB3_PWM			&OCR0A
 762  
 763  #undef PB4
 764  #define PB4_PIN			PINB4
 765  #define PB4_RPORT		PINB
 766  #define PB4_WPORT		PORTB
 767  #define PB4_DDR			DDRB
 768  #define PB4_PWM			&OCR0B
 769  
 770  #undef PB5
 771  #define PB5_PIN			PINB5
 772  #define PB5_RPORT		PINB
 773  #define PB5_WPORT		PORTB
 774  #define PB5_DDR			DDRB
 775  #define PB5_PWM			NULL
 776  
 777  #undef PB6
 778  #define PB6_PIN			PINB6
 779  #define PB6_RPORT		PINB
 780  #define PB6_WPORT		PORTB
 781  #define PB6_DDR			DDRB
 782  #define PB6_PWM			NULL
 783  
 784  #undef PB7
 785  #define PB7_PIN			PINB7
 786  #define PB7_RPORT		PINB
 787  #define PB7_WPORT		PORTB
 788  #define PB7_DDR			DDRB
 789  #define PB7_PWM			NULL
 790  
 791  
 792  #undef PC0
 793  #define PC0_PIN			PINC0
 794  #define PC0_RPORT		PINC
 795  #define PC0_WPORT		PORTC
 796  #define PC0_DDR			DDRC
 797  #define PC0_PWM			NULL
 798  
 799  #undef PC1
 800  #define PC1_PIN			PINC1
 801  #define PC1_RPORT		PINC
 802  #define PC1_WPORT		PORTC
 803  #define PC1_DDR			DDRC
 804  #define PC1_PWM			NULL
 805  
 806  #undef PC2
 807  #define PC2_PIN			PINC2
 808  #define PC2_RPORT		PINC
 809  #define PC2_WPORT		PORTC
 810  #define PC2_DDR			DDRC
 811  #define PC2_PWM			NULL
 812  
 813  #undef PC3
 814  #define PC3_PIN			PINC3
 815  #define PC3_RPORT		PINC
 816  #define PC3_WPORT		PORTC
 817  #define PC3_DDR			DDRC
 818  #define PC3_PWM			NULL
 819  
 820  #undef PC4
 821  #define PC4_PIN			PINC4
 822  #define PC4_RPORT		PINC
 823  #define PC4_WPORT		PORTC
 824  #define PC4_DDR			DDRC
 825  #define PC4_PWM			NULL
 826  
 827  #undef PC5
 828  #define PC5_PIN			PINC5
 829  #define PC5_RPORT		PINC
 830  #define PC5_WPORT		PORTC
 831  #define PC5_DDR			DDRC
 832  #define PC5_PWM			NULL
 833  
 834  #undef PC6
 835  #define PC6_PIN			PINC6
 836  #define PC6_RPORT		PINC
 837  #define PC6_WPORT		PORTC
 838  #define PC6_DDR			DDRC
 839  #define PC6_PWM			NULL
 840  
 841  #undef PC7
 842  #define PC7_PIN			PINC7
 843  #define PC7_RPORT		PINC
 844  #define PC7_WPORT		PORTC
 845  #define PC7_DDR			DDRC
 846  #define PC7_PWM			NULL
 847  
 848  
 849  #undef PD0
 850  #define PD0_PIN			PIND0
 851  #define PD0_RPORT		PIND
 852  #define PD0_WPORT		PORTD
 853  #define PD0_DDR			DDRD
 854  #define PD0_PWM			NULL
 855  
 856  #undef PD1
 857  #define PD1_PIN			PIND1
 858  #define PD1_RPORT		PIND
 859  #define PD1_WPORT		PORTD
 860  #define PD1_DDR			DDRD
 861  #define PD1_PWM			NULL
 862  
 863  #undef PD2
 864  #define PD2_PIN			PIND2
 865  #define PD2_RPORT		PIND
 866  #define PD2_WPORT		PORTD
 867  #define PD2_DDR			DDRD
 868  #define PD2_PWM			NULL
 869  
 870  #undef PD3
 871  #define PD3_PIN			PIND3
 872  #define PD3_RPORT		PIND
 873  #define PD3_WPORT		PORTD
 874  #define PD3_DDR			DDRD
 875  #define PD3_PWM			NULL
 876  
 877  #undef PD4
 878  #define PD4_PIN			PIND4
 879  #define PD4_RPORT		PIND
 880  #define PD4_WPORT		PORTD
 881  #define PD4_DDR			DDRD
 882  #define PD4_PWM			NULL
 883  
 884  #undef PD5
 885  #define PD5_PIN			PIND5
 886  #define PD5_RPORT		PIND
 887  #define PD5_WPORT		PORTD
 888  #define PD5_DDR			DDRD
 889  #define PD5_PWM			NULL
 890  
 891  #undef PD6
 892  #define PD6_PIN			PIND6
 893  #define PD6_RPORT		PIND
 894  #define PD6_WPORT		PORTD
 895  #define PD6_DDR			DDRD
 896  #define PD6_PWM			&OCR2B
 897  
 898  #undef PD7
 899  #define PD7_PIN			PIND7
 900  #define PD7_RPORT		PIND
 901  #define PD7_WPORT		PORTD
 902  #define PD7_DDR			DDRD
 903  #define PD7_PWM			&OCR2A
 904  #endif	/*	_AVR_ATmega{644,644P,644PA}__ */
 905  
 906  #if defined (__AVR_ATmega1280__) || defined (__AVR_ATmega2560__)
 907  // UART
 908  #define	RXD					DIO0
 909  #define	TXD					DIO1
 910  
 911  // SPI
 912  #define	SCK					DIO52
 913  #define	MISO				DIO50
 914  #define	MOSI				DIO51
 915  #define	SS					DIO53
 916  
 917  // TWI (I2C)
 918  #define	SCL					DIO21
 919  #define	SDA					DIO20
 920  
 921  // timers and PWM
 922  #define	OC0A				DIO13
 923  #define	OC0B				DIO4
 924  #define	OC1A				DIO11
 925  #define	OC1B				DIO12
 926  #define	OC2A				DIO10
 927  #define	OC2B				DIO9
 928  #define	OC3A				DIO5
 929  #define	OC3B				DIO2
 930  #define	OC3C				DIO3
 931  #define	OC4A				DIO6
 932  #define	OC4B				DIO7
 933  #define	OC4C				DIO8
 934  #define	OC5A				DIO46
 935  #define	OC5B				DIO45
 936  #define	OC5C				DIO44
 937  
 938  // change for your board
 939  #if MOTHERBOARD == 12
 940  #define	DEBUG_LED		DIO22
 941  #else
 942  #define	DEBUG_LED		DIO21
 943  #endif
 944  /*
 945  pins
 946  */
 947  #define	DIO0_PIN		PINE0
 948  #define	DIO0_RPORT	PINE
 949  #define	DIO0_WPORT	PORTE
 950  #define	DIO0_DDR		DDRE
 951  #define DIO0_PWM		NULL
 952  
 953  #define	DIO1_PIN		PINE1
 954  #define	DIO1_RPORT	PINE
 955  #define	DIO1_WPORT	PORTE
 956  #define	DIO1_DDR		DDRE
 957  #define DIO1_PWM		NULL
 958  
 959  #define	DIO2_PIN		PINE4
 960  #define	DIO2_RPORT	PINE
 961  #define	DIO2_WPORT	PORTE
 962  #define	DIO2_DDR		DDRE
 963  #define DIO2_PWM		&OCR3BL
 964  
 965  #define	DIO3_PIN		PINE5
 966  #define	DIO3_RPORT	PINE
 967  #define	DIO3_WPORT	PORTE
 968  #define	DIO3_DDR		DDRE
 969  #define DIO3_PWM		&OCR3CL
 970  
 971  #define	DIO4_PIN		PING5
 972  #define	DIO4_RPORT	PING
 973  #define	DIO4_WPORT	PORTG
 974  #define	DIO4_DDR		DDRG
 975  #define DIO4_PWM		&OCR0B
 976  
 977  #define	DIO5_PIN		PINE3
 978  #define	DIO5_RPORT	PINE
 979  #define	DIO5_WPORT	PORTE
 980  #define	DIO5_DDR		DDRE
 981  #define DIO5_PWM		&OCR3AL
 982  
 983  #define	DIO6_PIN		PINH3
 984  #define	DIO6_RPORT	PINH
 985  #define	DIO6_WPORT	PORTH
 986  #define	DIO6_DDR		DDRH
 987  #define DIO6_PWM		&OCR4AL
 988  
 989  #define	DIO7_PIN		PINH4
 990  #define	DIO7_RPORT	PINH
 991  #define	DIO7_WPORT	PORTH
 992  #define	DIO7_DDR		DDRH
 993  #define DIO7_PWM		&OCR4BL
 994  
 995  #define	DIO8_PIN		PINH5
 996  #define	DIO8_RPORT	PINH
 997  #define	DIO8_WPORT	PORTH
 998  #define	DIO8_DDR		DDRH
 999  #define DIO8_PWM		&OCR4CL
1000  
1001  #define	DIO9_PIN		PINH6
1002  #define	DIO9_RPORT	PINH
1003  #define	DIO9_WPORT	PORTH
1004  #define	DIO9_DDR		DDRH
1005  #define DIO9_PWM		&OCR2B
1006  
1007  #define	DIO10_PIN		PINB4
1008  #define	DIO10_RPORT	PINB
1009  #define	DIO10_WPORT	PORTB
1010  #define	DIO10_DDR		DDRB
1011  #define DIO10_PWM		&OCR2A
1012  
1013  #define	DIO11_PIN		PINB5
1014  #define	DIO11_RPORT	PINB
1015  #define	DIO11_WPORT	PORTB
1016  #define	DIO11_DDR		DDRB
1017  #define DIO11_PWM		NULL
1018  
1019  #define	DIO12_PIN		PINB6
1020  #define	DIO12_RPORT	PINB
1021  #define	DIO12_WPORT	PORTB
1022  #define	DIO12_DDR		DDRB
1023  #define DIO12_PWM		NULL
1024  
1025  #define	DIO13_PIN		PINB7
1026  #define	DIO13_RPORT	PINB
1027  #define	DIO13_WPORT	PORTB
1028  #define	DIO13_DDR		DDRB
1029  #define DIO13_PWM		&OCR0A
1030  
1031  #define	DIO14_PIN		PINJ1
1032  #define	DIO14_RPORT	PINJ
1033  #define	DIO14_WPORT	PORTJ
1034  #define	DIO14_DDR		DDRJ
1035  #define DIO14_PWM		NULL
1036  
1037  #define	DIO15_PIN		PINJ0
1038  #define	DIO15_RPORT	PINJ
1039  #define	DIO15_WPORT	PORTJ
1040  #define	DIO15_DDR		DDRJ
1041  #define DIO15_PWM		NULL
1042  
1043  #define	DIO16_PIN		PINH1
1044  #define	DIO16_RPORT	PINH
1045  #define	DIO16_WPORT	PORTH
1046  #define	DIO16_DDR		DDRH
1047  #define DIO16_PWM		NULL
1048  
1049  #define	DIO17_PIN		PINH0
1050  #define	DIO17_RPORT	PINH
1051  #define	DIO17_WPORT	PORTH
1052  #define	DIO17_DDR		DDRH
1053  #define DIO17_PWM		NULL
1054  
1055  #define	DIO18_PIN		PIND3
1056  #define	DIO18_RPORT	PIND
1057  #define	DIO18_WPORT	PORTD
1058  #define	DIO18_DDR		DDRD
1059  #define DIO18_PWM		NULL
1060  
1061  #define	DIO19_PIN		PIND2
1062  #define	DIO19_RPORT	PIND
1063  #define	DIO19_WPORT	PORTD
1064  #define	DIO19_DDR		DDRD
1065  #define DIO19_PWM		NULL
1066  
1067  #define	DIO20_PIN		PIND1
1068  #define	DIO20_RPORT	PIND
1069  #define	DIO20_WPORT	PORTD
1070  #define	DIO20_DDR		DDRD
1071  #define DIO20_PWM		NULL
1072  
1073  #define	DIO21_PIN		PIND0
1074  #define	DIO21_RPORT	PIND
1075  #define	DIO21_WPORT	PORTD
1076  #define	DIO21_DDR		DDRD
1077  #define DIO21_PWM		NULL
1078  
1079  #define	DIO22_PIN		PINA0
1080  #define	DIO22_RPORT	PINA
1081  #define	DIO22_WPORT	PORTA
1082  #define	DIO22_DDR		DDRA
1083  #define DIO22_PWM		NULL
1084  
1085  #define	DIO23_PIN		PINA1
1086  #define	DIO23_RPORT	PINA
1087  #define	DIO23_WPORT	PORTA
1088  #define	DIO23_DDR		DDRA
1089  #define DIO23_PWM		NULL
1090  
1091  #define	DIO24_PIN		PINA2
1092  #define	DIO24_RPORT	PINA
1093  #define	DIO24_WPORT	PORTA
1094  #define	DIO24_DDR		DDRA
1095  #define DIO24_PWM		NULL
1096  
1097  #define	DIO25_PIN		PINA3
1098  #define	DIO25_RPORT	PINA
1099  #define	DIO25_WPORT	PORTA
1100  #define	DIO25_DDR		DDRA
1101  #define DIO25_PWM		NULL
1102  
1103  #define	DIO26_PIN		PINA4
1104  #define	DIO26_RPORT	PINA
1105  #define	DIO26_WPORT	PORTA
1106  #define	DIO26_DDR		DDRA
1107  #define DIO26_PWM		NULL
1108  
1109  #define	DIO27_PIN		PINA5
1110  #define	DIO27_RPORT	PINA
1111  #define	DIO27_WPORT	PORTA
1112  #define	DIO27_DDR		DDRA
1113  #define DIO27_PWM		NULL
1114  
1115  #define	DIO28_PIN		PINA6
1116  #define	DIO28_RPORT	PINA
1117  #define	DIO28_WPORT	PORTA
1118  #define	DIO28_DDR		DDRA
1119  #define DIO28_PWM		NULL
1120  
1121  #define	DIO29_PIN		PINA7
1122  #define	DIO29_RPORT	PINA
1123  #define	DIO29_WPORT	PORTA
1124  #define	DIO29_DDR		DDRA
1125  #define DIO29_PWM		NULL
1126  
1127  #define	DIO30_PIN		PINC7
1128  #define	DIO30_RPORT	PINC
1129  #define	DIO30_WPORT	PORTC
1130  #define	DIO30_DDR		DDRC
1131  #define DIO30_PWM		NULL
1132  
1133  #define	DIO31_PIN		PINC6
1134  #define	DIO31_RPORT	PINC
1135  #define	DIO31_WPORT	PORTC
1136  #define	DIO31_DDR		DDRC
1137  #define DIO31_PWM		NULL
1138  
1139  #define	DIO32_PIN		PINC5
1140  #define	DIO32_RPORT	PINC
1141  #define	DIO32_WPORT	PORTC
1142  #define	DIO32_DDR		DDRC
1143  #define DIO32_PWM		NULL
1144  
1145  #define	DIO33_PIN		PINC4
1146  #define	DIO33_RPORT	PINC
1147  #define	DIO33_WPORT	PORTC
1148  #define	DIO33_DDR		DDRC
1149  #define DIO33_PWM		NULL
1150  
1151  #define	DIO34_PIN		PINC3
1152  #define	DIO34_RPORT	PINC
1153  #define	DIO34_WPORT	PORTC
1154  #define	DIO34_DDR		DDRC
1155  #define DIO34_PWM		NULL
1156  
1157  #define	DIO35_PIN		PINC2
1158  #define	DIO35_RPORT	PINC
1159  #define	DIO35_WPORT	PORTC
1160  #define	DIO35_DDR		DDRC
1161  #define DIO35_PWM		NULL
1162  
1163  #define	DIO36_PIN		PINC1
1164  #define	DIO36_RPORT	PINC
1165  #define	DIO36_WPORT	PORTC
1166  #define	DIO36_DDR		DDRC
1167  #define DIO36_PWM		NULL
1168  
1169  #define	DIO37_PIN		PINC0
1170  #define	DIO37_RPORT	PINC
1171  #define	DIO37_WPORT	PORTC
1172  #define	DIO37_DDR		DDRC
1173  #define DIO37_PWM		NULL
1174  
1175  #define	DIO38_PIN		PIND7
1176  #define	DIO38_RPORT	PIND
1177  #define	DIO38_WPORT	PORTD
1178  #define	DIO38_DDR		DDRD
1179  #define DIO38_PWM		NULL
1180  
1181  #define	DIO39_PIN		PING2
1182  #define	DIO39_RPORT	PING
1183  #define	DIO39_WPORT	PORTG
1184  #define	DIO39_DDR		DDRG
1185  #define DIO39_PWM		NULL
1186  
1187  #define	DIO40_PIN		PING1
1188  #define	DIO40_RPORT	PING
1189  #define	DIO40_WPORT	PORTG
1190  #define	DIO40_DDR		DDRG
1191  #define DIO40_PWM		NULL
1192  
1193  #define	DIO41_PIN		PING0
1194  #define	DIO41_RPORT	PING
1195  #define	DIO41_WPORT	PORTG
1196  #define	DIO41_DDR		DDRG
1197  #define DIO41_PWM		NULL
1198  
1199  #define	DIO42_PIN		PINL7
1200  #define	DIO42_RPORT	PINL
1201  #define	DIO42_WPORT	PORTL
1202  #define	DIO42_DDR		DDRL
1203  #define DIO42_PWM		NULL
1204  
1205  #define	DIO43_PIN		PINL6
1206  #define	DIO43_RPORT	PINL
1207  #define	DIO43_WPORT	PORTL
1208  #define	DIO43_DDR		DDRL
1209  #define DIO43_PWM		NULL
1210  
1211  #define	DIO44_PIN		PINL5
1212  #define	DIO44_RPORT	PINL
1213  #define	DIO44_WPORT	PORTL
1214  #define	DIO44_DDR		DDRL
1215  #define DIO44_PWM		&OCR5CL
1216  
1217  #define	DIO45_PIN		PINL4
1218  #define	DIO45_RPORT	PINL
1219  #define	DIO45_WPORT	PORTL
1220  #define	DIO45_DDR		DDRL
1221  #define DIO45_PWM		&OCR5BL
1222  
1223  #define	DIO46_PIN		PINL3
1224  #define	DIO46_RPORT	PINL
1225  #define	DIO46_WPORT	PORTL
1226  #define	DIO46_DDR		DDRL
1227  #define DIO46_PWM		&OCR5AL
1228  
1229  #define	DIO47_PIN		PINL2
1230  #define	DIO47_RPORT	PINL
1231  #define	DIO47_WPORT	PORTL
1232  #define	DIO47_DDR		DDRL
1233  #define DIO47_PWM		NULL
1234  
1235  #define	DIO48_PIN		PINL1
1236  #define	DIO48_RPORT	PINL
1237  #define	DIO48_WPORT	PORTL
1238  #define	DIO48_DDR		DDRL
1239  #define DIO48_PWM		NULL
1240  
1241  #define	DIO49_PIN		PINL0
1242  #define	DIO49_RPORT	PINL
1243  #define	DIO49_WPORT	PORTL
1244  #define	DIO49_DDR		DDRL
1245  #define DIO49_PWM		NULL
1246  
1247  #define	DIO50_PIN		PINB3
1248  #define	DIO50_RPORT	PINB
1249  #define	DIO50_WPORT	PORTB
1250  #define	DIO50_DDR		DDRB
1251  #define DIO50_PWM		NULL
1252  
1253  #define	DIO51_PIN		PINB2
1254  #define	DIO51_RPORT	PINB
1255  #define	DIO51_WPORT	PORTB
1256  #define	DIO51_DDR		DDRB
1257  #define DIO51_PWM		NULL
1258  
1259  #define	DIO52_PIN		PINB1
1260  #define	DIO52_RPORT	PINB
1261  #define	DIO52_WPORT	PORTB
1262  #define	DIO52_DDR		DDRB
1263  #define DIO52_PWM		NULL
1264  
1265  #define	DIO53_PIN		PINB0
1266  #define	DIO53_RPORT	PINB
1267  #define	DIO53_WPORT	PORTB
1268  #define	DIO53_DDR		DDRB
1269  #define DIO53_PWM		NULL
1270  
1271  #define DIO54_PIN		PINF0
1272  #define DIO54_RPORT	PINF
1273  #define DIO54_WPORT	PORTF
1274  #define DIO54_DDR		DDRF
1275  #define DIO54_PWM		NULL
1276  
1277  #define DIO55_PIN		PINF1
1278  #define DIO55_RPORT	PINF
1279  #define DIO55_WPORT	PORTF
1280  #define DIO55_DDR		DDRF
1281  #define DIO55_PWM		NULL
1282  
1283  #define DIO56_PIN		PINF2
1284  #define DIO56_RPORT	PINF
1285  #define DIO56_WPORT	PORTF
1286  #define DIO56_DDR		DDRF
1287  #define DIO56_PWM		NULL
1288  
1289  #define DIO57_PIN		PINF3
1290  #define DIO57_RPORT	PINF
1291  #define DIO57_WPORT	PORTF
1292  #define DIO57_DDR		DDRF
1293  #define DIO57_PWM		NULL
1294  
1295  #define DIO58_PIN		PINF4
1296  #define DIO58_RPORT	PINF
1297  #define DIO58_WPORT	PORTF
1298  #define DIO58_DDR		DDRF
1299  #define DIO58_PWM		NULL
1300  
1301  #define DIO59_PIN		PINF5
1302  #define DIO59_RPORT	PINF
1303  #define DIO59_WPORT	PORTF
1304  #define DIO59_DDR		DDRF
1305  #define DIO59_PWM		NULL
1306  
1307  #define DIO60_PIN		PINF6
1308  #define DIO60_RPORT	PINF
1309  #define DIO60_WPORT	PORTF
1310  #define DIO60_DDR		DDRF
1311  #define DIO60_PWM		NULL
1312  
1313  #define DIO61_PIN		PINF7
1314  #define DIO61_RPORT	PINF
1315  #define DIO61_WPORT	PORTF
1316  #define DIO61_DDR		DDRF
1317  #define DIO61_PWM		NULL
1318  
1319  #define DIO62_PIN		PINK0
1320  #define DIO62_RPORT	PINK
1321  #define DIO62_WPORT	PORTK
1322  #define DIO62_DDR		DDRK
1323  #define DIO62_PWM		NULL
1324  
1325  #define DIO63_PIN		PINK1
1326  #define DIO63_RPORT	PINK
1327  #define DIO63_WPORT	PORTK
1328  #define DIO63_DDR		DDRK
1329  #define DIO63_PWM		NULL
1330  
1331  #define DIO64_PIN		PINK2
1332  #define DIO64_RPORT	PINK
1333  #define DIO64_WPORT	PORTK
1334  #define DIO64_DDR		DDRK
1335  #define DIO64_PWM		NULL
1336  
1337  #define DIO65_PIN		PINK3
1338  #define DIO65_RPORT	PINK
1339  #define DIO65_WPORT	PORTK
1340  #define DIO65_DDR		DDRK
1341  #define DIO65_PWM		NULL
1342  
1343  #define DIO66_PIN		PINK4
1344  #define DIO66_RPORT	PINK
1345  #define DIO66_WPORT	PORTK
1346  #define DIO66_DDR		DDRK
1347  #define DIO66_PWM		NULL
1348  
1349  #define DIO67_PIN		PINK5
1350  #define DIO67_RPORT	PINK
1351  #define DIO67_WPORT	PORTK
1352  #define DIO67_DDR		DDRK
1353  #define DIO67_PWM		NULL
1354  
1355  #define DIO68_PIN		PINK6
1356  #define DIO68_RPORT	PINK
1357  #define DIO68_WPORT	PORTK
1358  #define DIO68_DDR		DDRK
1359  #define DIO68_PWM		NULL
1360  
1361  #define DIO69_PIN		PINK7
1362  #define DIO69_RPORT	PINK
1363  #define DIO69_WPORT	PORTK
1364  #define DIO69_DDR		DDRK
1365  #define DIO69_PWM		NULL
1366  
1367  #if MOTHERBOARD == 12
1368  #define DIO80_PIN		PINJ2
1369  #define DIO80_RPORT		PINJ
1370  #define DIO80_WPORT		PORTJ
1371  #define DIO80_DDR		DDRJ
1372  #define DIO80_PWM		NULL
1373  
1374  #define DIO81_PIN		PINJ4
1375  #define DIO81_RPORT		PINJ
1376  #define DIO81_WPORT		PORTJ
1377  #define DIO81_DDR		DDRJ
1378  #define DIO81_PWM		NULL
1379  
1380  #define DIO82_PIN		PINJ5
1381  #define DIO82_RPORT		PINJ
1382  #define DIO82_WPORT		PORTJ
1383  #define DIO82_DDR		DDRJ
1384  #define DIO82_PWM		NULL
1385  
1386  #define DIO83_PIN		PINJ6
1387  #define DIO83_RPORT		PINJ
1388  #define DIO83_WPORT		PORTJ
1389  #define DIO83_DDR		DDRJ
1390  #define DIO83_PWM		NULL
1391  
1392  #define DIO84_PIN		PINJ7
1393  #define DIO84_RPORT		PINJ
1394  #define DIO84_WPORT		PORTJ
1395  #define DIO84_DDR		DDRJ
1396  #define DIO84_PWM		NULL
1397  
1398  #define DIO85_PIN		PINH7
1399  #define DIO85_RPORT		PINH
1400  #define DIO85_WPORT		PORTH
1401  #define DIO85_DDR		DDRH
1402  #define DIO85_PWM		NULL
1403  
1404  #define DIO86_PIN		PINH2
1405  #define DIO86_RPORT		PINH
1406  #define DIO86_WPORT		PORTH
1407  #define DIO86_DDR		DDRH
1408  #define DIO86_PWM		NULL
1409  
1410  #define DIO90_PIN		PINE7
1411  #define DIO90_RPORT		PINE
1412  #define DIO90_WPORT		PORTE
1413  #define DIO90_DDR		DDRE
1414  #define DIO90_PWM		NULL
1415  
1416  #define DIO91_PIN		PINE2
1417  #define DIO91_RPORT		PINE
1418  #define DIO91_WPORT		PORTE
1419  #define DIO91_DDR		DDRE
1420  #define DIO91_PWM		NULL
1421  
1422  #define DIO92_PIN		PIND4
1423  #define DIO92_RPORT		PIND
1424  #define DIO92_WPORT		PORTD
1425  #define DIO92_DDR		DDRD
1426  #define DIO92_PWM		NULL
1427  
1428  #define DIO93_PIN		PIND5
1429  #define DIO93_RPORT		PIND
1430  #define DIO93_WPORT		PORTD
1431  #define DIO93_DDR		DDRD
1432  #define DIO93_PWM		NULL
1433  
1434  #define DIO94_PIN		PIND6
1435  #define DIO94_RPORT		PIND
1436  #define DIO94_WPORT		PORTD
1437  #define DIO94_DDR		DDRD
1438  #define DIO94_PWM		NULL
1439  
1440  #else
1441  
1442  
1443  #define DIO70_PIN       PING4
1444  #define DIO70_RPORT     PING
1445  #define DIO70_WPORT     PORTG
1446  #define DIO70_DDR       DDRG
1447  #define DIO70_PWM       NULL
1448  #define DIO71_PIN       PING3
1449  #define DIO71_RPORT     PING
1450  #define DIO71_WPORT     PORTG
1451  #define DIO71_DDR       DDRG
1452  #define DIO71_PWM       NULL
1453  #define DIO72_PIN       PINJ2
1454  #define DIO72_RPORT     PINJ
1455  #define DIO72_WPORT     PORTJ
1456  #define DIO72_DDR       DDRJ
1457  #define DIO72_PWM       NULL
1458  #define DIO73_PIN       PINJ3
1459  #define DIO73_RPORT     PINJ
1460  #define DIO73_WPORT     PORTJ
1461  #define DIO73_DDR       DDRJ
1462  #define DIO73_PWM       NULL
1463  #define DIO74_PIN       PINJ7
1464  #define DIO74_RPORT     PINJ
1465  #define DIO74_WPORT     PORTJ
1466  #define DIO74_DDR       DDRJ
1467  #define DIO74_PWM       NULL
1468  #define DIO75_PIN       PINJ4
1469  #define DIO75_RPORT     PINJ
1470  #define DIO75_WPORT     PORTJ
1471  #define DIO75_DDR       DDRJ
1472  #define DIO75_PWM       NULL
1473  
1474  
1475  #define DIO76_PIN       PINJ5
1476  #define DIO76_RPORT     PINJ
1477  #define DIO76_WPORT     PORTJ
1478  #define DIO76_DDR       DDRJ
1479  #define DIO76_PWM       NULL
1480  #define DIO77_PIN       PINJ6
1481  #define DIO77_RPORT     PINJ
1482  #define DIO77_WPORT     PORTJ
1483  #define DIO77_DDR       DDRJ
1484  #define DIO77_PWM       NULL
1485  #define DIO78_PIN       PINE2
1486  #define DIO78_RPORT     PINE
1487  #define DIO78_WPORT    PORTE
1488  #define DIO78_DDR    DDRE
1489  #define DIO78_PWM    NULL
1490  #define DIO79_PIN    PINE6
1491  #define DIO79_RPORT   PINE
1492  #define DIO79_WPORT    PORTE
1493  #define DIO79_DDR    DDRE
1494  #define DIO79_PWM    NULL
1495  #define DIO80_PIN    PINE7
1496  #define DIO80_RPORT   PINE
1497  #define DIO80_WPORT    PORTE
1498  #define DIO80_DDR    DDRE
1499  #define DIO80_PWM    NULL
1500  #define DIO81_PIN    PIND4
1501  #define DIO81_RPORT   PIND
1502  #define DIO81_WPORT    PORTD
1503  #define DIO81_DDR    DDRD
1504  #define DIO81_PWM    NULL
1505  
1506  #endif // MOTHERBOARD == 12
1507  
1508  
1509  #undef PA0
1510  #define PA0_PIN			PINA0
1511  #define PA0_RPORT		PINA
1512  #define PA0_WPORT		PORTA
1513  #define PA0_DDR			DDRA
1514  #define PA0_PWM			NULL
1515  #undef PA1
1516  #define PA1_PIN			PINA1
1517  #define PA1_RPORT		PINA
1518  #define PA1_WPORT		PORTA
1519  #define PA1_DDR			DDRA
1520  #define PA1_PWM			NULL
1521  #undef PA2
1522  #define PA2_PIN			PINA2
1523  #define PA2_RPORT		PINA
1524  #define PA2_WPORT		PORTA
1525  #define PA2_DDR			DDRA
1526  #define PA2_PWM			NULL
1527  #undef PA3
1528  #define PA3_PIN			PINA3
1529  #define PA3_RPORT		PINA
1530  #define PA3_WPORT		PORTA
1531  #define PA3_DDR			DDRA
1532  #define PA3_PWM			NULL
1533  #undef PA4
1534  #define PA4_PIN			PINA4
1535  #define PA4_RPORT		PINA
1536  #define PA4_WPORT		PORTA
1537  #define PA4_DDR			DDRA
1538  #define PA4_PWM			NULL
1539  #undef PA5
1540  #define PA5_PIN			PINA5
1541  #define PA5_RPORT		PINA
1542  #define PA5_WPORT		PORTA
1543  #define PA5_DDR			DDRA
1544  #define PA5_PWM			NULL
1545  #undef PA6
1546  #define PA6_PIN			PINA6
1547  #define PA6_RPORT		PINA
1548  #define PA6_WPORT		PORTA
1549  #define PA6_DDR			DDRA
1550  #define PA6_PWM			NULL
1551  #undef PA7
1552  #define PA7_PIN			PINA7
1553  #define PA7_RPORT		PINA
1554  #define PA7_WPORT		PORTA
1555  #define PA7_DDR			DDRA
1556  #define PA7_PWM			NULL
1557  
1558  #undef PB0
1559  #define PB0_PIN			PINB0
1560  #define PB0_RPORT		PINB
1561  #define PB0_WPORT		PORTB
1562  #define PB0_DDR			DDRB
1563  #define PB0_PWM			NULL
1564  #undef PB1
1565  #define PB1_PIN			PINB1
1566  #define PB1_RPORT		PINB
1567  #define PB1_WPORT		PORTB
1568  #define PB1_DDR			DDRB
1569  #define PB1_PWM			NULL
1570  #undef PB2
1571  #define PB2_PIN			PINB2
1572  #define PB2_RPORT		PINB
1573  #define PB2_WPORT		PORTB
1574  #define PB2_DDR			DDRB
1575  #define PB2_PWM			NULL
1576  #undef PB3
1577  #define PB3_PIN			PINB3
1578  #define PB3_RPORT		PINB
1579  #define PB3_WPORT		PORTB
1580  #define PB3_DDR			DDRB
1581  #define PB3_PWM			NULL
1582  #undef PB4
1583  #define PB4_PIN			PINB4
1584  #define PB4_RPORT		PINB
1585  #define PB4_WPORT		PORTB
1586  #define PB4_DDR			DDRB
1587  #define PB4_PWM			&OCR2A
1588  #undef PB5
1589  #define PB5_PIN			PINB5
1590  #define PB5_RPORT		PINB
1591  #define PB5_WPORT		PORTB
1592  #define PB5_DDR			DDRB
1593  #define PB5_PWM			NULL
1594  #undef PB6
1595  #define PB6_PIN			PINB6
1596  #define PB6_RPORT		PINB
1597  #define PB6_WPORT		PORTB
1598  #define PB6_DDR			DDRB
1599  #define PB6_PWM			NULL
1600  #undef PB7
1601  #define PB7_PIN			PINB7
1602  #define PB7_RPORT		PINB
1603  #define PB7_WPORT		PORTB
1604  #define PB7_DDR			DDRB
1605  #define PB7_PWM			&OCR0A
1606  
1607  #undef PC0
1608  #define PC0_PIN			PINC0
1609  #define PC0_RPORT		PINC
1610  #define PC0_WPORT		PORTC
1611  #define PC0_DDR			DDRC
1612  #define PC0_PWM			NULL
1613  #undef PC1
1614  #define PC1_PIN			PINC1
1615  #define PC1_RPORT		PINC
1616  #define PC1_WPORT		PORTC
1617  #define PC1_DDR			DDRC
1618  #define PC1_PWM			NULL
1619  #undef PC2
1620  #define PC2_PIN			PINC2
1621  #define PC2_RPORT		PINC
1622  #define PC2_WPORT		PORTC
1623  #define PC2_DDR			DDRC
1624  #define PC2_PWM			NULL
1625  #undef PC3
1626  #define PC3_PIN			PINC3
1627  #define PC3_RPORT		PINC
1628  #define PC3_WPORT		PORTC
1629  #define PC3_DDR			DDRC
1630  #define PC3_PWM			NULL
1631  #undef PC4
1632  #define PC4_PIN			PINC4
1633  #define PC4_RPORT		PINC
1634  #define PC4_WPORT		PORTC
1635  #define PC4_DDR			DDRC
1636  #define PC4_PWM			NULL
1637  #undef PC5
1638  #define PC5_PIN			PINC5
1639  #define PC5_RPORT		PINC
1640  #define PC5_WPORT		PORTC
1641  #define PC5_DDR			DDRC
1642  #define PC5_PWM			NULL
1643  #undef PC6
1644  #define PC6_PIN			PINC6
1645  #define PC6_RPORT		PINC
1646  #define PC6_WPORT		PORTC
1647  #define PC6_DDR			DDRC
1648  #define PC6_PWM			NULL
1649  #undef PC7
1650  #define PC7_PIN			PINC7
1651  #define PC7_RPORT		PINC
1652  #define PC7_WPORT		PORTC
1653  #define PC7_DDR			DDRC
1654  #define PC7_PWM			NULL
1655  
1656  #undef PD0
1657  #define PD0_PIN			PIND0
1658  #define PD0_RPORT		PIND
1659  #define PD0_WPORT		PORTD
1660  #define PD0_DDR			DDRD
1661  #define PD0_PWM			NULL
1662  #undef PD1
1663  #define PD1_PIN			PIND1
1664  #define PD1_RPORT		PIND
1665  #define PD1_WPORT		PORTD
1666  #define PD1_DDR			DDRD
1667  #define PD1_PWM			NULL
1668  #undef PD2
1669  #define PD2_PIN			PIND2
1670  #define PD2_RPORT		PIND
1671  #define PD2_WPORT		PORTD
1672  #define PD2_DDR			DDRD
1673  #define PD2_PWM			NULL
1674  #undef PD3
1675  #define PD3_PIN			PIND3
1676  #define PD3_RPORT		PIND
1677  #define PD3_WPORT		PORTD
1678  #define PD3_DDR			DDRD
1679  #define PD3_PWM			NULL
1680  #undef PD4
1681  #define PD4_PIN			PIND4
1682  #define PD4_RPORT		PIND
1683  #define PD4_WPORT		PORTD
1684  #define PD4_DDR			DDRD
1685  #define PD4_PWM			NULL
1686  #undef PD5
1687  #define PD5_PIN			PIND5
1688  #define PD5_RPORT		PIND
1689  #define PD5_WPORT		PORTD
1690  #define PD5_DDR			DDRD
1691  #define PD5_PWM			NULL
1692  #undef PD6
1693  #define PD6_PIN			PIND6
1694  #define PD6_RPORT		PIND
1695  #define PD6_WPORT		PORTD
1696  #define PD6_DDR			DDRD
1697  #define PD6_PWM			NULL
1698  #undef PD7
1699  #define PD7_PIN			PIND7
1700  #define PD7_RPORT		PIND
1701  #define PD7_WPORT		PORTD
1702  #define PD7_DDR			DDRD
1703  #define PD7_PWM			NULL
1704  
1705  #undef PE0
1706  #define PE0_PIN			PINE0
1707  #define PE0_RPORT		PINE
1708  #define PE0_WPORT		PORTE
1709  #define PE0_DDR			DDRE
1710  #define PE0_PWM			NULL
1711  #undef PE1
1712  #define PE1_PIN			PINE1
1713  #define PE1_RPORT		PINE
1714  #define PE1_WPORT		PORTE
1715  #define PE1_DDR			DDRE
1716  #define PE1_PWM			NULL
1717  #undef PE2
1718  #define PE2_PIN			PINE2
1719  #define PE2_RPORT		PINE
1720  #define PE2_WPORT		PORTE
1721  #define PE2_DDR			DDRE
1722  #define PE2_PWM			NULL
1723  #undef PE3
1724  #define PE3_PIN			PINE3
1725  #define PE3_RPORT		PINE
1726  #define PE3_WPORT		PORTE
1727  #define PE3_DDR			DDRE
1728  #define PE3_PWM			&OCR3AL
1729  #undef PE4
1730  #define PE4_PIN			PINE4
1731  #define PE4_RPORT		PINE
1732  #define PE4_WPORT		PORTE
1733  #define PE4_DDR			DDRE
1734  #define PE4_PWM			&OCR3BL
1735  #undef PE5
1736  #define PE5_PIN			PINE5
1737  #define PE5_RPORT		PINE
1738  #define PE5_WPORT		PORTE
1739  #define PE5_DDR			DDRE
1740  #define PE5_PWM			&OCR3CL
1741  #undef PE6
1742  #define PE6_PIN			PINE6
1743  #define PE6_RPORT		PINE
1744  #define PE6_WPORT		PORTE
1745  #define PE6_DDR			DDRE
1746  #define PE6_PWM			NULL
1747  #undef PE7
1748  #define PE7_PIN			PINE7
1749  #define PE7_RPORT		PINE
1750  #define PE7_WPORT		PORTE
1751  #define PE7_DDR			DDRE
1752  #define PE7_PWM			NULL
1753  
1754  #undef PF0
1755  #define PF0_PIN			PINF0
1756  #define PF0_RPORT		PINF
1757  #define PF0_WPORT		PORTF
1758  #define PF0_DDR			DDRF
1759  #define PF0_PWM			NULL
1760  #undef PF1
1761  #define PF1_PIN			PINF1
1762  #define PF1_RPORT		PINF
1763  #define PF1_WPORT		PORTF
1764  #define PF1_DDR			DDRF
1765  #define PF1_PWM			NULL
1766  #undef PF2
1767  #define PF2_PIN			PINF2
1768  #define PF2_RPORT		PINF
1769  #define PF2_WPORT		PORTF
1770  #define PF2_DDR			DDRF
1771  #define PF2_PWM			NULL
1772  #undef PF3
1773  #define PF3_PIN			PINF3
1774  #define PF3_RPORT		PINF
1775  #define PF3_WPORT		PORTF
1776  #define PF3_DDR			DDRF
1777  #define PF3_PWM			NULL
1778  #undef PF4
1779  #define PF4_PIN			PINF4
1780  #define PF4_RPORT		PINF
1781  #define PF4_WPORT		PORTF
1782  #define PF4_DDR			DDRF
1783  #define PF4_PWM			NULL
1784  #undef PF5
1785  #define PF5_PIN			PINF5
1786  #define PF5_RPORT		PINF
1787  #define PF5_WPORT		PORTF
1788  #define PF5_DDR			DDRF
1789  #define PF5_PWM			NULL
1790  #undef PF6
1791  #define PF6_PIN			PINF6
1792  #define PF6_RPORT		PINF
1793  #define PF6_WPORT		PORTF
1794  #define PF6_DDR			DDRF
1795  #define PF6_PWM			NULL
1796  #undef PF7
1797  #define PF7_PIN			PINF7
1798  #define PF7_RPORT		PINF
1799  #define PF7_WPORT		PORTF
1800  #define PF7_DDR			DDRF
1801  #define PF7_PWM			NULL
1802  
1803  #undef PG0
1804  #define PG0_PIN			PING0
1805  #define PG0_RPORT		PING
1806  #define PG0_WPORT		PORTG
1807  #define PG0_DDR			DDRG
1808  #define PG0_PWM			NULL
1809  #undef PG1
1810  #define PG1_PIN			PING1
1811  #define PG1_RPORT		PING
1812  #define PG1_WPORT		PORTG
1813  #define PG1_DDR			DDRG
1814  #define PG1_PWM			NULL
1815  #undef PG2
1816  #define PG2_PIN			PING2
1817  #define PG2_RPORT		PING
1818  #define PG2_WPORT		PORTG
1819  #define PG2_DDR			DDRG
1820  #define PG2_PWM			NULL
1821  #undef PG3
1822  #define PG3_PIN			PING3
1823  #define PG3_RPORT		PING
1824  #define PG3_WPORT		PORTG
1825  #define PG3_DDR			DDRG
1826  #define PG3_PWM			NULL
1827  #undef PG4
1828  #define PG4_PIN			PING4
1829  #define PG4_RPORT		PING
1830  #define PG4_WPORT		PORTG
1831  #define PG4_DDR			DDRG
1832  #define PG4_PWM			NULL
1833  #undef PG5
1834  #define PG5_PIN			PING5
1835  #define PG5_RPORT		PING
1836  #define PG5_WPORT		PORTG
1837  #define PG5_DDR			DDRG
1838  #define PG5_PWM			&OCR0B
1839  #undef PG6
1840  #define PG6_PIN			PING6
1841  #define PG6_RPORT		PING
1842  #define PG6_WPORT		PORTG
1843  #define PG6_DDR			DDRG
1844  #define PG6_PWM			NULL
1845  #undef PG7
1846  #define PG7_PIN			PING7
1847  #define PG7_RPORT		PING
1848  #define PG7_WPORT		PORTG
1849  #define PG7_DDR			DDRG
1850  #define PG7_PWM			NULL
1851  
1852  #undef PH0
1853  #define PH0_PIN			PINH0
1854  #define PH0_RPORT		PINH
1855  #define PH0_WPORT		PORTH
1856  #define PH0_DDR			DDRH
1857  #define PH0_PWM			NULL
1858  #undef PH1
1859  #define PH1_PIN			PINH1
1860  #define PH1_RPORT		PINH
1861  #define PH1_WPORT		PORTH
1862  #define PH1_DDR			DDRH
1863  #define PH1_PWM			NULL
1864  #undef PH2
1865  #define PH2_PIN			PINH2
1866  #define PH2_RPORT		PINH
1867  #define PH2_WPORT		PORTH
1868  #define PH2_DDR			DDRH
1869  #define PH2_PWM			NULL
1870  #undef PH3
1871  #define PH3_PIN			PINH3
1872  #define PH3_RPORT		PINH
1873  #define PH3_WPORT		PORTH
1874  #define PH3_DDR			DDRH
1875  #define PH3_PWM			&OCR4AL
1876  #undef PH4
1877  #define PH4_PIN			PINH4
1878  #define PH4_RPORT		PINH
1879  #define PH4_WPORT		PORTH
1880  #define PH4_DDR			DDRH
1881  #define PH4_PWM			&OCR4BL
1882  #undef PH5
1883  #define PH5_PIN			PINH5
1884  #define PH5_RPORT		PINH
1885  #define PH5_WPORT		PORTH
1886  #define PH5_DDR			DDRH
1887  #define PH5_PWM			&OCR4CL
1888  #undef PH6
1889  #define PH6_PIN			PINH6
1890  #define PH6_RPORT		PINH
1891  #define PH6_WPORT		PORTH
1892  #define PH6_DDR			DDRH
1893  #define PH6_PWM			&OCR2B
1894  #undef PH7
1895  #define PH7_PIN			PINH7
1896  #define PH7_RPORT		PINH
1897  #define PH7_WPORT		PORTH
1898  #define PH7_DDR			DDRH
1899  #define PH7_PWM			NULL
1900  
1901  #undef PJ0
1902  #define PJ0_PIN			PINJ0
1903  #define PJ0_RPORT		PINJ
1904  #define PJ0_WPORT		PORTJ
1905  #define PJ0_DDR			DDRJ
1906  #define PJ0_PWM			NULL
1907  #undef PJ1
1908  #define PJ1_PIN			PINJ1
1909  #define PJ1_RPORT		PINJ
1910  #define PJ1_WPORT		PORTJ
1911  #define PJ1_DDR			DDRJ
1912  #define PJ1_PWM			NULL
1913  #undef PJ2
1914  #define PJ2_PIN			PINJ2
1915  #define PJ2_RPORT		PINJ
1916  #define PJ2_WPORT		PORTJ
1917  #define PJ2_DDR			DDRJ
1918  #define PJ2_PWM			NULL
1919  #undef PJ3
1920  #define PJ3_PIN			PINJ3
1921  #define PJ3_RPORT		PINJ
1922  #define PJ3_WPORT		PORTJ
1923  #define PJ3_DDR			DDRJ
1924  #define PJ3_PWM			NULL
1925  #undef PJ4
1926  #define PJ4_PIN			PINJ4
1927  #define PJ4_RPORT		PINJ
1928  #define PJ4_WPORT		PORTJ
1929  #define PJ4_DDR			DDRJ
1930  #define PJ4_PWM			NULL
1931  #undef PJ5
1932  #define PJ5_PIN			PINJ5
1933  #define PJ5_RPORT		PINJ
1934  #define PJ5_WPORT		PORTJ
1935  #define PJ5_DDR			DDRJ
1936  #define PJ5_PWM			NULL
1937  #undef PJ6
1938  #define PJ6_PIN			PINJ6
1939  #define PJ6_RPORT		PINJ
1940  #define PJ6_WPORT		PORTJ
1941  #define PJ6_DDR			DDRJ
1942  #define PJ6_PWM			NULL
1943  #undef PJ7
1944  #define PJ7_PIN			PINJ7
1945  #define PJ7_RPORT		PINJ
1946  #define PJ7_WPORT		PORTJ
1947  #define PJ7_DDR			DDRJ
1948  #define PJ7_PWM			NULL
1949  
1950  #undef PK0
1951  #define PK0_PIN			PINK0
1952  #define PK0_RPORT		PINK
1953  #define PK0_WPORT		PORTK
1954  #define PK0_DDR			DDRK
1955  #define PK0_PWM			NULL
1956  #undef PK1
1957  #define PK1_PIN			PINK1
1958  #define PK1_RPORT		PINK
1959  #define PK1_WPORT		PORTK
1960  #define PK1_DDR			DDRK
1961  #define PK1_PWM			NULL
1962  #undef PK2
1963  #define PK2_PIN			PINK2
1964  #define PK2_RPORT		PINK
1965  #define PK2_WPORT		PORTK
1966  #define PK2_DDR			DDRK
1967  #define PK2_PWM			NULL
1968  #undef PK3
1969  #define PK3_PIN			PINK3
1970  #define PK3_RPORT		PINK
1971  #define PK3_WPORT		PORTK
1972  #define PK3_DDR			DDRK
1973  #define PK3_PWM			NULL
1974  #undef PK4
1975  #define PK4_PIN			PINK4
1976  #define PK4_RPORT		PINK
1977  #define PK4_WPORT		PORTK
1978  #define PK4_DDR			DDRK
1979  #define PK4_PWM			NULL
1980  #undef PK5
1981  #define PK5_PIN			PINK5
1982  #define PK5_RPORT		PINK
1983  #define PK5_WPORT		PORTK
1984  #define PK5_DDR			DDRK
1985  #define PK5_PWM			NULL
1986  #undef PK6
1987  #define PK6_PIN			PINK6
1988  #define PK6_RPORT		PINK
1989  #define PK6_WPORT		PORTK
1990  #define PK6_DDR			DDRK
1991  #define PK6_PWM			NULL
1992  #undef PK7
1993  #define PK7_PIN			PINK7
1994  #define PK7_RPORT		PINK
1995  #define PK7_WPORT		PORTK
1996  #define PK7_DDR			DDRK
1997  #define PK7_PWM			NULL
1998  
1999  #undef PL0
2000  #define PL0_PIN			PINL0
2001  #define PL0_RPORT		PINL
2002  #define PL0_WPORT		PORTL
2003  #define PL0_DDR			DDRL
2004  #define PL0_PWM			NULL
2005  #undef PL1
2006  #define PL1_PIN			PINL1
2007  #define PL1_RPORT		PINL
2008  #define PL1_WPORT		PORTL
2009  #define PL1_DDR			DDRL
2010  #define PL1_PWM			NULL
2011  #undef PL2
2012  #define PL2_PIN			PINL2
2013  #define PL2_RPORT		PINL
2014  #define PL2_WPORT		PORTL
2015  #define PL2_DDR			DDRL
2016  #define PL2_PWM			NULL
2017  #undef PL3
2018  #define PL3_PIN			PINL3
2019  #define PL3_RPORT		PINL
2020  #define PL3_WPORT		PORTL
2021  #define PL3_DDR			DDRL
2022  #define PL3_PWM			&OCR5AL
2023  #undef PL4
2024  #define PL4_PIN			PINL4
2025  #define PL4_RPORT		PINL
2026  #define PL4_WPORT		PORTL
2027  #define PL4_DDR			DDRL
2028  #define PL4_PWM			&OCR5BL
2029  #undef PL5
2030  #define PL5_PIN			PINL5
2031  #define PL5_RPORT		PINL
2032  #define PL5_WPORT		PORTL
2033  #define PL5_DDR			DDRL
2034  #define PL5_PWM			&OCR5CL
2035  #undef PL6
2036  #define PL6_PIN			PINL6
2037  #define PL6_RPORT		PINL
2038  #define PL6_WPORT		PORTL
2039  #define PL6_DDR			DDRL
2040  #define PL6_PWM			NULL
2041  #undef PL7
2042  #define PL7_PIN			PINL7
2043  #define PL7_RPORT		PINL
2044  #define PL7_WPORT		PORTL
2045  #define PL7_DDR			DDRL
2046  #define PL7_PWM			NULL
2047  
2048  #endif
2049  
2050  #if defined (__AVR_AT90USB1287__)  || defined (__AVR_AT90USB1286__)
2051  // SPI
2052  #define	SCK					DIO9
2053  #define	MISO				DIO11
2054  #define	MOSI				DIO10
2055  #define	SS					DIO8
2056  
2057  #if MOTHERBOARD!=8 && MOTHERBOARD!=9
2058  // change for your board
2059  #define	DEBUG_LED		DIO31 /* led D5 red */
2060  
2061  /*
2062  pins
2063  */
2064  #define DIO0_PIN        PINA0
2065  #define DIO0_RPORT      PINA
2066  #define DIO0_WPORT      PORTA
2067  #define DIO0_PWM			NULL
2068  #define DIO0_DDR        DDRA
2069  
2070  #define DIO1_PIN        PINA1
2071  #define DIO1_RPORT      PINA
2072  #define DIO1_WPORT      PORTA
2073  #define DIO1_PWM			NULL
2074  #define DIO1_DDR        DDRA
2075  
2076  #define DIO2_PIN        PINA2
2077  #define DIO2_RPORT      PINA
2078  #define DIO2_WPORT      PORTA
2079  #define DIO2_PWM			NULL
2080  #define DIO2_DDR        DDRA
2081  
2082  #define DIO3_PIN        PINA3
2083  #define DIO3_RPORT      PINA
2084  #define DIO3_WPORT      PORTA
2085  #define DIO3_PWM			NULL
2086  #define DIO3_DDR        DDRA
2087  
2088  #define DIO4_PIN        PINA4
2089  #define DIO4_RPORT      PINA
2090  #define DIO4_WPORT      PORTA
2091  #define DIO4_PWM			NULL
2092  #define DIO4_DDR        DDRA
2093  
2094  #define DIO5_PIN        PINA5
2095  #define DIO5_RPORT      PINA
2096  #define DIO5_WPORT      PORTA
2097  #define DIO5_PWM			NULL
2098  #define DIO5_DDR        DDRA
2099  
2100  #define DIO6_PIN        PINA6
2101  #define DIO6_RPORT      PINA
2102  #define DIO6_WPORT      PORTA
2103  #define DIO6_PWM			NULL
2104  #define DIO6_DDR        DDRA
2105  
2106  #define DIO7_PIN        PINA7
2107  #define DIO7_RPORT      PINA
2108  #define DIO7_WPORT      PORTA
2109  #define DIO7_PWM			NULL
2110  #define DIO7_DDR        DDRA
2111  
2112  #define DIO8_PIN        PINB0
2113  #define DIO8_RPORT      PINB
2114  #define DIO8_WPORT      PORTB
2115  #define DIO8_PWM			NULL
2116  #define DIO8_DDR        DDRB
2117  
2118  #define DIO9_PIN        PINB1
2119  #define DIO9_RPORT      PINB
2120  #define DIO9_WPORT      PORTB
2121  #define DIO9_PWM			NULL
2122  #define DIO9_DDR        DDRB
2123  
2124  #define DIO10_PIN       PINB2
2125  #define DIO10_RPORT     PINB
2126  #define DIO10_WPORT     PORTB
2127  #define DIO10_PWM			NULL
2128  #define DIO10_DDR       DDRB
2129  
2130  #define DIO11_PIN       PINB3
2131  #define DIO11_RPORT     PINB
2132  #define DIO11_WPORT     PORTB
2133  #define DIO11_PWM			NULL
2134  #define DIO11_DDR       DDRB
2135  
2136  #define DIO12_PIN       PINB4
2137  #define DIO12_RPORT     PINB
2138  #define DIO12_WPORT     PORTB
2139  #define DIO12_PWM			NULL
2140  #define DIO12_DDR       DDRB
2141  
2142  #define DIO13_PIN       PINB5
2143  #define DIO13_RPORT     PINB
2144  #define DIO13_WPORT     PORTB
2145  #define DIO13_PWM			NULL
2146  #define DIO13_DDR       DDRB
2147  
2148  #define DIO14_PIN       PINB6
2149  #define DIO14_RPORT     PINB
2150  #define DIO14_WPORT     PORTB
2151  #define DIO14_PWM			NULL
2152  #define DIO14_DDR       DDRB
2153  
2154  #define DIO15_PIN       PINB7
2155  #define DIO15_RPORT     PINB
2156  #define DIO15_WPORT     PORTB
2157  #define DIO15_PWM			NULL
2158  #define DIO15_DDR       DDRB
2159  
2160  #define DIO16_PIN       PINC0
2161  #define DIO16_RPORT     PINC
2162  #define DIO16_WPORT     PORTC
2163  #define DIO16_PWM			NULL
2164  #define DIO16_DDR       DDRC
2165  
2166  #define DIO17_PIN       PINC1
2167  #define DIO17_RPORT     PINC
2168  #define DIO17_WPORT     PORTC
2169  #define DIO17_PWM			NULL
2170  #define DIO17_DDR       DDRC
2171  
2172  #define DIO18_PIN       PINC2
2173  #define DIO18_RPORT     PINC
2174  #define DIO18_WPORT     PORTC
2175  #define DIO18_PWM			NULL
2176  #define DIO18_DDR       DDRC
2177  
2178  #define DIO19_PIN       PINC3
2179  #define DIO19_RPORT     PINC
2180  #define DIO19_WPORT     PORTC
2181  #define DIO19_PWM			NULL
2182  #define DIO19_DDR       DDRC
2183  
2184  #define DIO20_PIN       PINC4
2185  #define DIO20_RPORT     PINC
2186  #define DIO20_WPORT     PORTC
2187  #define DIO20_PWM			NULL
2188  #define DIO20_DDR       DDRC
2189  
2190  #define DIO21_PIN       PINC5
2191  #define DIO21_RPORT     PINC
2192  #define DIO21_WPORT     PORTC
2193  #define DIO21_PWM			NULL
2194  #define DIO21_DDR       DDRC
2195  
2196  #define DIO22_PIN       PINC6
2197  #define DIO22_RPORT     PINC
2198  #define DIO22_WPORT     PORTC
2199  #define DIO22_PWM			NULL
2200  #define DIO22_DDR       DDRC
2201  
2202  #define DIO23_PIN       PINC7
2203  #define DIO23_RPORT     PINC
2204  #define DIO23_WPORT     PORTC
2205  #define DIO23_PWM			NULL
2206  #define DIO23_DDR       DDRC
2207  
2208  #define DIO24_PIN       PIND0
2209  #define DIO24_RPORT     PIND
2210  #define DIO24_WPORT     PORTD
2211  #define DIO24_PWM			NULL
2212  #define DIO24_DDR       DDRD
2213  
2214  #define DIO25_PIN       PIND1
2215  #define DIO25_RPORT     PIND
2216  #define DIO25_WPORT     PORTD
2217  #define DIO25_PWM			NULL
2218  #define DIO25_DDR       DDRD
2219  
2220  #define DIO26_PIN       PIND2
2221  #define DIO26_RPORT     PIND
2222  #define DIO26_WPORT     PORTD
2223  #define DIO26_PWM			NULL
2224  #define DIO26_DDR       DDRD
2225  
2226  #define DIO27_PIN       PIND3
2227  #define DIO27_RPORT     PIND
2228  #define DIO27_WPORT     PORTD
2229  #define DIO27_PWM			NULL
2230  #define DIO27_DDR       DDRD
2231  
2232  #define DIO28_PIN       PIND4
2233  #define DIO28_RPORT     PIND
2234  #define DIO28_WPORT     PORTD
2235  #define DIO28_PWM			NULL
2236  #define DIO28_DDR       DDRD
2237  
2238  #define DIO29_PIN       PIND5
2239  #define DIO29_RPORT     PIND
2240  #define DIO29_WPORT     PORTD
2241  #define DIO29_PWM			NULL
2242  #define DIO29_DDR       DDRD
2243  
2244  #define DIO30_PIN       PIND6
2245  #define DIO30_RPORT     PIND
2246  #define DIO30_WPORT     PORTD
2247  #define DIO30_PWM			NULL
2248  #define DIO30_DDR       DDRD
2249  
2250  #define DIO31_PIN       PIND7
2251  #define DIO31_RPORT     PIND
2252  #define DIO31_WPORT     PORTD
2253  #define DIO31_PWM			NULL
2254  #define DIO31_DDR       DDRD
2255  
2256  
2257  #define DIO32_PIN       PINE0
2258  #define DIO32_RPORT     PINE
2259  #define DIO32_WPORT     PORTE
2260  #define DIO32_PWM			NULL
2261  #define DIO32_DDR       DDRE
2262  
2263  #define DIO33_PIN       PINE1
2264  #define DIO33_RPORT     PINE
2265  #define DIO33_WPORT     PORTE
2266  #define DIO33_PWM			NULL
2267  #define DIO33_DDR       DDRE
2268  
2269  #define DIO34_PIN       PINE2
2270  #define DIO34_RPORT     PINE
2271  #define DIO34_WPORT     PORTE
2272  #define DIO34_PWM			NULL
2273  #define DIO34_DDR       DDRE
2274  
2275  #define DIO35_PIN       PINE3
2276  #define DIO35_RPORT     PINE
2277  #define DIO35_WPORT     PORTE
2278  #define DIO35_PWM			NULL
2279  #define DIO35_DDR       DDRE
2280  
2281  #define DIO36_PIN       PINE4
2282  #define DIO36_RPORT     PINE
2283  #define DIO36_WPORT     PORTE
2284  #define DIO36_PWM			NULL
2285  #define DIO36_DDR       DDRE
2286  
2287  #define DIO37_PIN       PINE5
2288  #define DIO37_RPORT     PINE
2289  #define DIO37_WPORT     PORTE
2290  #define DIO37_PWM			NULL
2291  #define DIO37_DDR       DDRE
2292  
2293  #define DIO38_PIN       PINE6
2294  #define DIO38_RPORT     PINE
2295  #define DIO38_WPORT     PORTE
2296  #define DIO38_PWM			NULL
2297  #define DIO38_DDR       DDRE
2298  
2299  #define DIO39_PIN       PINE7
2300  #define DIO39_RPORT     PINE
2301  #define DIO39_WPORT     PORTE
2302  #define DIO39_PWM			NULL
2303  #define DIO39_DDR       DDRE
2304  
2305  #define AIO0_PIN PINF0
2306  #define AIO0_RPORT PINF
2307  #define AIO0_WPORT PORTF
2308  #define AIO0_PWM			NULL
2309  #define AIO0_DDR DDRF
2310  
2311  #define AIO1_PIN PINF1
2312  #define AIO1_RPORT PINF
2313  #define AIO1_WPORT PORTF
2314  #define AIO1_PWM			NULL
2315  #define AIO1_DDR DDRF
2316  
2317  #define AIO2_PIN PINF2
2318  #define AIO2_RPORT PINF
2319  #define AIO2_WPORT PORTF
2320  #define AIO2_PWM			NULL
2321  #define AIO2_DDR DDRF
2322  
2323  #define AIO3_PIN PINF3
2324  #define AIO3_RPORT PINF
2325  #define AIO3_WPORT PORTF
2326  #define AIO3_PWM			NULL
2327  #define AIO3_DDR DDRF
2328  
2329  #define AIO4_PIN PINF4
2330  #define AIO4_RPORT PINF
2331  #define AIO4_WPORT PORTF
2332  #define AIO4_PWM			NULL
2333  #define AIO4_DDR DDRF
2334  
2335  #define AIO5_PIN PINF5
2336  #define AIO5_RPORT PINF
2337  #define AIO5_WPORT PORTF
2338  #define AIO5_PWM			NULL
2339  #define AIO5_DDR DDRF
2340  
2341  #define AIO6_PIN PINF6
2342  #define AIO6_RPORT PINF
2343  #define AIO6_WPORT PORTF
2344  #define AIO6_PWM			NULL
2345  #define AIO6_DDR DDRF
2346  
2347  #define AIO7_PIN PINF7
2348  #define AIO7_RPORT PINF
2349  #define AIO7_WPORT PORTF
2350  #define AIO7_PWM			NULL
2351  #define AIO7_DDR DDRF
2352  
2353  #define DIO40_PIN       PINF0
2354  #define DIO40_RPORT     PINF
2355  #define DIO40_WPORT     PORTF
2356  #define DIO40_PWM			NULL
2357  #define DIO40_DDR       DDRF
2358  
2359  #define DIO41_PIN       PINF1
2360  #define DIO41_RPORT     PINF
2361  #define DIO41_WPORT     PORTF
2362  #define DIO41_PWM			NULL
2363  #define DIO41_DDR       DDRF
2364  
2365  #define DIO42_PIN       PINF2
2366  #define DIO42_RPORT     PINF
2367  #define DIO42_WPORT     PORTF
2368  #define DIO42_PWM			NULL
2369  #define DIO42_DDR       DDRF
2370  
2371  #define DIO43_PIN       PINF3
2372  #define DIO43_RPORT     PINF
2373  #define DIO43_WPORT     PORTF
2374  #define DIO43_PWM			NULL
2375  #define DIO43_DDR       DDRF
2376  
2377  #define DIO44_PIN       PINF4
2378  #define DIO44_RPORT     PINF
2379  #define DIO44_WPORT     PORTF
2380  #define DIO44_PWM			NULL
2381  #define DIO44_DDR       DDRF
2382  
2383  #define DIO45_PIN       PINF5
2384  #define DIO45_RPORT     PINF
2385  #define DIO45_WPORT     PORTF
2386  #define DIO45_PWM			NULL
2387  #define DIO45_DDR       DDRF
2388  
2389  #define DIO46_PIN       PINF6
2390  #define DIO46_RPORT     PINF
2391  #define DIO46_WPORT     PORTF
2392  #define DIO46_PWM			NULL
2393  #define DIO46_DDR       DDRF
2394  
2395  #define DIO47_PIN       PINF7
2396  #define DIO47_RPORT     PINF
2397  #define DIO47_WPORT     PORTF
2398  #define DIO47_PWM			NULL
2399  #define DIO47_DDR       DDRF
2400  
2401  #else
2402  /*
2403  pins
2404  */
2405  #define DIO0_PIN        PIND0
2406  #define DIO0_RPORT      PIND
2407  #define DIO0_WPORT      PORTD
2408  #define DIO0_PWM			NULL
2409  #define DIO0_DDR        DDRD
2410  
2411  #define DIO1_PIN        PIND1
2412  #define DIO1_RPORT      PIND
2413  #define DIO1_WPORT      PORTD
2414  #define DIO1_PWM			NULL
2415  #define DIO1_DDR        DDRD
2416  
2417  #define DIO2_PIN        PIND2
2418  #define DIO2_RPORT      PIND
2419  #define DIO2_WPORT      PORTD
2420  #define DIO2_PWM			NULL
2421  #define DIO2_DDR        DDRD
2422  
2423  #define DIO3_PIN        PIND3
2424  #define DIO3_RPORT      PIND
2425  #define DIO3_WPORT      PORTD
2426  #define DIO3_PWM			NULL
2427  #define DIO3_DDR        DDRD
2428  
2429  #define DIO4_PIN        PIND4
2430  #define DIO4_RPORT      PIND
2431  #define DIO4_WPORT      PORTD
2432  #define DIO4_PWM			NULL
2433  #define DIO4_DDR        DDRD
2434  
2435  #define DIO5_PIN        PIND5
2436  #define DIO5_RPORT      PIND
2437  #define DIO5_WPORT      PORTD
2438  #define DIO5_PWM			NULL
2439  #define DIO5_DDR        DDRD
2440  
2441  #define DIO6_PIN        PIND6
2442  #define DIO6_RPORT      PIND
2443  #define DIO6_WPORT      PORTD
2444  #define DIO6_PWM			NULL
2445  #define DIO6_DDR        DDRD
2446  
2447  #define DIO7_PIN        PIND7
2448  #define DIO7_RPORT      PIND
2449  #define DIO7_WPORT      PORTD
2450  #define DIO7_PWM			NULL
2451  #define DIO7_DDR        DDRD
2452  
2453  #define DIO8_PIN        PINE0
2454  #define DIO8_RPORT      PINE
2455  #define DIO8_WPORT      PORTE
2456  #define DIO8_PWM			NULL
2457  #define DIO8_DDR        DDRE
2458  
2459  #define DIO9_PIN        PINE1
2460  #define DIO9_RPORT      PINE
2461  #define DIO9_WPORT      PORTE
2462  #define DIO9_PWM			NULL
2463  #define DIO9_DDR        DDRE
2464  
2465  #define DIO10_PIN       PINC0
2466  #define DIO10_RPORT     PINC
2467  #define DIO10_WPORT     PORTC
2468  #define DIO10_PWM			NULL
2469  #define DIO10_DDR       DDRC
2470  
2471  #define DIO11_PIN       PINC1
2472  #define DIO11_RPORT     PINC
2473  #define DIO11_WPORT     PORTC
2474  #define DIO11_PWM			NULL
2475  #define DIO11_DDR       DDRC
2476  
2477  #define DIO12_PIN       PINC2
2478  #define DIO12_RPORT     PINC
2479  #define DIO12_WPORT     PORTC
2480  #define DIO12_PWM			NULL
2481  #define DIO12_DDR       DDRC
2482  
2483  #define DIO13_PIN       PINC3
2484  #define DIO13_RPORT     PINC
2485  #define DIO13_WPORT     PORTC
2486  #define DIO13_PWM			NULL
2487  #define DIO13_DDR       DDRC
2488  
2489  #define DIO14_PIN       PINC4
2490  #define DIO14_RPORT     PINC
2491  #define DIO14_WPORT     PORTC
2492  #define DIO14_PWM			NULL
2493  #define DIO14_DDR       DDRC
2494  
2495  #define DIO15_PIN       PINC5
2496  #define DIO15_RPORT     PINC
2497  #define DIO15_WPORT     PORTC
2498  #define DIO15_PWM			NULL
2499  #define DIO15_DDR       DDRC
2500  
2501  #define DIO16_PIN       PINC6
2502  #define DIO16_RPORT     PINC
2503  #define DIO16_WPORT     PORTC
2504  #define DIO16_PWM			NULL
2505  #define DIO16_DDR       DDRC
2506  
2507  #define DIO17_PIN       PINC7
2508  #define DIO17_RPORT     PINC
2509  #define DIO17_WPORT     PORTC
2510  #define DIO17_PWM			NULL
2511  #define DIO17_DDR       DDRC
2512  
2513  #define DIO18_PIN       PINE6
2514  #define DIO18_RPORT     PINE
2515  #define DIO18_WPORT     PORTE
2516  #define DIO18_PWM			NULL
2517  #define DIO18_DDR       DDRE
2518  
2519  #define DIO19_PIN       PINE7
2520  #define DIO19_RPORT     PINE
2521  #define DIO19_WPORT     PORTE
2522  #define DIO19_PWM			NULL
2523  #define DIO19_DDR       DDRE
2524  
2525  #define DIO20_PIN       PINB0
2526  #define DIO20_RPORT     PINB
2527  #define DIO20_WPORT     PORTB
2528  #define DIO20_PWM			NULL
2529  #define DIO20_DDR       DDRB
2530  
2531  #define DIO21_PIN       PINB1
2532  #define DIO21_RPORT     PINB
2533  #define DIO21_WPORT     PORTB
2534  #define DIO21_PWM			NULL
2535  #define DIO21_DDR       DDRB
2536  
2537  #define DIO22_PIN       PINB2
2538  #define DIO22_RPORT     PINB
2539  #define DIO22_WPORT     PORTB
2540  #define DIO22_PWM			NULL
2541  #define DIO22_DDR       DDRB
2542  
2543  #define DIO23_PIN       PINB3
2544  #define DIO23_RPORT     PINB
2545  #define DIO23_WPORT     PORTB
2546  #define DIO23_PWM			NULL
2547  #define DIO23_DDR       DDRB
2548  
2549  #define DIO24_PIN       PINB4
2550  #define DIO24_RPORT     PINB
2551  #define DIO24_WPORT     PORTB
2552  #define DIO24_PWM			NULL
2553  #define DIO24_DDR       DDRB
2554  
2555  #define DIO25_PIN       PINB5
2556  #define DIO25_RPORT     PINB
2557  #define DIO25_WPORT     PORTB
2558  #define DIO25_PWM			NULL
2559  #define DIO25_DDR       DDRB
2560  
2561  #define DIO26_PIN       PINB6
2562  #define DIO26_RPORT     PINB
2563  #define DIO26_WPORT     PORTB
2564  #define DIO26_PWM			NULL
2565  #define DIO26_DDR       DDRB
2566  
2567  #define DIO27_PIN       PINB7
2568  #define DIO27_RPORT     PINB
2569  #define DIO27_WPORT     PORTB
2570  #define DIO27_PWM			NULL
2571  #define DIO27_DDR       DDRB
2572  
2573  #define DIO28_PIN       PINA0
2574  #define DIO28_RPORT     PINA
2575  #define DIO28_WPORT     PORTA
2576  #define DIO28_PWM			NULL
2577  #define DIO28_DDR       DDRA
2578  
2579  #define DIO29_PIN       PINA1
2580  #define DIO29_RPORT     PINA
2581  #define DIO29_WPORT     PORTA
2582  #define DIO29_PWM			NULL
2583  #define DIO29_DDR       DDRA
2584  
2585  #define DIO30_PIN       PINA2
2586  #define DIO30_RPORT     PINA
2587  #define DIO30_WPORT     PORTA
2588  #define DIO30_PWM			NULL
2589  #define DIO30_DDR       DDRA
2590  
2591  #define DIO31_PIN       PINA3
2592  #define DIO31_RPORT     PINA
2593  #define DIO31_WPORT     PORTA
2594  #define DIO31_PWM			NULL
2595  #define DIO31_DDR       DDRA
2596  
2597  
2598  #define DIO32_PIN       PINA4
2599  #define DIO32_RPORT     PINA
2600  #define DIO32_WPORT     PORTA
2601  #define DIO32_PWM			NULL
2602  #define DIO32_DDR       DDRA
2603  
2604  #define DIO33_PIN       PINA5
2605  #define DIO33_RPORT     PINA
2606  #define DIO33_WPORT     PORTA
2607  #define DIO33_PWM			NULL
2608  #define DIO33_DDR       DDRA
2609  
2610  #define DIO34_PIN       PINA6
2611  #define DIO34_RPORT     PINA
2612  #define DIO34_WPORT     PORTA
2613  #define DIO34_PWM			NULL
2614  #define DIO34_DDR       DDRA
2615  
2616  #define DIO35_PIN       PINA7
2617  #define DIO35_RPORT     PINA
2618  #define DIO35_WPORT     PORTA
2619  #define DIO35_PWM			NULL
2620  #define DIO35_DDR       DDRA
2621  
2622  #define DIO36_PIN       PINE4
2623  #define DIO36_RPORT     PINE
2624  #define DIO36_WPORT     PORTE
2625  #define DIO36_PWM			NULL
2626  #define DIO36_DDR       DDRE
2627  
2628  #define DIO37_PIN       PINE5
2629  #define DIO37_RPORT     PINE
2630  #define DIO37_WPORT     PORTE
2631  #define DIO37_PWM			NULL
2632  #define DIO37_DDR       DDRE
2633  
2634  #define DIO38_PIN       PINF0
2635  #define DIO38_RPORT     PINF
2636  #define DIO38_WPORT     PORTF
2637  #define DIO38_PWM			NULL
2638  #define DIO38_DDR       DDRF
2639  
2640  #define DIO39_PIN       PINF1
2641  #define DIO39_RPORT     PINF
2642  #define DIO39_WPORT     PORTF
2643  #define DIO39_PWM			NULL
2644  #define DIO39_DDR       DDRF
2645  
2646  #define DIO40_PIN       PINF2
2647  #define DIO40_RPORT     PINF
2648  #define DIO40_WPORT     PORTF
2649  #define DIO40_PWM			NULL
2650  #define DIO40_DDR       DDRF
2651  
2652  #define DIO41_PIN       PINF3
2653  #define DIO41_RPORT     PINF
2654  #define DIO41_WPORT     PORTF
2655  #define DIO41_PWM			NULL
2656  #define DIO41_DDR       DDRF
2657  
2658  #define DIO42_PIN       PINF4
2659  #define DIO42_RPORT     PINF
2660  #define DIO42_WPORT     PORTF
2661  #define DIO42_PWM			NULL
2662  #define DIO42_DDR       DDRF
2663  
2664  #define DIO43_PIN       PINF5
2665  #define DIO43_RPORT     PINF
2666  #define DIO43_WPORT     PORTF
2667  #define DIO43_PWM			NULL
2668  #define DIO43_DDR       DDRF
2669  
2670  #define DIO44_PIN       PINF6
2671  #define DIO44_RPORT     PINF
2672  #define DIO44_WPORT     PORTF
2673  #define DIO44_PWM			NULL
2674  #define DIO44_DDR       DDRF
2675  
2676  #define DIO45_PIN       PINF7
2677  #define DIO45_RPORT     PINF
2678  #define DIO45_WPORT     PORTF
2679  #define DIO45_PWM			NULL
2680  #define DIO45_DDR       DDRF
2681  
2682  #define AIO0_PIN PINF0
2683  #define AIO0_RPORT PINF
2684  #define AIO0_WPORT PORTF
2685  #define AIO0_PWM			NULL
2686  #define AIO0_DDR DDRF
2687  
2688  #define AIO1_PIN PINF1
2689  #define AIO1_RPORT PINF
2690  #define AIO1_WPORT PORTF
2691  #define AIO1_PWM			NULL
2692  #define AIO1_DDR DDRF
2693  
2694  #define AIO2_PIN PINF2
2695  #define AIO2_RPORT PINF
2696  #define AIO2_WPORT PORTF
2697  #define AIO2_PWM			NULL
2698  #define AIO2_DDR DDRF
2699  
2700  #define AIO3_PIN PINF3
2701  #define AIO3_RPORT PINF
2702  #define AIO3_WPORT PORTF
2703  #define AIO3_PWM			NULL
2704  #define AIO3_DDR DDRF
2705  
2706  #define AIO4_PIN PINF4
2707  #define AIO4_RPORT PINF
2708  #define AIO4_WPORT PORTF
2709  #define AIO4_PWM			NULL
2710  #define AIO4_DDR DDRF
2711  
2712  #define AIO5_PIN PINF5
2713  #define AIO5_RPORT PINF
2714  #define AIO5_WPORT PORTF
2715  #define AIO5_PWM			NULL
2716  #define AIO5_DDR DDRF
2717  
2718  #define AIO6_PIN PINF6
2719  #define AIO6_RPORT PINF
2720  #define AIO6_WPORT PORTF
2721  #define AIO6_PWM			NULL
2722  #define AIO6_DDR DDRF
2723  
2724  #define AIO7_PIN PINF7
2725  #define AIO7_RPORT PINF
2726  #define AIO7_WPORT PORTF
2727  #define AIO7_PWM			NULL
2728  #define AIO7_DDR DDRF
2729  
2730  //-- Begin not supported by Teensyduino
2731  //-- don't use Arduino functions on these pins pinMode/digitalWrite/etc
2732  #define DIO46_PIN       PINE2
2733  #define DIO46_RPORT     PINE
2734  #define DIO46_WPORT     PORTE
2735  #define DIO46_PWM			NULL
2736  #define DIO46_DDR       DDRE
2737  
2738  #define DIO47_PIN       PINE3
2739  #define DIO47_RPORT     PINE
2740  #define DIO47_WPORT     PORTE
2741  #define DIO47_PWM			NULL
2742  #define DIO47_DDR       DDRE
2743  //-- end not supported by Teensyduino
2744  
2745  #endif
2746  
2747  
2748  #undef PA0
2749  #define PA0_PIN			PINA0
2750  #define PA0_RPORT		PINA
2751  #define PA0_WPORT		PORTA
2752  #define PA0_PWM			NULL
2753  #define PA0_DDR			DDRA
2754  #undef PA1
2755  #define PA1_PIN			PINA1
2756  #define PA1_RPORT		PINA
2757  #define PA1_WPORT		PORTA
2758  #define PA1_PWM			NULL
2759  #define PA1_DDR			DDRA
2760  #undef PA2
2761  #define PA2_PIN			PINA2
2762  #define PA2_RPORT		PINA
2763  #define PA2_WPORT		PORTA
2764  #define PA2_PWM			NULL
2765  #define PA2_DDR			DDRA
2766  #undef PA3
2767  #define PA3_PIN			PINA3
2768  #define PA3_RPORT		PINA
2769  #define PA3_WPORT		PORTA
2770  #define PA3_PWM			NULL
2771  #define PA3_DDR			DDRA
2772  #undef PA4
2773  #define PA4_PIN			PINA4
2774  #define PA4_RPORT		PINA
2775  #define PA4_WPORT		PORTA
2776  #define PA4_PWM			NULL
2777  #define PA4_DDR			DDRA
2778  #undef PA5
2779  #define PA5_PIN			PINA5
2780  #define PA5_RPORT		PINA
2781  #define PA5_WPORT		PORTA
2782  #define PA5_PWM			NULL
2783  #define PA5_DDR			DDRA
2784  #undef PA6
2785  #define PA6_PIN			PINA6
2786  #define PA6_RPORT		PINA
2787  #define PA6_WPORT		PORTA
2788  #define PA6_PWM			NULL
2789  #define PA6_DDR			DDRA
2790  #undef PA7
2791  #define PA7_PIN			PINA7
2792  #define PA7_RPORT		PINA
2793  #define PA7_WPORT		PORTA
2794  #define PA7_PWM			NULL
2795  #define PA7_DDR			DDRA
2796  
2797  #undef PB0
2798  #define PB0_PIN			PINB0
2799  #define PB0_RPORT		PINB
2800  #define PB0_WPORT		PORTB
2801  #define PB0_PWM			NULL
2802  #define PB0_DDR			DDRB
2803  #undef PB1
2804  #define PB1_PIN			PINB1
2805  #define PB1_RPORT		PINB
2806  #define PB1_WPORT		PORTB
2807  #define PB1_PWM			NULL
2808  #define PB1_DDR			DDRB
2809  #undef PB2
2810  #define PB2_PIN			PINB2
2811  #define PB2_RPORT		PINB
2812  #define PB2_WPORT		PORTB
2813  #define PB2_PWM			NULL
2814  #define PB2_DDR			DDRB
2815  #undef PB3
2816  #define PB3_PIN			PINB3
2817  #define PB3_RPORT		PINB
2818  #define PB3_WPORT		PORTB
2819  #define PB3_PWM			NULL
2820  #define PB3_DDR			DDRB
2821  #undef PB4
2822  #define PB4_PIN			PINB4
2823  #define PB4_RPORT		PINB
2824  #define PB4_WPORT		PORTB
2825  #define PB4_PWM			NULL
2826  #define PB4_DDR			DDRB
2827  #undef PB5
2828  #define PB5_PIN			PINB5
2829  #define PB5_RPORT		PINB
2830  #define PB5_WPORT		PORTB
2831  #define PB5_PWM			NULL
2832  #define PB5_DDR			DDRB
2833  #undef PB6
2834  #define PB6_PIN			PINB6
2835  #define PB6_RPORT		PINB
2836  #define PB6_WPORT		PORTB
2837  #define PB6_PWM			NULL
2838  #define PB6_DDR			DDRB
2839  #undef PB7
2840  #define PB7_PIN			PINB7
2841  #define PB7_RPORT		PINB
2842  #define PB7_WPORT		PORTB
2843  #define PB7_PWM			NULL
2844  #define PB7_DDR			DDRB
2845  
2846  #undef PC0
2847  #define PC0_PIN			PINC0
2848  #define PC0_RPORT		PINC
2849  #define PC0_WPORT		PORTC
2850  #define PC0_PWM			NULL
2851  #define PC0_DDR			DDRC
2852  #undef PC1
2853  #define PC1_PIN			PINC1
2854  #define PC1_RPORT		PINC
2855  #define PC1_WPORT		PORTC
2856  #define PC1_PWM			NULL
2857  #define PC1_DDR			DDRC
2858  #undef PC2
2859  #define PC2_PIN			PINC2
2860  #define PC2_RPORT		PINC
2861  #define PC2_WPORT		PORTC
2862  #define PC2_PWM			NULL
2863  #define PC2_DDR			DDRC
2864  #undef PC3
2865  #define PC3_PIN			PINC3
2866  #define PC3_RPORT		PINC
2867  #define PC3_WPORT		PORTC
2868  #define PC3_PWM			NULL
2869  #define PC3_DDR			DDRC
2870  #undef PC4
2871  #define PC4_PIN			PINC4
2872  #define PC4_RPORT		PINC
2873  #define PC4_WPORT		PORTC
2874  #define PC4_PWM			NULL
2875  #define PC4_DDR			DDRC
2876  #undef PC5
2877  #define PC5_PIN			PINC5
2878  #define PC5_RPORT		PINC
2879  #define PC5_WPORT		PORTC
2880  #define PC5_PWM			NULL
2881  #define PC5_DDR			DDRC
2882  #undef PC6
2883  #define PC6_PIN			PINC6
2884  #define PC6_RPORT		PINC
2885  #define PC6_WPORT		PORTC
2886  #define PC6_PWM			NULL
2887  #define PC6_DDR			DDRC
2888  #undef PC7
2889  #define PC7_PIN			PINC7
2890  #define PC7_RPORT		PINC
2891  #define PC7_WPORT		PORTC
2892  #define PC7_PWM			NULL
2893  #define PC7_DDR			DDRC
2894  
2895  #undef PD0
2896  #define PD0_PIN			PIND0
2897  #define PD0_RPORT		PIND
2898  #define PD0_WPORT		PORTD
2899  #define PD0_PWM			NULL
2900  #define PD0_DDR			DDRD
2901  #undef PD1
2902  #define PD1_PIN			PIND1
2903  #define PD1_RPORT		PIND
2904  #define PD1_WPORT		PORTD
2905  #define PD1_PWM			NULL
2906  #define PD1_DDR			DDRD
2907  #undef PD2
2908  #define PD2_PIN			PIND2
2909  #define PD2_RPORT		PIND
2910  #define PD2_WPORT		PORTD
2911  #define PD2_PWM			NULL
2912  #define PD2_DDR			DDRD
2913  #undef PD3
2914  #define PD3_PIN			PIND3
2915  #define PD3_RPORT		PIND
2916  #define PD3_WPORT		PORTD
2917  #define PD3_PWM			NULL
2918  #define PD3_DDR			DDRD
2919  #undef PD4
2920  #define PD4_PIN			PIND4
2921  #define PD4_RPORT		PIND
2922  #define PD4_WPORT		PORTD
2923  #define PD4_PWM			NULL
2924  #define PD4_DDR			DDRD
2925  #undef PD5
2926  #define PD5_PIN			PIND5
2927  #define PD5_RPORT		PIND
2928  #define PD5_WPORT		PORTD
2929  #define PD5_PWM			NULL
2930  #define PD5_DDR			DDRD
2931  #undef PD6
2932  #define PD6_PIN			PIND6
2933  #define PD6_RPORT		PIND
2934  #define PD6_WPORT		PORTD
2935  #define PD6_PWM			NULL
2936  #define PD6_DDR			DDRD
2937  #undef PD7
2938  #define PD7_PIN			PIND7
2939  #define PD7_RPORT		PIND
2940  #define PD7_WPORT		PORTD
2941  #define PD7_PWM			NULL
2942  #define PD7_DDR			DDRD
2943  
2944  #undef PE0
2945  #define PE0_PIN			PINE0
2946  #define PE0_RPORT		PINE
2947  #define PE0_WPORT		PORTE
2948  #define PE0_PWM			NULL
2949  #define PE0_DDR			DDRE
2950  #undef PE1
2951  #define PE1_PIN			PINE1
2952  #define PE1_RPORT		PINE
2953  #define PE1_WPORT		PORTE
2954  #define PE1_PWM			NULL
2955  #define PE1_DDR			DDRE
2956  #undef PE2
2957  #define PE2_PIN			PINE2
2958  #define PE2_RPORT		PINE
2959  #define PE2_WPORT		PORTE
2960  #define PE2_PWM			NULL
2961  #define PE2_DDR			DDRE
2962  #undef PE3
2963  #define PE3_PIN			PINE3
2964  #define PE3_RPORT		PINE
2965  #define PE3_WPORT		PORTE
2966  #define PE3_PWM			NULL
2967  #define PE3_DDR			DDRE
2968  #undef PE4
2969  #define PE4_PIN			PINE4
2970  #define PE4_RPORT		PINE
2971  #define PE4_WPORT		PORTE
2972  #define PE4_PWM			NULL
2973  #define PE4_DDR			DDRE
2974  #undef PE5
2975  #define PE5_PIN			PINE5
2976  #define PE5_RPORT		PINE
2977  #define PE5_WPORT		PORTE
2978  #define PE5_PWM			NULL
2979  #define PE5_DDR			DDRE
2980  #undef PE6
2981  #define PE6_PIN			PINE6
2982  #define PE6_RPORT		PINE
2983  #define PE6_WPORT		PORTE
2984  #define PE6_PWM			NULL
2985  #define PE6_DDR			DDRE
2986  #undef PE7
2987  #define PE7_PIN			PINE7
2988  #define PE7_RPORT		PINE
2989  #define PE7_WPORT		PORTE
2990  #define PE7_PWM			NULL
2991  #define PE7_DDR			DDRE
2992  
2993  #undef PF0
2994  #define PF0_PIN			PINF0
2995  #define PF0_RPORT		PINF
2996  #define PF0_WPORT		PORTF
2997  #define PF0_PWM			NULL
2998  #define PF0_DDR			DDRF
2999  #undef PF1
3000  #define PF1_PIN			PINF1
3001  #define PF1_RPORT		PINF
3002  #define PF1_WPORT		PORTF
3003  #define PF1_PWM			NULL
3004  #define PF1_DDR			DDRF
3005  #undef PF2
3006  #define PF2_PIN			PINF2
3007  #define PF2_RPORT		PINF
3008  #define PF2_WPORT		PORTF
3009  #define PF2_PWM			NULL
3010  #define PF2_DDR			DDRF
3011  #undef PF3
3012  #define PF3_PIN			PINF3
3013  #define PF3_RPORT		PINF
3014  #define PF3_WPORT		PORTF
3015  #define PF3_PWM			NULL
3016  #define PF3_DDR			DDRF
3017  #undef PF4
3018  #define PF4_PIN			PINF4
3019  #define PF4_RPORT		PINF
3020  #define PF4_WPORT		PORTF
3021  #define PF4_PWM			NULL
3022  #define PF4_DDR			DDRF
3023  #undef PF5
3024  #define PF5_PIN			PINF5
3025  #define PF5_RPORT		PINF
3026  #define PF5_WPORT		PORTF
3027  #define PF5_PWM			NULL
3028  #define PF5_DDR			DDRF
3029  #undef PF6
3030  #define PF6_PIN			PINF6
3031  #define PF6_RPORT		PINF
3032  #define PF6_WPORT		PORTF
3033  #define PF6_PWM			NULL
3034  #define PF6_DDR			DDRF
3035  #undef PF7
3036  #define PF7_PIN			PINF7
3037  #define PF7_RPORT		PINF
3038  #define PF7_WPORT		PORTF
3039  #define PF7_PWM			NULL
3040  #define PF7_DDR			DDRF
3041  #endif
3042  
3043  #ifndef	DIO0_PIN
3044  #error pins for this chip not defined in arduino.h! If you write an appropriate pin definition and have this firmware work on your chip, please submit a pull request
3045  #endif
3046  
3047  #endif /* _ARDUINO_H */
3048