1 #ifndef __INIT_H__ 2 #define __INIT_H__ 3 4 #include "pic32_c.h" 5 6 /* Basic initialisation. */ 7 8 void init_memory(void); 9 void init_pins(void); 10 void init_outputs(void); 11 12 /* Peripheral pin configuration. */ 13 14 void config_uart(void); 15 void lock_config(void); 16 void unlock_config(void); 17 18 /* Convenience operations. */ 19 20 void interrupts_on(void); 21 22 /* DMA configuration. */ 23 24 void init_dma(void); 25 26 void dma_init(int channel, uint8_t pri); 27 28 void dma_set_auto_enable(int channel, int auto_enable); 29 30 void dma_set_chaining(int channel, enum dma_chain chain); 31 32 void dma_init_interrupt(int channel, uint8_t conditions, 33 uint8_t pri, uint8_t sub); 34 35 void dma_on(int channel); 36 37 void dma_set_interrupt(int channel, uint8_t int_num, int enable); 38 39 void dma_set_transfer(int channel, 40 uint32_t source_start_address, uint16_t source_size, 41 uint32_t destination_start_address, uint16_t destination_size, 42 uint16_t cell_size); 43 44 int DMA_INT_FLAGS(int channel, uint8_t flags); 45 46 uint32_t DMA_IPC_PRI(int channel, uint8_t pri, uint8_t sub); 47 48 /* Timer configuration. */ 49 50 void timer_init(int timer, uint8_t prescale, uint16_t limit); 51 52 void timer_init_interrupt(int timer, uint8_t pri, uint8_t sub); 53 54 void timer_on(int timer); 55 56 int TIMER_INT_FLAGS(int timer, uint8_t flags); 57 58 uint32_t TIMER_IPC_PRI(int timer, uint8_t pri, uint8_t sub); 59 uint32_t TIMER_IPC_REG(int timer); 60 61 /* UART configuration. */ 62 63 void uart_init(int uart, uint32_t baudrate); 64 65 void uart_init_interrupt(int uart, uint8_t conditions, 66 uint8_t pri, uint8_t sub); 67 68 void uart_on(int uart); 69 70 int UART_INT_FLAGS(int uart, uint8_t flags); 71 72 uint32_t UART_IPC_PRI(int uart, uint8_t pri, uint8_t sub); 73 uint32_t UART_IPC_REG(int uart); 74 75 #endif /* __INIT_H__ */