START:
; Wait for Busy to go low indicating conversion has completed
m_wait_high_pulse 4, 16
; Fetch and store channel 1-8 Sample
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_1
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_2
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_3
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_4
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_5
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_6
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_7
m_parallel_read_packet ADC_COMM_MODE, ADC_COMM_INTERFACE, ADC_COMM_DATAWIDTH, ADC_COMM_TRIG_PRD, ADC_DATA_REG_8
; Sign extend data to 32 bits
m_sign_ext_32bit ADC_DATA_REG_1
m_sign_ext_32bit ADC_DATA_REG_2
m_sign_ext_32bit ADC_DATA_REG_3
m_sign_ext_32bit ADC_DATA_REG_4
m_sign_ext_32bit ADC_DATA_REG_5
m_sign_ext_32bit ADC_DATA_REG_6
m_sign_ext_32bit ADC_DATA_REG_7
m_sign_ext_32bit ADC_DATA_REG_8
; Send samples to R5F
ldi R1.b0, &R2
m_pru_ipc_send R1.b0, R2, R0.b0, PRU_IPC_RX_INTR_ENABLE, PRU_IPC_RX_EVENT
; Check if there is some instruction from R5F
m_prgm_flow_jump_on_intr 0x16, 31, 5, TEMP_REG_1, IDLE, task_manager, sample_transfer, iep, main_loop
qba START ; loop
halt