diff include/PRU.h @ 16:670be80463a3 matrix_gpio

- analog matrixIn/matrixOut are now mapped as floats from 0 to 1 - use of an external PRU code can be enabled with -P <filename> - 16 channels of programmable GPIO can be accessed straight from render() either writing directly to the matrixGpio[] array or using digitalWrite(), digitalRead(), setDigitalDirection() macros from Utilities.h .
author Giulio Moro <giuliomoro@yahoo.it>
date Mon, 27 Apr 2015 13:01:57 +0100
parents 901d205d1a3c
children c98863e63174
line wrap: on
line diff
--- a/include/PRU.h	Sat Feb 07 16:41:56 2015 +0000
+++ b/include/PRU.h	Mon Apr 27 13:01:57 2015 +0100
@@ -27,7 +27,7 @@
 	~PRU();
 
 	// Prepare the GPIO pins needed for the PRU
-	int prepareGPIO(int use_spi, int include_test_pin, int include_led);
+	int prepareGPIO(int use_spi, int use_matrix_gpio, int include_test_pin, int include_led);
 
 	// Clean up the GPIO at the end
 	void cleanupGPIO();
@@ -37,7 +37,7 @@
 				   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();
@@ -56,6 +56,7 @@
 	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 matrix_gpio_enabled; // Whether Matrix GPIO 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
@@ -64,9 +65,11 @@
 	volatile uint32_t *pru_buffer_comm;
 	uint16_t *pru_buffer_spi_dac;
 	uint16_t *pru_buffer_spi_adc;
+	uint32_t *pru_buffer_matrix_gpio;
 	int16_t *pru_buffer_audio_dac;
 	int16_t *pru_buffer_audio_adc;
 	unsigned int spi_buffer_frames;
+	unsigned int matrix_gpio_buffer_frames;
 	unsigned int audio_buffer_frames;
 
 	int xenomai_gpio_fd;	// File descriptor for /dev/mem for fast GPIO