diff include/PRU.h @ 67:472e892c6e41

Merge newapi into default
author Andrew McPherson <a.mcpherson@qmul.ac.uk>
date Fri, 17 Jul 2015 15:28:18 +0100
parents 579c86316008
children 92145ba7aabf
line wrap: on
line diff
--- a/include/PRU.h	Sun Feb 08 00:20:01 2015 +0000
+++ b/include/PRU.h	Fri Jul 17 15:28:18 2015 +0100
@@ -9,6 +9,8 @@
 #define PRU_H_
 
 #include <stdint.h>
+#include <native/intr.h>
+#include "../include/BeagleRT.h"
 
 class PRU
 {
@@ -21,26 +23,26 @@
 
 public:
 	// Constructor
-	PRU();
+	PRU(BeagleRTContext *input_context);
 
 	// Destructor
 	~PRU();
 
 	// Prepare the GPIO pins needed for the PRU
-	int prepareGPIO(int use_spi, int include_test_pin, int include_led);
+	int prepareGPIO(int include_test_pin, int include_led);
 
 	// Clean up the GPIO at the end
 	void cleanupGPIO();
 
 	// Initialise and open the PRU
-	int initialise(int pru_num, int frames_per_buffer, int spi_channels,
-				   bool xenomai_test_pin = false);
+	int initialise(int pru_num, int frames_per_buffer,
+				   int spi_channels, bool xenomai_test_pin = false);
 
 	// Run the code image in pru_rtaudio_bin.h
-	int start();
+	int start(char * const filename);
 
 	// Loop: read and write data from the PRU
-	void loop();
+	void loop(RT_INTR *pru_interrupt, void *userData);
 
 	// Wait for an interrupt from the PRU indicate it is finished
 	void waitForFinish();
@@ -53,21 +55,22 @@
 	void clearGPIOTestPin();
 
 private:
+	BeagleRTContext *context;	// Overall settings
+
 	int pru_number;		// Which PRU we use
 	bool running;		// Whether the PRU is running
-	bool spi_enabled;	// Whether SPI ADC and DAC are used
+	bool analog_enabled;  // Whether SPI ADC and DAC are used
+	bool digital_enabled; // Whether digital is used
 	bool gpio_enabled;	// Whether GPIO has been prepared
 	bool led_enabled;	// Whether a user LED is enabled
 	bool gpio_test_pin_enabled; // Whether the test pin was also enabled
-	int spi_num_channels; // How many channels to use for SPI ADC/DAC
 
 	volatile uint32_t *pru_buffer_comm;
 	uint16_t *pru_buffer_spi_dac;
 	uint16_t *pru_buffer_spi_adc;
+	uint32_t *pru_buffer_digital;
 	int16_t *pru_buffer_audio_dac;
 	int16_t *pru_buffer_audio_adc;
-	unsigned int spi_buffer_frames;
-	unsigned int audio_buffer_frames;
 
 	int xenomai_gpio_fd;	// File descriptor for /dev/mem for fast GPIO
 	uint32_t *xenomai_gpio;	// Pointer to GPIO registers