Added a define to use pin 3 for PWM, instead of the new default pin 11.
This commit is contained in:
		
							parent
							
								
									8f2115adbc
								
							
						
					
					
						commit
						016ad2398a
					
				
							
								
								
									
										6
									
								
								DDS.cpp
								
								
								
								
							
							
						
						
									
										6
									
								
								DDS.cpp
								
								
								
								
							| 
						 | 
					@ -10,8 +10,14 @@ void DDS::start() {
 | 
				
			||||||
  // First, the timer for the PWM output
 | 
					  // First, the timer for the PWM output
 | 
				
			||||||
  // Setup the timer to use OC2B (pin 3) in fast PWM mode with a configurable top
 | 
					  // Setup the timer to use OC2B (pin 3) in fast PWM mode with a configurable top
 | 
				
			||||||
  // Run it without the prescaler
 | 
					  // Run it without the prescaler
 | 
				
			||||||
 | 
					#ifdef DDS_PWM_PIN_3
 | 
				
			||||||
  TCCR2A = (TCCR2A | _BV(COM2B1)) & ~(_BV(COM2B0) | _BV(COM2A1) | _BV(COM2A0)) |
 | 
					  TCCR2A = (TCCR2A | _BV(COM2B1)) & ~(_BV(COM2B0) | _BV(COM2A1) | _BV(COM2A0)) |
 | 
				
			||||||
         _BV(WGM21) | _BV(WGM20);
 | 
					         _BV(WGM21) | _BV(WGM20);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  // Alternatively, use pin 11
 | 
				
			||||||
 | 
					  TCCR2A = (TCCR2A | _BV(COM2A1)) & ~(_BV(COM2A0) | _BV(COM2B1) | _BV(COM2B0)) |
 | 
				
			||||||
 | 
					       _BV(WGM21) | _BV(WGM20);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
  TCCR2B = (TCCR2B & ~(_BV(CS22) | _BV(CS21))) | _BV(CS20) | _BV(WGM22);
 | 
					  TCCR2B = (TCCR2B & ~(_BV(CS22) | _BV(CS21))) | _BV(CS20) | _BV(WGM22);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Set the top limit, which will be our duty cycle accuracy.
 | 
					  // Set the top limit, which will be our duty cycle accuracy.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								DDS.h
								
								
								
								
							
							
						
						
									
										5
									
								
								DDS.h
								
								
								
								
							| 
						 | 
					@ -3,6 +3,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <avr/pgmspace.h>
 | 
					#include <avr/pgmspace.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Use pin 3 for PWM? If not defined, use pin 11
 | 
				
			||||||
 | 
					// #define DDS_PWM_PIN_3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Use a short (16 bit) accumulator. Phase accuracy is reduced, but speed
 | 
				
			||||||
 | 
					// is increased, along with a reduction in memory use.
 | 
				
			||||||
#define SHORT_ACCUMULATOR
 | 
					#define SHORT_ACCUMULATOR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef SHORT_ACCUMULATOR
 | 
					#ifdef SHORT_ACCUMULATOR
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue