Problema con compilación

Hola. Buenos días. Estoy teniendo problema con el siguiente programa. Es el receptor de un control de auto con un guante. No lo puedo compilar.

El codigo es:

// Código Receptor

#include <VirtualWire.h>
//Variables para el control de los motores
int a1 = 5;
int a2 = 6;
int b1 = 7;
int b2 = 8;
int c1 = 9;
int c2 = 10;
int d1 = 11;
int d2 = 12;
int pwm = 3;
int vel = 320;

// Variables para la recepción de data por RF
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
float dato1=0;
float dato2=0;

void setup()
{
Serial.begin(9600);
pinMode(a1, OUTPUT);
pinMode(a2, OUTPUT);
pinMode(b1, OUTPUT);
pinMode(b2, OUTPUT);
pinMode(c1, OUTPUT);
pinMode(c2. OUTPUT);
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(pwm, OUTPUT);
analogWrite (pwm,vel);
// Se inicializa el RF
vw_setup(2000); // Velocidad: Bits por segundo
vw_set_rx_pin(2); // Pin 2 como entrada del RF
vw_rx_start(); // Se inicia como receptor
}

void loop()
{
 // Verificamos si hay un dato valido en el RF
 if (vw_get_message((uint8_t *)buf,&buflen))
 {
     int i;
     String  DatoCadena="";
     if((char)buf[0]=='i') // Verificamos el inicio de trama
     {
         for (i = 1; i < buflen; i++)
         {
           DatoCadena.concat((char)buf[i]);
         }
         // Si la trama es la correcta se guarda el dato transferido
         dato1=DatoCadena.toInt();
         Serial.print("gx: ");
         Serial.println(dato1);
     }
     else if((char)buf[0]=='f') // Verificamos el inicio de trama
     {
         for (i = 1; i < buflen; i++)
         {
           DatoCadena.concat((char)buf[i]);
         }
         // Si la trama es la correcta, se gurda el dato transferido
         dato2=DatoCadena.toFloat();
         Serial.print("gy: ");
         Serial.println(dato2);
     }
     // Se sintetiza la dirección que debe tomar el movil...
     // Dependiendo de los datos recibidos
     if (dato1>25)
     {
       derecha();
     }
      else if(dato1<-25)
     {
       izquierda();
     }
     else if (dato2>25)
     {
        adelante();
     }
     else if(dato2<-25)
     {
        atras();
     }
     else
     {
        parar();
     }
 }
}
 
// Funciones de dirección del movil
void adelante()
{
digitalWrite (a1, LOW);
digitalWrite (a2, HIGH);
digitalWrite (b1, HIGH);
digitalWrite (b2, LOW);
digitalWrite (c1, HIGH);
digitalWrite (c2, LOW);
digitalWrite (d1, HIGH);
digitalWrite (d2, LOW);
}

void atras()
{
digitalWrite (a2, LOW);
digitalWrite (a1, HIGH);
digitalWrite (b2, HIGH);
digitalWrite (b1, LOW);
digitalWrite (c2, HIGH);
digitalWrite (c1, LOW);
digitalWrite (d2, HIGH);
digitalWrite (d1, LOW);
}

void derecha()
{
digitalWrite (a2, LOW);
digitalWrite (a1, HIGH);
digitalWrite (b1, HIGH);
digitalWrite (b2, LOW);
digitalWrite (c2, HIGH);
digitalWrite (c1, LOW);
digitalWrite (d1, HIGH);
digitalWrite (d2, LOW);
}

void izquierda()
{
digitalWrite (a1, LOW);
digitalWrite (a2, HIGH);
digitalWrite (b2, HIGH);
digitalWrite (b1, LOW);
digitalWrite (c1, HIGH);
digitalWrite (c2, LOW);
digitalWrite (d2, HIGH);
digitalWrite (d1, LOW);
}

void parar()
{
digitalWrite (a1, LOW);
digitalWrite (a2, LOW);
digitalWrite (b1, LOW);
digitalWrite (b2, LOW);
digitalWrite (c1, LOW);
digitalWrite (c2, LOW);
digitalWrite (d1, LOW);
digitalWrite (d2, LOW);
}

El error que me salta es:

exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.

Espero que me puedan ayudar. No sé donde puede estar el error. Mil gracias

Por favor lee las normas del foro (1er hilo de cualquier sección ) y edita tu código usando etiquetas.
Cuando lo hagas responderé.

Perfecto. Ya leí las reglas y realicé mi corrección. Gracias

Primer error

pinMode(c2. OUTPUT);

siempre luego del pin va una , no un .

pinMode(c2, OUTPUT);

Listo, nada que no pudieras resolver por tu cuenta poniendo un poco mas de atención y además y muy importante, el error siempre identifica la linea en la que se debe prestar atención.