X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=examples%2Fboard_reprap%2Fsrc%2Freprap.c;h=4bfc2e6f43d30e032d8515584578e3547fae3f45;hb=80ac5d5142c6658f4fa57b79e6b4cb87114df47d;hp=fc81d7c62ad4e955718fa122aca7ca3ec2483307;hpb=1b4c2367d6ee9a886949eaa64feec929cf8e387d;p=simavr diff --git a/examples/board_reprap/src/reprap.c b/examples/board_reprap/src/reprap.c index fc81d7c..4bfc2e6 100644 --- a/examples/board_reprap/src/reprap.c +++ b/examples/board_reprap/src/reprap.c @@ -38,6 +38,7 @@ #include "button.h" #include "reprap.h" +#include "arduidiot_pins.h" #define __AVR_ATmega644__ #include "marlin/pins.h" @@ -60,73 +61,12 @@ reprap_t reprap; avr_t * avr = NULL; -typedef struct ardupin_t { - uint32_t port : 7, pin : 3, analog : 1, adc : 3, pwm : 1, ardupin; -} ardupin_t, *ardupin_p; - -ardupin_t arduidiot_644[32] = { - [ 0] = { .ardupin = 0, .port = 'B', .pin = 0 }, - [ 1] = { .ardupin = 1, .port = 'B', .pin = 1 }, - [ 2] = { .ardupin = 2, .port = 'B', .pin = 2 }, - [ 3] = { .ardupin = 3, .port = 'B', .pin = 3 }, - [ 4] = { .ardupin = 4, .port = 'B', .pin = 4 }, - [ 5] = { .ardupin = 5, .port = 'B', .pin = 5 }, - [ 6] = { .ardupin = 6, .port = 'B', .pin = 6 }, - [ 7] = { .ardupin = 7, .port = 'B', .pin = 7 }, - - [ 8] = { .ardupin = 8, .port = 'D', .pin = 0 }, - [ 9] = { .ardupin = 9, .port = 'D', .pin = 1 }, - [10] = { .ardupin = 10, .port = 'D', .pin = 2 }, - [11] = { .ardupin = 11, .port = 'D', .pin = 3 }, - [12] = { .ardupin = 12, .port = 'D', .pin = 4 }, - [13] = { .ardupin = 13, .port = 'D', .pin = 5 }, - [14] = { .ardupin = 14, .port = 'D', .pin = 6 }, - [15] = { .ardupin = 15, .port = 'D', .pin = 7 }, - - [16] = { .ardupin = 16, .port = 'C', .pin = 0 }, - [17] = { .ardupin = 17, .port = 'C', .pin = 1 }, - [18] = { .ardupin = 18, .port = 'C', .pin = 2 }, - [19] = { .ardupin = 19, .port = 'C', .pin = 3 }, - [20] = { .ardupin = 20, .port = 'C', .pin = 4 }, - [21] = { .ardupin = 21, .port = 'C', .pin = 5 }, - [22] = { .ardupin = 22, .port = 'C', .pin = 6 }, - [23] = { .ardupin = 23, .port = 'C', .pin = 7 }, - - [24] = { .ardupin = 24, .port = 'A', .pin = 7, .analog = 1, .adc = 7 }, - [25] = { .ardupin = 25, .port = 'A', .pin = 6, .analog = 1, .adc = 6 }, - [26] = { .ardupin = 26, .port = 'A', .pin = 5, .analog = 1, .adc = 5 }, - [27] = { .ardupin = 27, .port = 'A', .pin = 4, .analog = 1, .adc = 4 }, - [28] = { .ardupin = 28, .port = 'A', .pin = 3, .analog = 1, .adc = 3 }, - [29] = { .ardupin = 29, .port = 'A', .pin = 2, .analog = 1, .adc = 2 }, - [30] = { .ardupin = 30, .port = 'A', .pin = 1, .analog = 1, .adc = 1 }, - [31] = { .ardupin = 31, .port = 'A', .pin = 0, .analog = 1, .adc = 0 }, -}; - // gnu hackery to make sure the parameter is expanded #define _TERMISTOR_TABLE(num) \ temptable_##num #define TERMISTOR_TABLE(num) \ _TERMISTOR_TABLE(num) -struct avr_irq_t * -get_ardu_irq( - struct avr_t * avr, - int ardupin, - ardupin_t pins[]) -{ - if (pins[ardupin].ardupin != ardupin) { - printf("%s pin %d isn't correct in table\n", __func__, ardupin); - return NULL; - } - struct avr_irq_t * irq = avr_io_getirq(avr, - AVR_IOCTL_IOPORT_GETIRQ(pins[ardupin].port), pins[ardupin].pin); - if (!irq) { - printf("%s pin %d PORT%C%d not found\n", __func__, ardupin, pins[ardupin].port, pins[ardupin].pin); - return NULL; - } - return irq; -} - /* * called when the AVR change any of the pins on port B * so lets update our buffer