This is a part of the Kinetiszer project.

Dependents:   SoundEngine

Revision:
0:5a419ba2726d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sample_rate.h	Tue Oct 28 12:19:22 2014 +0000
@@ -0,0 +1,113 @@
+#ifndef __SAMPLE_RATE_H__
+#define __SAMPLE_RATE_H__
+
+
+#include "timers.h"
+
+#define SAMPLE_RATE_FREQUENCY_REGISTER  (3)  /* Choose the MR register that will determine the frequency. */
+#define SAMPLE_RATE_MAT_OUTPUT  SAMPLE_RATE_FREQUENCY_REGISTER
+
+/*
+#if SAMPLE_RATE_TIMER_NR == TIMER16_0
+	#define SAMPLE_RATE_TIMER  LPC_TIMER16_0
+	#define SAMPLE_RATE_TIMER_IRQ  (TIMER_16_0_IRQn)
+	#if SAMPLE_RATE_MAT_OUTPUT == 0
+		#define SAMPLE_RATE_MAT_PORT  (0)
+		#define SAMPLE_RATE_MAT_PIN  (8)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO0_8
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#elif SAMPLE_RATE_MAT_OUTPUT == 1
+		#define SAMPLE_RATE_MAT_PORT  (0)
+		#define SAMPLE_RATE_MAT_PIN  (9)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO0_9
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#elif SAMPLE_RATE_MAT_OUTPUT == 2
+		#define SAMPLE_RATE_MAT_PORT  (0)
+		#define SAMPLE_RATE_MAT_PIN  (10)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO0_10
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
+	#else
+		// Does not exist.
+		#pragma GCC error "Match output pin MATx does not exist."
+	#endif
+#elif SAMPLE_RATE_TIMER_NR == TIMER16_1
+	#define SAMPLE_RATE_TIMER  LPC_TIMER16_1
+	#define SAMPLE_RATE_TIMER_IRQ  (TIMER_16_1_IRQn)
+	#if SAMPLE_RATE_MAT_OUTPUT == 0
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (9)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_9
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC1
+	#elif SAMPLE_RATE_MAT_OUTPUT == 1
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (10)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_10
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#else
+		// Does not exist.
+		#pragma GCC error "Match output pin MATx does not exist."
+	#endif
+#elif SAMPLE_RATE_TIMER_NR == TIMER32_0
+	#define SAMPLE_RATE_TIMER  LPC_TIMER32_0
+	#define SAMPLE_RATE_TIMER_IRQ  (TIMER_32_0_IRQn)
+	#if SAMPLE_RATE_MAT_OUTPUT == 0
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (6)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_6
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#elif SAMPLE_RATE_MAT_OUTPUT == 1
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (7)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_7
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#elif SAMPLE_RATE_MAT_OUTPUT == 2
+		#define SAMPLE_RATE_MAT_PORT  (0)
+		#define SAMPLE_RATE_MAT_PIN  (1)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO0_1
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#elif SAMPLE_RATE_MAT_OUTPUT == 3
+		#define SAMPLE_RATE_MAT_PORT  (0)
+		#define SAMPLE_RATE_MAT_PIN  (11)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO0_11
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
+	#else
+		// Does not exist.
+		#pragma GCC error "Match output pin MATx does not exist."
+	#endif
+#elif SAMPLE_RATE_TIMER_NR == TIMER32_1
+	#define SAMPLE_RATE_TIMER  LPC_TIMER32_1
+	#define SAMPLE_RATE_TIMER_IRQ  (TIMER_32_1_IRQn)
+	#if SAMPLE_RATE_MAT_OUTPUT == 0
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (1)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_1
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
+	#elif SAMPLE_RATE_MAT_OUTPUT == 1
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (2)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_2
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
+	#elif SAMPLE_RATE_MAT_OUTPUT == 2
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (3)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_3
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
+	#elif SAMPLE_RATE_MAT_OUTPUT == 3
+		#define SAMPLE_RATE_MAT_PORT  (1)
+		#define SAMPLE_RATE_MAT_PIN  (4)
+		#define SAMPLE_RATE_IOCON  IOCON_PIO1_4
+		#define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
+	#else
+		// Does not exist.
+		#pragma GCC error "Match output pin MATx does not exist."
+	#endif
+#else
+	// Does not exist.
+	#pragma GCC error "Selected SAMPLE_RATE timer does not exist."
+#endif
+*/
+
+void SampleRate_Init(uint32_t default_rate, uint32_t samples_per_period);
+
+
+#endif // __SAMPLE_RATE_H__