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 oc_init(int unit, uint8_t mode, int timer); 51 52 void oc_set_pulse(int unit, uint32_t start); 53 54 void oc_set_pulse_end(int unit, uint32_t end); 55 56 void oc_init_interrupt(int unit, uint8_t pri, uint8_t sub); 57 58 void oc_on(int unit); 59 60 int OC_INT_FLAGS(int unit, uint8_t flags); 61 62 uint32_t OC_IPC_PRI(int unit, uint8_t pri, uint8_t sub); 63 uint32_t OC_IPC_REG(int unit); 64 65 /* Timer configuration. */ 66 67 void timer_init(int timer, uint8_t prescale, uint16_t limit); 68 69 void timer_init_interrupt(int timer, uint8_t pri, uint8_t sub); 70 71 void timer_on(int timer); 72 73 int TIMER_INT_FLAGS(int timer, uint8_t flags); 74 75 uint32_t TIMER_IPC_PRI(int timer, uint8_t pri, uint8_t sub); 76 uint32_t TIMER_IPC_REG(int timer); 77 78 /* UART configuration. */ 79 80 void uart_init(int uart, uint32_t baudrate); 81 82 void uart_init_interrupt(int uart, uint8_t conditions, 83 uint8_t pri, uint8_t sub); 84 85 void uart_on(int uart); 86 87 int UART_INT_FLAGS(int uart, uint8_t flags); 88 89 uint32_t UART_IPC_PRI(int uart, uint8_t pri, uint8_t sub); 90 uint32_t UART_IPC_REG(int uart); 91 92 #endif /* __INIT_H__ */