diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2024-09-10 21:06:28 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2024-09-10 21:06:28 +0800 |
| commit | e54cdd000a9cb3ec66e5188c43cc94b73a477ba6 (patch) | |
| tree | 06a0d6d4da2cba7e5c1451b526a6a2bdf3c2b761 | |
| parent | 5f0f9dc5741a78a88ff96c74eec66796e3c2326e (diff) | |
| download | bare-metal-arduino-due-e54cdd000a9cb3ec66e5188c43cc94b73a477ba6.tar.gz | |
Peripheral clock.
| -rw-r--r-- | main.c | 24 |
1 files changed, 16 insertions, 8 deletions
@@ -8,27 +8,35 @@ #define PIO_PER *((volatile unsigned int *)(PORT + 0x0000u)) #define PIO_OER *((volatile unsigned int *)(PORT + 0x0010u)) #define PIO_SODR *((volatile unsigned int *)(PORT + 0x0030u)) -#define PIO_ODSR *((volatile unsigned int *)(PORT + 0x0038u)) #define PIO_PUDR *((volatile unsigned int *)(PORT + 0x0060u)) #define PIO_WPMR *((volatile unsigned int *)(PORT + 0x00E4u)) -#define WPKEY 0x50494Fu +#define PIO_WPKEY 0x50494Fu -#define GPIO_NUM 1 +#define PMC_PID 13 +#define PMC_WPKEY 0x504D43u + +#define PMC_WPMR *((volatile unsigned int *)(PORT + 0x400E06E4u)) +#define PMC_PCER0 *((volatile unsigned int *)(PORT + 0x400E0610u)) + +#define GPIO_NUM 1 #define GPIO_MASK (1u << GPIO_NUM) int main(void) { - // todo: enable peripheral clock - - PIO_WPMR = WPKEY << 8; + // enable peripheral clock + PMC_WPMR = PMC_WPKEY << 8; + PMC_PCER0 |= (1u << PMC_PID); + PMC_WPMR = (PMC_WPKEY << 8) | 1u; + // enable port, set to output, disable pull-up + PIO_WPMR = PIO_WPKEY << 8; PIO_PER |= GPIO_MASK; PIO_OER |= GPIO_MASK; PIO_PUDR |= GPIO_MASK; + PIO_WPMR = (PIO_WPKEY << 8) | 1u; - PIO_WPMR = (WPKEY << 8) | 1u; - + // set pin to logic 1 PIO_SODR |= GPIO_MASK; for (;;) |
