Clemens Valens / inc

Dependents:   SoundEngine

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sample_rate.h Source File

sample_rate.h

00001 #ifndef __SAMPLE_RATE_H__
00002 #define __SAMPLE_RATE_H__
00003 
00004 
00005 #include "timers.h"
00006 
00007 #define SAMPLE_RATE_FREQUENCY_REGISTER  (3)  /* Choose the MR register that will determine the frequency. */
00008 #define SAMPLE_RATE_MAT_OUTPUT  SAMPLE_RATE_FREQUENCY_REGISTER
00009 
00010 /*
00011 #if SAMPLE_RATE_TIMER_NR == TIMER16_0
00012     #define SAMPLE_RATE_TIMER  LPC_TIMER16_0
00013     #define SAMPLE_RATE_TIMER_IRQ  (TIMER_16_0_IRQn)
00014     #if SAMPLE_RATE_MAT_OUTPUT == 0
00015         #define SAMPLE_RATE_MAT_PORT  (0)
00016         #define SAMPLE_RATE_MAT_PIN  (8)
00017         #define SAMPLE_RATE_IOCON  IOCON_PIO0_8
00018         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00019     #elif SAMPLE_RATE_MAT_OUTPUT == 1
00020         #define SAMPLE_RATE_MAT_PORT  (0)
00021         #define SAMPLE_RATE_MAT_PIN  (9)
00022         #define SAMPLE_RATE_IOCON  IOCON_PIO0_9
00023         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00024     #elif SAMPLE_RATE_MAT_OUTPUT == 2
00025         #define SAMPLE_RATE_MAT_PORT  (0)
00026         #define SAMPLE_RATE_MAT_PIN  (10)
00027         #define SAMPLE_RATE_IOCON  IOCON_PIO0_10
00028         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
00029     #else
00030         // Does not exist.
00031         #pragma GCC error "Match output pin MATx does not exist."
00032     #endif
00033 #elif SAMPLE_RATE_TIMER_NR == TIMER16_1
00034     #define SAMPLE_RATE_TIMER  LPC_TIMER16_1
00035     #define SAMPLE_RATE_TIMER_IRQ  (TIMER_16_1_IRQn)
00036     #if SAMPLE_RATE_MAT_OUTPUT == 0
00037         #define SAMPLE_RATE_MAT_PORT  (1)
00038         #define SAMPLE_RATE_MAT_PIN  (9)
00039         #define SAMPLE_RATE_IOCON  IOCON_PIO1_9
00040         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC1
00041     #elif SAMPLE_RATE_MAT_OUTPUT == 1
00042         #define SAMPLE_RATE_MAT_PORT  (1)
00043         #define SAMPLE_RATE_MAT_PIN  (10)
00044         #define SAMPLE_RATE_IOCON  IOCON_PIO1_10
00045         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00046     #else
00047         // Does not exist.
00048         #pragma GCC error "Match output pin MATx does not exist."
00049     #endif
00050 #elif SAMPLE_RATE_TIMER_NR == TIMER32_0
00051     #define SAMPLE_RATE_TIMER  LPC_TIMER32_0
00052     #define SAMPLE_RATE_TIMER_IRQ  (TIMER_32_0_IRQn)
00053     #if SAMPLE_RATE_MAT_OUTPUT == 0
00054         #define SAMPLE_RATE_MAT_PORT  (1)
00055         #define SAMPLE_RATE_MAT_PIN  (6)
00056         #define SAMPLE_RATE_IOCON  IOCON_PIO1_6
00057         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00058     #elif SAMPLE_RATE_MAT_OUTPUT == 1
00059         #define SAMPLE_RATE_MAT_PORT  (1)
00060         #define SAMPLE_RATE_MAT_PIN  (7)
00061         #define SAMPLE_RATE_IOCON  IOCON_PIO1_7
00062         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00063     #elif SAMPLE_RATE_MAT_OUTPUT == 2
00064         #define SAMPLE_RATE_MAT_PORT  (0)
00065         #define SAMPLE_RATE_MAT_PIN  (1)
00066         #define SAMPLE_RATE_IOCON  IOCON_PIO0_1
00067         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00068     #elif SAMPLE_RATE_MAT_OUTPUT == 3
00069         #define SAMPLE_RATE_MAT_PORT  (0)
00070         #define SAMPLE_RATE_MAT_PIN  (11)
00071         #define SAMPLE_RATE_IOCON  IOCON_PIO0_11
00072         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
00073     #else
00074         // Does not exist.
00075         #pragma GCC error "Match output pin MATx does not exist."
00076     #endif
00077 #elif SAMPLE_RATE_TIMER_NR == TIMER32_1
00078     #define SAMPLE_RATE_TIMER  LPC_TIMER32_1
00079     #define SAMPLE_RATE_TIMER_IRQ  (TIMER_32_1_IRQn)
00080     #if SAMPLE_RATE_MAT_OUTPUT == 0
00081         #define SAMPLE_RATE_MAT_PORT  (1)
00082         #define SAMPLE_RATE_MAT_PIN  (1)
00083         #define SAMPLE_RATE_IOCON  IOCON_PIO1_1
00084         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
00085     #elif SAMPLE_RATE_MAT_OUTPUT == 1
00086         #define SAMPLE_RATE_MAT_PORT  (1)
00087         #define SAMPLE_RATE_MAT_PIN  (2)
00088         #define SAMPLE_RATE_IOCON  IOCON_PIO1_2
00089         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
00090     #elif SAMPLE_RATE_MAT_OUTPUT == 2
00091         #define SAMPLE_RATE_MAT_PORT  (1)
00092         #define SAMPLE_RATE_MAT_PIN  (3)
00093         #define SAMPLE_RATE_IOCON  IOCON_PIO1_3
00094         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC3
00095     #elif SAMPLE_RATE_MAT_OUTPUT == 3
00096         #define SAMPLE_RATE_MAT_PORT  (1)
00097         #define SAMPLE_RATE_MAT_PIN  (4)
00098         #define SAMPLE_RATE_IOCON  IOCON_PIO1_4
00099         #define SAMPLE_RATE_IOCON_FUNC  IOCON_FUNC2
00100     #else
00101         // Does not exist.
00102         #pragma GCC error "Match output pin MATx does not exist."
00103     #endif
00104 #else
00105     // Does not exist.
00106     #pragma GCC error "Selected SAMPLE_RATE timer does not exist."
00107 #endif
00108 */
00109 
00110 void SampleRate_Init(uint32_t default_rate, uint32_t samples_per_period);
00111 
00112 
00113 #endif // __SAMPLE_RATE_H__