Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00067 #ifndef BOARD_ROSE231_H
00068 #define BOARD_ROSE231_H (1)
00069
00070 # define BOARD_TYPE (BOARD_ROSE231)
00071 # define BOARD_NAME "Rocketsensor 231"
00072 # define RADIO_TYPE (RADIO_AT86RF231)
00074
00075
00076 #ifndef DEFAULT_SPI_RATE
00077 # define DEFAULT_SPI_RATE (SPI_RATE_1_2)
00078 #endif
00079
00080
00081
00082
00083
00084 #define DDR_TRX_RESET DDRC
00085 #define PORT_TRX_RESET PORTC
00086 #define MASK_TRX_RESET ((1<<2))
00087
00088
00089
00090 #define PORT_TRX_SLPTR PORTC
00091 #define DDR_TRX_SLPTR DDRC
00092 #define MASK_TRX_SLPTR ((1<<0))
00096
00097
00098 #define TRX_IRQ_PORT (PORTD)
00099 #define TRX_IRQ_DDR (DDRD)
00100 #define TRX_IRQ_PIN (PIND)
00101 #define TRX_IRQ_bp (5)
00102
00103 # define TRX_IRQ 0x00
00104 # define TRX_IRQ_vect PCINT2_vect
00109 # define TRX_IRQ_INIT() do{ PCICR |= (1<<PCIE2); } while(0)
00110
00111 #define DI_TRX_IRQ() { PCMSK2 &= ~(1<<PCINT21); }
00112
00113 #define EI_TRX_IRQ() { PCMSK2 |= (1<<PCINT21); }
00114
00115
00116 #define SPI_TYPE SPI_TYPE_SPI
00117 #define DDR_SPI (DDRB)
00118 #define PORT_SPI (PORTB)
00120 #define SPI_MOSI (1<<PB3)
00121 #define SPI_MISO (1<<PB4)
00122 #define SPI_SCK (1<<PB5)
00123 #define SPI_SS (1<<PB0)
00126 #define SPI_DATA_REG SPDR
00132 static inline void SPI_INIT(uint8_t spirate)
00133 {
00134
00135
00136
00137 PORT_SPI |= (1<<PB2);
00138
00139 PORT_SPI |= SPI_SS | SPI_MISO | SPI_MOSI | SPI_SCK;
00140 DDR_SPI |= SPI_MOSI | SPI_SCK | SPI_SS;
00141 DDR_SPI &= ~SPI_MISO;
00142
00143 SPCR = ((1<<SPE) | (1<<MSTR));
00144
00145 SPCR &= ~((1<<SPR1) | (1<<SPR0) );
00146 SPSR &= ~(1<<SPI2X);
00147
00148 SPCR |= (spirate & 0x03);
00149 SPSR |= ((spirate >> 2) & 0x01);
00150 }
00151
00153 #define SPI_SELN_LOW() uint8_t sreg = SREG; cli(); PORT_SPI &=~SPI_SS
00154
00155 #define SPI_SELN_HIGH() PORT_SPI |= SPI_SS; SREG = sreg
00156
00157 #define SPI_WAITFOR() do { while((SPSR & (1<<SPIF)) == 0);} while(0)
00158
00159
00160
00161 #define LED_PORT PORTD
00162 #define LED_DDR DDRD
00163 #define LED_MASK (0x18)
00164 #define LED_SHIFT (3)
00165 #define LEDS_INVERSE (0)
00167 #define LED_NUMBER (2)
00169
00170 #define LED_PIN PIND
00171 #define LED_ANODE_bp (3)
00172 #define LED_CATHODE_bp (4)
00174
00175 #define NO_KEYS (1)
00177
00178
00179 #define HIF_TYPE HIF_NONE
00180
00181
00182
00183
00184
00185 #define HWTMR_PRESCALE (8)
00186 #define HWTIMER_TICK ((1.0*HWTMR_PRESCALE)/F_CPU)
00187 #define HWTIMER_TICK_NB (1000UL)
00188 #define HWTIMER_REG (TCNT1)
00189 #define TIMER_TICK (HWTIMER_TICK_NB * HWTIMER_TICK)
00190 #define TIMER_POOL_SIZE (4)
00191 #define TIMER_INIT() \
00192 do{ \
00193 TCCR1B = 0; \
00194 OCR1A = HWTIMER_TICK_NB; \
00195 TCCR1B |= ((1<<WGM12) | (1<<CS11)); \
00196 TIMSK1 |= (1<<OCIE1A); \
00197 }while(0)
00198 # define TIMER_IRQ_vect TIMER1_COMPA_vect
00199
00200
00201
00202 #endif