Ok, I think I got it, this should agree with the schematic post of the 1284 I posted earlier:
added to pins_arduino.c:
#elif defined(__AVR_ATmega1284__)
//* pin defs for bobuino & 1284 board
#include "pins_duino1284.cxx"
created new pins_duino1284.cxx
/*
24 July - Modified for 1284 - RWP
pins_arduino.c - pin definitions for the Arduino board
Part of Arduino / Wiring Lite
Copyright (c) 2005 David A. Mellis
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General
Public License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
$Id: pins_arduino.c 254 2007-04-20 23:17:38Z mellis $
*/
#ifndef _AVR_IO_H_
#include <avr/io.h>
#endif
//#include "wiring_private.h"
#ifndef Wiring_h
#include "wiring.h"
#endif
#ifndef Pins_Arduino_h
#include "pins_arduino.h"
#endif
// On the Sanguino/Bobuino board, digital pins are also used
// for the analog output (software PWM). Analog input
// pins are a separate set.
// ATMEL ATMEGA1284P / BOBUINO
//
// +---\/---+
// INT0 (D 4) PB0 1| |40 PA0 (AI 0 / D14)
// INT1 (D 5) PB1 2| |39 PA1 (AI 1 / D15)
// INT2 (D 6) PB2 3| |38 PA2 (AI 2 / D16)
// PWM (D 7) PB3 4| |37 PA3 (AI 3 / D17)
// PWM (D 10) PB4 5| |36 PA4 (AI 4 / D18)
// MOSI (D 11) PB5 6| |35 PA5 (AI 5 / D19)
// MISO (D 12) PB6 7| |34 PA6 (AI 6 / D21)
// SCK (D 13) PB7 8| |33 PA7 (AI 7 / D22)
// RST 9| |32 AREF
// VCC 10| |31 GND
// GND 11| |30 AVCC
// XTAL2 12| |29 PC7 (D 29)
// XTAL1 13| |28 PC6 (D 28)
// RX0 (D 0) PD0 14| |27 PC5 (D 27) TDI
// TX0 (D 1) PD1 15| |26 PC4 (D 26) TDO
// RX1 (D 2) PD2 16| |25 PC3 (D 25) TMS
// TX1 (D 3) PD3 17| |24 PC2 (D 24) TCK
// PWM (D 30) PD4 18| |23 PC1 (D 23) SDA
// PWM (D 8 ) PD5 19| |22 PC0 (D 22) SCL
// PWM (D 9) PD6 20| |21 PD7 (D 31) PWM
// +--------+
//
#define PA 1
#define PB 2
#define PC 3
#define PD 4
// these arrays map port names (e.g. port B) to the
// appropriate addresses for various functions (e.g. reading
// and writing)
const uint16_t PROGMEM port_to_mode_PGM[] =
{
NOT_A_PORT,
&DDRA,
&DDRB,
&DDRC,
&DDRD,
};
const uint16_t PROGMEM port_to_output_PGM[] =
{
NOT_A_PORT,
&PORTA,
&PORTB,
&PORTC,
&PORTD,
};
const uint16_t PROGMEM port_to_input_PGM[] =
{
NOT_A_PORT,
&PINA,
&PINB,
&PINC,
&PIND,
};
const uint8_t PROGMEM digital_pin_to_port_PGM[] =
{
PD, /* 0 PD0 */
PD, /* 1 PD1 */
PD, /* 2 PD2 */
PD, /* 3 PD3 */
PB, /* 4 PB0 */
PB, /* 5 PB1 */
PB, /* 6 PB2 */
PB, /* 7 PB3 */
PD, /* 8 PD5 */
PD, /* 9 PD6 */
PB, /* 10 PB4 */
PB, /* 11 PB5 */
PB, /* 12 PB6 */
PB, /* 13 PB7 */
PA, /* 14 PA0 */
PA, /* 15 PA1 */
PA, /* 16 PA2 */
PA, /* 17 PA3 */
PA, /* 18 PA4 */
PA, /* 19 PA5 */
PA, /* 20 PA6 */
PA, /* 21 PA7 */
PC, /* 22 PC0 */
PC, /* 23 PC1 */
PC, /* 24 PC2 */
PC, /* 25 PC3 */
PC, /* 26 PC4 */
PC, /* 27 PC5 */
PC, /* 28 PC6 */
PC, /* 29 PC7 */
PD, /* 30 PD4 */
PD /* 31 PD7 */
};
const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] =
{
_BV(0), /*D0: 0, port D */
_BV(1), /*D1: 1, port D */
_BV(2), /*D2: 2, port D */
_BV(3), /*D3: 3, port D */
_BV(0), /*D4: 0, port B */
_BV(1), /*D5: 1, port B */
_BV(2), /*D6: 2, port B */
_BV(3), /*D7: 3, port B */
_BV(5), /*D8: 5, port D */
_BV(6), /*D9: 6, port D */
_BV(4), /*D10: 4, port B */
_BV(5), /*D11: 5, port B */
_BV(6), /*D12: 6, port B */
_BV(7), /*D13: 7, port B */
_BV(0), /*D14: 0, port A */
_BV(1), /*D15: 1, port A */
_BV(2), /*D16, 2, port A */
_BV(3), /*D17: 3, port A */
_BV(4), /*D18: 4, port A */
_BV(5), /*D19: 5, port A */
_BV(6), /*D20: 6, port A */
_BV(7), /*D21: 7, port A */
_BV(0), /*D22: 0, port C */
_BV(1), /*D23: 1, port C */
_BV(2), /*D24, 2, port C */
_BV(3), /*D25: 3, port C */
_BV(4), /*D26: 4, port C */
_BV(5), /*D27: 5, port C */
_BV(6), /*D28: 6, port C */
_BV(7), /*D29: 7, port C */
_BV(4), /*D30: 4, port D */
_BV(7) /*D31: 7, port D */
};
const uint8_t PROGMEM digital_pin_to_timer_PGM[] =
{
NOT_ON_TIMER, /* 0 - PD0 */
NOT_ON_TIMER, /* 1 - PD1 */
NOT_ON_TIMER, /* 2 - PD2 */
NOT_ON_TIMER, /* 3 - PD3 */
NOT_ON_TIMER, /* 4 - PB0 */
NOT_ON_TIMER, /* 5 - PB1 */
NOT_ON_TIMER, /* 6 - PB2 */
TIMER0A, /* 7 - PB3 */ // PWM
TIMER1A, /* 8 - PD5 */ // PWM
TIMER2B, /* 9 - PD6 */ // PWM
TIMER0B /* 10 - PB4 */ // PWM
NOT_ON_TIMER, /* 11 - PB5 */
NOT_ON_TIMER, /* 12 - PB6 */
NOT_ON_TIMER, /* 13 - PB7 */
NOT_ON_TIMER, /* 14 - PA0 */
NOT_ON_TIMER, /* 15 - PA1 */
NOT_ON_TIMER, /* 16 - PA2 */
NOT_ON_TIMER, /* 17 - PA3 */
NOT_ON_TIMER, /* 18 - PA4 */
NOT_ON_TIMER, /* 19 - PA5 */
NOT_ON_TIMER, /* 20 - PA6 */
NOT_ON_TIMER, /* 21 - PA7 */
NOT_ON_TIMER, /* 22 - PC0 */
NOT_ON_TIMER, /* 23 - PC1 */
NOT_ON_TIMER, /* 24 - PC2 */
NOT_ON_TIMER, /* 25 - PC3 */
NOT_ON_TIMER, /* 26 - PC4 */
NOT_ON_TIMER, /* 27 - PC5 */
NOT_ON_TIMER, /* 28 - PC6 */
NOT_ON_TIMER, /* 29 - PC7 */
TIMER1B, /* 30 - PD4 */ // PWM
TIMER2A /* 31 - PD7 */ // PWM
};