[Resuelto] analogRead mediante registros.

Buenas noches.
AnalogRead. Usa muchos ciclos de maquina y quisiera una solución como usar

DDRD = 0b11111111; // Todos los pines de PORTD son salidas.
PORTD = 0b11111111; // Todos los pines de PORTD están en estado alto.

Tambien se que solo existe un ADC en arduino UNO AT Mega 328p-pu y que un multiplexor se encaga de seleccionar la entrada a leer pero lo que quiero saber es como hacer uso de el ADC solo con un pin y que sea de la manera mas rápida posible.

Gracias de antemano.

Que tal esto (Faster analogRead) aunque sigas usando analogRead mejorado?

Pasas de 112uS a 21uS.

Otra manera y alcanzas 17uS:

Fast sampling from analog input

Gracias surbyte, es de gran ayuda el segundo link.
Faster analogRead esta genial pero yo tengo mi propia implementacion para ver la forma de honda.
Ahora quiero saber un poco mas de los prescaler del ADC de arduino ya que a 2Khz puedo ver hasta 76 o 77 puntos por periodo y a 11.7Khz puedo ver hasta 12 puntos por periodo.
De la instrucción de la que quiero saber un poco mas es

  //ADCSRA |= (1 << ADPS2) | (1 << ADPS0);    // 32 prescaler for 38.5 KHz
  //ADCSRA |= (1 << ADPS2);                     // 16 prescaler for 76.9 KHz
  ADCSRA |= (1 << ADPS1) | (1 << ADPS0);    // 8 prescaler for 153.8 KHz

no se si es el calculo real pero teniendo 77 puntos por periodo a una frecuencia de 2khz, multiplicados me da una frecuencia de muestreo de 154Khz.
lo que quiero saber es si es que se puede tener un prescaler de 4 o 2 o hasta 1 para el ADC como para probar ya que le leído que el ADC de arduino esta diseñado para ser usado hasta 200Khz pero no se pierde mucho si se prueba.
El precio creo que seria un arduino muerto XD, todo sea por la ciencia y la chires.
Adjunto imagen de como se ven las ondas a las dos frecuencias que menciono.

Esta guia del ADC será muy provechosa para tu práctica con el ADC.

Lo único que te diré que lo debes poner en free running como dice la guia y entonces estarás al máximo de lo que permita el prescaler

Ya he leído la guía ADC que mencionas pero creo que ya el ADC de arduino esta en su limite.
logre 206 Khz de muestreo y con los prescaler 2 y 4 que resultan en la misma frecuencia.
Ahora el cuello de botella esta en la transmisión de las 1000 variables tipo byte a través del puerto serie que por comodidad de transmisión uso Serial.print ya que no solo trasfiero los valores del muestreo, también la frecuencia.
Gracias Surbyte.
Karma Add... XD