STIMA  3
spi_pins.h
1 // MOSI, MISO, and SCK pin definitions for all standard ATmega microcontrollers
2 #ifndef SPI_PINS_H
3 #define SPI_PINS_H
4 
5 #if defined(__AVR_ATmega64__) || defined(__AVR_ATmega64A__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega128A__) || \
6 defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || \
7 defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) || \
8 defined(__AVR_ATmega165__) || defined(__AVR_ATmega165A__) || defined(__AVR_ATmega165P__) || defined(__AVR_ATmega165PA__) || defined(__AVR_ATmega325__) ||defined(__AVR_ATmega325A__) || defined(__AVR_ATmega325P__) || defined(__AVR_ATmega325PA__) || defined(__AVR_ATmega645__) || defined(__AVR_ATmega645A__) || defined(__AVR_ATmega645P__) || \
9 defined(__AVR_ATmega3250__) || defined(__AVR_ATmega3250A__) || defined(__AVR_ATmega3250P__) || defined(__AVR_ATmega3250PA__) || defined(__AVR_ATmega6450__) || defined(__AVR_ATmega6450A__) || defined(__AVR_ATmega6450P__) || \
10 defined(__AVR_ATmega169__) || defined(__AVR_ATmega169A__) || defined(__AVR_ATmega169P__) || defined(__AVR_ATmega169PA__) || defined(__AVR_ATmega329__) || defined(__AVR_ATmega329A__) || defined(__AVR_ATmega329P__) || defined(__AVR_ATmega329PA__) || defined(__AVR_ATmega3290__) || defined(__AVR_ATmega3290A__) || defined(__AVR_ATmega3290P__) || defined(__AVR_ATmega3290PA__) || defined(__AVR_ATmega649__) || defined(__AVR_ATmega649A__) || defined(__AVR_ATmega649P__) || defined(__AVR_ATmega6490__) || defined(__AVR_ATmega6490A__) || defined(__AVR_ATmega6490P__) || \
11 defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32U6__) || \
12 defined(__AVR_AT90CAN32__ ) || defined(__AVR_AT90CAN64__ ) || defined(__AVR_AT90CAN128__ ) || \
13 defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
14 #define DDR_DI _SFR_IO_ADDR(DDRB), 2 //MMC DI MOSI pin (DDR, PORT)
15 #define PORT_DI _SFR_IO_ADDR(PORTB), 2
16 
17 #define PIN_DO _SFR_IO_ADDR(PINB), 3 //MMC DO MISO pin (PIN, PORT)
18 #define PORT_DO _SFR_IO_ADDR(PORTB), 3
19 
20 #define DDR_CK _SFR_IO_ADDR(DDRB), 1 //MMC SCK pin (DDR, PORT)
21 #define PORT_CK _SFR_IO_ADDR(PORTB), 1
22 
23 
24 #elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega8A__) || defined(__AVR_ATmega48__) || defined(__AVR_ATmega48A__) || defined(__AVR_ATmega48P__) || defined(__AVR_ATmega48PA__) || defined(__AVR_ATmega48PB__) || defined(__AVR_ATmega88__) || defined(__AVR_ATmega88A__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega88PA__) || defined(__AVR_ATmega88PB__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega168A__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega168PA__) || defined(__AVR_ATmega168PB__) ||defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328PB__)
25 #define DDR_DI _SFR_IO_ADDR(DDRB), 3
26 #define PORT_DI _SFR_IO_ADDR(PORTB), 3
27 
28 #define PIN_DO _SFR_IO_ADDR(PINB), 4
29 #define PORT_DO _SFR_IO_ADDR(PORTB), 4
30 
31 #define DDR_CK _SFR_IO_ADDR(DDRB), 5
32 #define PORT_CK _SFR_IO_ADDR(PORTB), 5
33 
34 
35 #elif defined(__AVR_ATmega16__) || defined(__AVR_ATmega16A__) || defined(__AVR_ATmega32__) || defined(__AVR_ATmega32A__) || \
36 defined(__AVR_ATmega161__) || defined(__AVR_ATmega162__) || defined(__AVR_ATmega163__) || \
37 defined(__AVR_ATmega164A__) || defined(__AVR_ATmega164P__) || defined(__AVR_ATmega164PA__) || defined(__AVR_ATmega323__) || defined(__AVR_ATmega324A__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega324PB__) || defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || \
38 defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__)
39 #define DDR_DI _SFR_IO_ADDR(DDRB), 5
40 #define PORT_DI _SFR_IO_ADDR(PORTB), 5
41 
42 #define PIN_DO _SFR_IO_ADDR(PINB), 6
43 #define PORT_DO _SFR_IO_ADDR(PORTB), 6
44 
45 #define DDR_CK _SFR_IO_ADDR(DDRB), 7
46 #define PORT_CK _SFR_IO_ADDR(PORTB), 7
47 
48 
49 #elif defined(__AVR_ATmega16M1__) || defined(__AVR_ATmega32M1__) || defined(__AVR_ATmega64M1__) || defined(__AVR_ATmega32C1__) || defined(__AVR_ATmega64C1__) || \
50 defined(__AVR_AT90PWM1__) || defined(__AVR_AT90PWM2__) || defined(__AVR_AT90PWM2B__) || defined(__AVR_AT90PWM3__) || defined(__AVR_AT90PWM3B__) || defined(__AVR_AT90PWM216__) || defined(__AVR_AT90PWM316__)
51 #define DDR_DI _SFR_IO_ADDR(DDRB), 1
52 #define PORT_DI _SFR_IO_ADDR(PORTB), 1
53 
54 #define PIN_DO _SFR_IO_ADDR(PINB), 0
55 #define PORT_DO _SFR_IO_ADDR(PORTB), 0
56 
57 #define DDR_CK _SFR_IO_ADDR(DDRB), 7
58 #define PORT_CK _SFR_IO_ADDR(PORTB), 7
59 
60 
61 #elif defined(__AVR_AT90PWM81__) || defined(__AVR_AT90PWM161__)
62 #define DDR_DI _SFR_IO_ADDR(DDRB), 4
63 #define PORT_DI _SFR_IO_ADDR(PORTB), 4
64 
65 #define PIN_DO _SFR_IO_ADDR(PINB), 6
66 #define PORT_DO _SFR_IO_ADDR(PORTB), 6
67 
68 #define DDR_CK _SFR_IO_ADDR(DDRB), 5
69 #define PORT_CK _SFR_IO_ADDR(PORTB), 5
70 
71 
72 #else
73 #error SPI pins not defined for your processor. You must modify spi_pins.h
74 #endif
75 
76 #endif //SPI_PINS_H