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_MIDGEE_H
00068 #define BOARD_MIDGEE_H (1)
00069
00070 # define BOARD_TYPE (BOARD_MIDGEE)
00071 # define BOARD_NAME "Midgee"
00072 # define RADIO_TYPE (RADIO_AT86RF232)
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 (PORTB)
00099 #define TRX_IRQ_DDR (DDRB)
00100 #define TRX_IRQ_PIN (PINB)
00101 #define TRX_IRQ_bp (0)
00102
00103 # define TRX_IRQ_vect TIMER1_CAPT_vect
00107 # define TRX_IRQ_INIT() do{ TCCR1B = (1<<ICES1) | (1<<CS10); } while(0)
00108 #define DI_TRX_IRQ() { TIMSK1 &= ~(1<<ICIE1); }
00109 #define EI_TRX_IRQ() { TIMSK1 |= (1<<ICIE1); }
00110
00111
00112 #define SPI_TYPE SPI_TYPE_SPI
00113 #define DDR_SPI (DDRB)
00114 #define PORT_SPI (PORTB)
00116 #define SPI_MOSI (1<<PB3)
00117 #define SPI_MISO (1<<PB4)
00118 #define SPI_SCK (1<<PB5)
00119 #define SPI_SS (1<<PB2)
00122 #define SPI_DATA_REG SPDR
00128 static inline void SPI_INIT(uint8_t spirate)
00129 {
00130
00131
00132 PORT_SPI |= SPI_SS | SPI_MISO | SPI_MOSI | SPI_SCK;
00133 DDR_SPI |= SPI_MOSI | SPI_SCK | SPI_SS;
00134 DDR_SPI &= ~SPI_MISO;
00135
00136 SPCR = ((1<<SPE) | (1<<MSTR));
00137
00138 SPCR &= ~((1<<SPR1) | (1<<SPR0) );
00139 SPSR &= ~(1<<SPI2X);
00140
00141 SPCR |= (spirate & 0x03);
00142 SPSR |= ((spirate >> 2) & 0x01);
00143 }
00144
00146 #define SPI_SELN_LOW() uint8_t sreg = SREG; cli(); PORT_SPI &=~SPI_SS
00147
00148 #define SPI_SELN_HIGH() PORT_SPI |= SPI_SS; SREG = sreg
00149
00150 #define SPI_WAITFOR() do { while((SPSR & (1<<SPIF)) == 0);} while(0)
00151
00152
00153
00154 #define LED_PORT PORTD
00155 #define LED_DDR DDRD
00156 #define LED_MASK (0x10)
00157 #define LED_SHIFT (3)
00158 #define LEDS_INVERSE (0)
00160 #define LED_NUMBER (2)
00162
00163 #define LED_PIN PIND
00164 #define LED_ANODE_bp (4)
00165 #define LED_CATHODE_bp (3)
00167
00168 #define LED_INIT() do{ LED_PORT &= ~((1<<LED_CATHODE_bp) | (1<<LED_ANODE_bp)); \
00169 LED_DDR |= ((1<<LED_CATHODE_bp) | (1<<LED_ANODE_bp)); }while(0)
00170
00171
00172 #define NO_KEYS (1)
00174
00175
00176 #define HIF_TYPE HIF_NONE
00177
00178
00179
00180
00181
00182 #define HWTMR_PRESCALE (8)
00183 #define HWTIMER_TICK ((1.0*HWTMR_PRESCALE)/F_CPU)
00184 #define HWTIMER_TICK_NB (1000UL)
00185 #define HWTIMER_REG (TCNT1)
00186 #define TIMER_TICK (HWTIMER_TICK_NB * HWTIMER_TICK)
00187 #define TIMER_POOL_SIZE (4)
00188 #define TIMER_INIT() \
00189 do{ \
00190 TCCR1B = 0; \
00191 OCR1A = HWTIMER_TICK_NB; \
00192 TCCR1B |= ((1<<WGM12) | (1<<CS11)); \
00193 TIMSK1 |= (1<<OCIE1A); \
00194 }while(0)
00195 # define TIMER_IRQ_vect TIMER1_COMPA_vect
00196
00197
00198
00199 #endif