Forum: Mikrocontroller und Digitale Elektronik Arduino Due PWM -> PCM Audio Output


von Mr D. (Gast)


Lesenswert?

Hi

Habe einen Timer TC5 für den Sampler 8-22khz für die Audioausgabe.

Für den PWM timer nehme ich den TC7, habe da mal was gebastelt bin aber 
nicht sicher ob das so stimmt:
1
PMC->PMC_PCER1 |= PMC_PCER1_PID34;                      // TC7 power ON - Timer Counter 2 channel 1 IS TC7 - See page 38
2
  PIOC->PIO_PDR |= PIO_PDR_P28;                            // The pin is no more driven by GPIO
3
  PIOC->PIO_ABSR |= PIO_PC28B_TIOA7;                      // Periperal type B  - See page 859
4
  TC2->TC_CHANNEL[1].TC_CMR = TC_CMR_TCCLKS_TIMER_CLOCK1  // VARIANT_MCK/2, clk on rising edge
5
                              | TC_CMR_WAVE               // Waveform mode
6
                              | TC_CMR_WAVSEL_UP_RC       // UP mode with automatic trigger on RC Compare
7
                              | TC_CMR_ACPA_CLEAR         // Clear TIOA7 on RA compare match  -- See page 883
8
                              | TC_CMR_ACPC_SET;          // Set TIOA7 on RC compare match
9
10
  TC2->TC_CHANNEL[1].TC_RC = 256;                          // Frequency = (VARIANT_MCK/2)/256 = 164.06khz  // 22-8khz PWM F = ?????Hz
11
  TC2->TC_CHANNEL[1].TC_RA = 128;                          // Duty cycle = 50% 
12
  TC2->TC_CHANNEL[1].TC_IER = TC_IER_CPCS;                // Interrupt on RC compare match
13
  TC2->TC_CHANNEL[1].TC_CCR = TC_CCR_SWTRG | TC_CCR_CLKEN;// Software trigger TC7 counter and enable

TC_RC und TC_RA habe ich mit probieren gefunden wollte aber gern Wissen 
wie man das richtig definiert für den 8-22khz sampler.

Es werden 8 Bit Mono Audio(Wave) mit 8-22khz ausgegeben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.