Paso 15: Configuración del PWM
void initPins(void)
{
//---------------------------------------------------------------------
Configuración de TCCR2A
//---------------------------------------------------------------------
Estos bits controlan el comportamiento de pin (OC2A) salida comparar. Si uno o
se establecen tanto los bits COM2A1:0, el OC2A de salida anula la
funcionalidad del puerto normal del pin I/O está conectado a.
Sin embargo, tenga en cuenta que el registro de dirección de datos (DDR) de bits
correspondiente al pin OC2A debe establecerse para permitir el
controlador de salida.
Cuando OC2A esté conectado a la clavija, la función de los bits de COM2A1:0
depende de la WGM22:0 poco ajuste.
//
Modo PWM rápida
COM2A1 COM2A0
0 0 la operación normal del puerto, OC2A desconectado.
0 1 WGM22 = 0: operación puerto Normal, OC0A desconectado.
WGM22 = 1: activar OC2A en compara partido.
1 0 OC2A claro en el partido de comparar, establecer OC2A en la parte inferior
1 1 OC2A claro en el partido de comparar, claro OC2A en la parte inferior
CBI(TCCR2A,COM2A1);
CBI(TCCR2A,COM2A0);
SBI(TCCR2A,COM2B1);
CBI(TCCR2A,COM2B0);Combinado con el bit WGM22 en el registro de TCCR2B, estas brocas
controlar la secuencia de conteo del contador, la fuente de máximo
Valor del contador (arriba) y qué tipo de generación de forma de onda a utilizar
Modos de operación admitida por la unidad del temporizador/contador son:
-Modo normal (contador),
-Poner el temporizador en el modo de comparar Match (CTC),
-dos tipos de modos de modulación de ancho de pulso (PWM).
//
Operación en modo WGM22 WGM21 WGM20 superior
0 0 0 0 Normal 0xFF
1 0 0 1 PWM 0XFF
2 0 1 0 OCRA CTC
3 0 1 1 fast PWM 0xFF
4 1 0 0 reservado -
5 1 0 1 OCRA DE PWM
6 1 1 0 reservado -
7 1 1 1 fast PWM OCRA
CBI(TCCR2B,WGM22);
SBI(TCCR2A,WGM21);
SBI(TCCR2A,WGM20);
//---------------------------------------------------------------------
Configuración de TCCR2B
//---------------------------------------------------------------------
La broca de FOC2A sólo está activa cuando los bits WGM especifican un no-PWM
modo.
Sin embargo, para asegurar la compatibilidad con dispositivos futuros, este bit
debe establecerse en cero al TCCR2B está escrito en PWM
modo. Al escribir una lógica para la broca de FOC2A, una inmediata
Comparar partido es forzado en la unidad de generación de forma de onda. La OC2A
salida se modifica según sus pedacitos de COM2A1:0 ajuste. Tenga en cuenta que
el bit FOC2A está implementado como un estroboscopio. Por lo tanto es el valor
presente en los bits de COM2A1:0 que determina el efecto de la
obligado a comparar.
Un estroboscopio FOC2A no generará ninguna interrupción, ni se borrará
el temporizador en modo CTC OCR2A como arriba.
La broca de FOC2A siempre se lee como cero.
CBI(TCCR2B,FOC2A);
CBI(TCCR2B,FOC2B);
Los tres bits de reloj seleccione selección la fuente de reloj para ser utilizado por
el temporizador/contador.
CS22 CS21 CS20 Prescaler
0 0 0 ninguna fuente de reloj (temporizador/contador detenida).
0 0 1 no escala
0 1 0 8
0 1 1 32
1 0 0 64
1 0 1 128
1 1 0 256
1 1 1 1024
CBI(TCCR2B,CS22);
CBI(TCCR2B,CS21);
SBI(TCCR2B,CS20);
pinMode (errorPin, salida);
pinMode (thresholdPin, salida);
analogWrite (thresholdPin, 127);
}