4 Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
6 This file is part of simavr.
8 simavr is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 simavr is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with simavr. If not, see <http://www.gnu.org/licenses/>.
24 #include "arduidiot_pins.h"
26 #include "avr_ioport.h"
28 ardupin_t arduidiot_644[32] = {
29 [ 0] = { .ardupin = 0, .port = 'B', .pin = 0 },
30 [ 1] = { .ardupin = 1, .port = 'B', .pin = 1 },
31 [ 2] = { .ardupin = 2, .port = 'B', .pin = 2 },
32 [ 3] = { .ardupin = 3, .port = 'B', .pin = 3 },
33 [ 4] = { .ardupin = 4, .port = 'B', .pin = 4 },
34 [ 5] = { .ardupin = 5, .port = 'B', .pin = 5 },
35 [ 6] = { .ardupin = 6, .port = 'B', .pin = 6 },
36 [ 7] = { .ardupin = 7, .port = 'B', .pin = 7 },
38 [ 8] = { .ardupin = 8, .port = 'D', .pin = 0 },
39 [ 9] = { .ardupin = 9, .port = 'D', .pin = 1 },
40 [10] = { .ardupin = 10, .port = 'D', .pin = 2 },
41 [11] = { .ardupin = 11, .port = 'D', .pin = 3 },
42 [12] = { .ardupin = 12, .port = 'D', .pin = 4 },
43 [13] = { .ardupin = 13, .port = 'D', .pin = 5 },
44 [14] = { .ardupin = 14, .port = 'D', .pin = 6 },
45 [15] = { .ardupin = 15, .port = 'D', .pin = 7 },
47 [16] = { .ardupin = 16, .port = 'C', .pin = 0 },
48 [17] = { .ardupin = 17, .port = 'C', .pin = 1 },
49 [18] = { .ardupin = 18, .port = 'C', .pin = 2 },
50 [19] = { .ardupin = 19, .port = 'C', .pin = 3 },
51 [20] = { .ardupin = 20, .port = 'C', .pin = 4 },
52 [21] = { .ardupin = 21, .port = 'C', .pin = 5 },
53 [22] = { .ardupin = 22, .port = 'C', .pin = 6 },
54 [23] = { .ardupin = 23, .port = 'C', .pin = 7 },
56 [24] = { .ardupin = 24, .port = 'A', .pin = 7, .analog = 1, .adc = 7 },
57 [25] = { .ardupin = 25, .port = 'A', .pin = 6, .analog = 1, .adc = 6 },
58 [26] = { .ardupin = 26, .port = 'A', .pin = 5, .analog = 1, .adc = 5 },
59 [27] = { .ardupin = 27, .port = 'A', .pin = 4, .analog = 1, .adc = 4 },
60 [28] = { .ardupin = 28, .port = 'A', .pin = 3, .analog = 1, .adc = 3 },
61 [29] = { .ardupin = 29, .port = 'A', .pin = 2, .analog = 1, .adc = 2 },
62 [30] = { .ardupin = 30, .port = 'A', .pin = 1, .analog = 1, .adc = 1 },
63 [31] = { .ardupin = 31, .port = 'A', .pin = 0, .analog = 1, .adc = 0 },
72 if (pins[ardupin].ardupin != ardupin) {
73 printf("%s pin %d isn't correct in table\n", __func__, ardupin);
76 struct avr_irq_t * irq = avr_io_getirq(avr,
77 AVR_IOCTL_IOPORT_GETIRQ(pins[ardupin].port), pins[ardupin].pin);
79 printf("%s pin %d PORT%C%d not found\n", __func__, ardupin, pins[ardupin].port, pins[ardupin].pin);