Project 2  8×8 Dot-Matrix Display
Neff Site
board.h
Go to the documentation of this file.
1 
37 #ifndef XMEGA_A1_XPLAINED_H_
38 #define XMEGA_A1_XPLAINED_H_
39 
65 /****** General-purpose input/output ******/
66 #define GPIO_LOW_PORT PORTD
67 #define GPIO_HIGH_PORT PORTR
68 #define GPIO_LOW_PINS_gp 0
69 #define GPIO_LOW_PINS_gm 0x3F
70 #define GPIO_HIGH_PINS_gp 6
71 #define GPIO_HIGH_PINS_gm 0xC0
72 
73 #define GPIO_PIN0_bp PIN0_bp
74 #define GPIO_PIN1_bp PIN1_bp
75 #define GPIO_PIN2_bp PIN2_bp
76 #define GPIO_PIN3_bp PIN3_bp
77 #define GPIO_PIN4_bp PIN4_bp
78 #define GPIO_PIN5_bp PIN5_bp
79 #define GPIO_PIN6_bp PIN0_bp
80 #define GPIO_PIN7_bp PIN1_bp
81 
82 #define GPIO_PIN0_bm PIN0_bm
83 #define GPIO_PIN1_bm PIN1_bm
84 #define GPIO_PIN2_bm PIN2_bm
85 #define GPIO_PIN3_bm PIN3_bm
86 #define GPIO_PIN4_bm PIN4_bm
87 #define GPIO_PIN5_bm PIN5_bm
88 #define GPIO_PIN6_bm PIN0_bm
89 #define GPIO_PIN7_bm PIN1_bm
90 
91 #define GPIO_PIN0CTRL GPIO_LOW_PORT.PIN0CTRL
92 #define GPIO_PIN1CTRL GPIO_LOW_PORT.PIN1CTRL
93 #define GPIO_PIN2CTRL GPIO_LOW_PORT.PIN2CTRL
94 #define GPIO_PIN3CTRL GPIO_LOW_PORT.PIN3CTRL
95 #define GPIO_PIN4CTRL GPIO_LOW_PORT.PIN4CTRL
96 #define GPIO_PIN5CTRL GPIO_LOW_PORT.PIN5CTRL
97 #define GPIO_PIN6CTRL GPIO_HIGH_PORT.PIN0CTRL
98 #define GPIO_PIN7CTRL GPIO_HIGH_PORT.PIN1CTRL
99 
102 #define GPIO_READ() ((GPIO_LOW_PORT.IN & GPIO_LOW_PINS_gm) | ((GPIO_HIGH_PORT.IN << GPIO_HIGH_PINS_gp) & GPIO_HIGH_PINS_gm))
103 
107 #define GPIO_WRITE(VAL) GPIO_LOW_PORT.OUT = (VAL) & GPIO_LOW_PINS_gm; GPIO_HIGH_PORT.OUT = (((VAL) & GPIO_HIGH_PINS_gm) >> GPIO_HIGH_PINS_gp);
108 
133 /****** Active low LEDs ******/
134 #define LED_PORT PORTE
135 #define LED_PINS_gp 0
136 #define LED_PINS_gm 0xFF
137 
138 #define LED0_PIN_bp PIN0_bp
139 #define LED1_PIN_bp PIN1_bp
140 #define LED2_PIN_bp PIN2_bp
141 #define LED3_PIN_bp PIN3_bp
142 #define LED4_PIN_bp PIN4_bp
143 #define LED5_PIN_bp PIN5_bp
144 #define LED6_PIN_bp PIN6_bp
145 #define LED7_PIN_bp PIN7_bp
146 
147 #define LED0_PIN_bm PIN0_bm
148 #define LED1_PIN_bm PIN1_bm
149 #define LED2_PIN_bm PIN2_bm
150 #define LED3_PIN_bm PIN3_bm
151 #define LED4_PIN_bm PIN4_bm
152 #define LED5_PIN_bm PIN5_bm
153 #define LED6_PIN_bm PIN6_bm
154 #define LED7_PIN_bm PIN7_bm
155 
182 /****** Active low push buttons ******/
183 #define BUTTON_LOW_PORT PORTD
184 #define BUTTON_HIGH_PORT PORTR
185 #define BUTTON_LOW_PINS_gp 0
186 #define BUTTON_LOW_PINS_gm 0x3F
187 #define BUTTON_HIGH_PINS_gp 6
188 #define BUTTON_HIGH_PINS_gm 0xC0
189 
190 #define BUTTON0_PIN_bp PIN0_bp
191 #define BUTTON1_PIN_bp PIN1_bp
192 #define BUTTON2_PIN_bp PIN2_bp
193 #define BUTTON3_PIN_bp PIN3_bp
194 #define BUTTON4_PIN_bp PIN4_bp
195 #define BUTTON5_PIN_bp PIN5_bp
196 #define BUTTON6_PIN_bp PIN0_bp
197 #define BUTTON7_PIN_bp PIN1_bp
198 
199 #define BUTTON0_PIN_bm PIN0_bm
200 #define BUTTON1_PIN_bm PIN1_bm
201 #define BUTTON2_PIN_bm PIN2_bm
202 #define BUTTON3_PIN_bm PIN3_bm
203 #define BUTTON4_PIN_bm PIN4_bm
204 #define BUTTON5_PIN_bm PIN5_bm
205 #define BUTTON6_PIN_bm PIN0_bm
206 #define BUTTON7_PIN_bm PIN1_bm
207 
208 #define BUTTON0_PINCTRL BUTTON_LOW_PORT.PIN0CTRL
209 #define BUTTON1_PINCTRL BUTTON_LOW_PORT.PIN1CTRL
210 #define BUTTON2_PINCTRL BUTTON_LOW_PORT.PIN2CTRL
211 #define BUTTON3_PINCTRL BUTTON_LOW_PORT.PIN3CTRL
212 #define BUTTON4_PINCTRL BUTTON_LOW_PORT.PIN4CTRL
213 #define BUTTON5_PINCTRL BUTTON_LOW_PORT.PIN5CTRL
214 #define BUTTON6_PINCTRL BUTTON_HIGH_PORT.PIN0CTRL
215 #define BUTTON7_PINCTRL BUTTON_HIGH_PORT.PIN1CTRL
216 
219 #define BUTTONS_READ() ((BUTTON_LOW_PORT.IN & BUTTON_LOW_PINS_gm) | ((BUTTON_HIGH_PORT.IN << BUTTON_HIGH_PINS_gp) & BUTTON_HIGH_PINS_gm))
220 
224 #define BUTTON_PRESSED(BUTTON) (!(BUTTONS_READ() & (1 << BUTTON)))
225 
234 /****** USART-to-USB gateway ******/
235 #define USART0_RX_PIN_bm PIN2_bm
236 #define USART0_TX_PIN_bm PIN3_bm
237 #define USART1_RX_PIN_bm PIN6_bm
238 #define USART1_TX_PIN_bm PIN7_bm
239 
240 #define USB_USART_PORT PORTC
241 #define USB_USART_MODULE USARTC0
242 #define USB_USART_RX_PIN_bm USART0_RX_PIN_bm
243 #define USB_USART_TX_PIN_bm USART0_TX_PIN_bm
244 #define USB_USART_RXC_vect USARTC0_RXC_vect
245 #define USB_USART_DRE_vect USARTC0_DRE_vect
246 
247 #define USB_USART_BSEL 11
248 #define USB_USART_BSCALE (-7)
249 #define USB_USART_CONFIG (USART_CHSIZE_8BIT_gc | USART_PMODE_DISABLED_gc)
250 
251 #define USB_USART_SPEED 115200
252 
254 /****** Sensors ******/
255 #define SENSOR_PORT PORTB
256 #define SENSOR_ADC_MODULE ADCB
257 
285 /****** Light sensor ******/
286 #define LIGHT_SENSOR_SIGNAL_PIN_bp PIN1_bp
287 #define LIGHT_SENSOR_SIGNAL_PIN_bm PIN1_bm
288 #define LIGHT_SENSOR_ADC_INPUT ADC_CH_MUXPOS_PIN1_gc
289 
318 /****** Temperature sensor ******/
319 #define TEMPERATURE_SENSOR_SIGNAL_PIN_bp PIN0_bp
320 #define TEMPERATURE_SENSOR_SIGNAL_PIN_bm PIN0_bm
321 #define TEMPERATURE_SENSOR_ENABLE_PIN_bp PIN3_bp
322 #define TEMPERATURE_SENSOR_ENABLE_PIN_bm PIN3_bm
323 #define TEMPERATURE_SENSOR_ADC_INPUT ADC_CH_MUXPOS_PIN0_gc
324 
350 /****** Speaker ******/
351 #define SPEAKER_SIGNAL_PORT PORTB
352 #define SPEAKER_SIGNAL_PIN_bp PIN2_bp
353 #define SPEAKER_SIGNAL_PIN_bm PIN2_bm
354 #define SPEAKER_SHUTDOWN_PORT PORTQ
355 #define SPEAKER_SHUTDOWN_PIN_bp PIN3_bp
356 #define SPEAKER_SHUTDOWN_PIN_bm PIN3_bm
357 #define SPEAKER_DAC_MODULE DACB
358 #define SPEAKER_DAC_CHANNEL 0
359 
364 /****** Internal oscillator ******/
365 #define OSC_INTERNAL_2HZ 2000000L
366 #define OSC_INTERNAL_32HZ 32000000L
367 
368 /****** Default oscillator ******/
369 #define OSC_DEFAULT_HZ OSC_INTERNAL_2HZ
370 
371 /****** F_CPU ******/
372 #ifndef F_CPU
373 #define F_CPU OSC_INTERNAL_2HZ
374 #warning "F_CPU initialized with default value"
375 #endif
376 
378 #endif /* XMEGA_A1_XPLAINED_H_ */
Contact