ATmega328p
Hardware definitions
Loading...
Searching...
No Matches
Config.h
Go to the documentation of this file.
1
5
6#ifndef ATMEGA328P_DEFINITIONS_CONFIG_H
7#define ATMEGA328P_DEFINITIONS_CONFIG_H
8
10#define MCU_ATMEGA328P 1
11
13#define MCU_HAS_GPIO 1
14#define MCU_HAS_ADC 1
15#define MCU_HAS_PWM 1
16#define MCU_HAS_TIMER0 1
17#define MCU_HAS_TIMER1 1
18#define MCU_HAS_TIMER2 1
19#define MCU_HAS_USART 1
20#define MCU_HAS_SPI 1
21#define MCU_HAS_TWI 1
22#define MCU_HAS_ANALOG_COMPARATOR 1
23#define MCU_HAS_WATCHDOG 1
24#define MCU_HAS_EXTERNAL_INTERRUPTS 1
25#define MCU_HAS_PIN_CHANGE_INTERRUPTS 1
26#define MCU_HAS_DEBUGWIRE 1
27#define MCU_HAS_SELF_PROGRAMMABLE_FLASH 1
28
29#if (defined(MCU_PACKAGE_PDIP28) + defined(MCU_PACKAGE_MLF28) + \
30 defined(MCU_PACKAGE_TQFP32) + defined(MCU_PACKAGE_MLF32)) > 1
31#error "Select only one MCU package."
32#endif
33
34#if (defined(MCU_GRADE_INDUSTRIAL_85C) + \
35 defined(MCU_GRADE_INDUSTRIAL_105C) + \
36 defined(MCU_GRADE_AUTOMOTIVE_125C)) > 1
37#error "Select only one MCU operating grade."
38#endif
39
40#if (defined(MCU_MLF32_PUNCH) + defined(MCU_MLF32_SAWN)) > 1
41#error "Select only one MLF32 package style."
42#endif
43
44#if (defined(MCU_MLF32_PUNCH) || defined(MCU_MLF32_SAWN)) && \
45 !defined(MCU_PACKAGE_MLF32)
46#error "An MLF32 style requires MCU_PACKAGE_MLF32."
47#endif
48
49#if defined(MCU_REQUIRE_PACKAGE) && \
50 !defined(MCU_PACKAGE_PDIP28) && !defined(MCU_PACKAGE_MLF28) && \
51 !defined(MCU_PACKAGE_TQFP32) && !defined(MCU_PACKAGE_MLF32)
52#error "Select the physical MCU package."
53#endif
54
55#if defined(MCU_REQUIRE_GRADE) && \
56 !defined(MCU_GRADE_INDUSTRIAL_85C) && \
57 !defined(MCU_GRADE_INDUSTRIAL_105C) && \
58 !defined(MCU_GRADE_AUTOMOTIVE_125C)
59#error "Select the MCU operating grade."
60#endif
61
62#if defined(MCU_REQUIRE_MLF32_STYLE) && defined(MCU_PACKAGE_MLF32) && \
63 !defined(MCU_MLF32_PUNCH) && !defined(MCU_MLF32_SAWN)
64#error "Select the MLF32 package style."
65#endif
66
67#if defined(MCU_PACKAGE_MLF28) && defined(MCU_GRADE_INDUSTRIAL_105C)
68#error "The selected MLF28 ordering is not listed for the 105C grade."
69#endif
70
71#if defined(MCU_GRADE_AUTOMOTIVE_125C) && \
72 !defined(MCU_PACKAGE_TQFP32) && !defined(MCU_PACKAGE_MLF32)
73#error "The automotive 125C grade is listed only for 32-terminal packages."
74#endif
75
76#endif