Paso 3: Un vistazo más de cerca el ATmega8
Imagen 1 es el diagrama del pinout para el ATMega8 (exactamente igual que la 168/48/88, la única diferencia es la cantidad de opciones a bordo de la memoria y la interrupción).
Pin 1 - Reset, se celebrara en el voltaje VCC (o por lo menos lógica 1). Si, el dispositivo será suave-reajuste
Pin 2-6-Port D, entrada/salida general
PIN 7 - VCC, fuente de voltaje (+ 5V para nosotros)
Pin 8 - tierra
PIN 9,10 - XTAL, entradas del reloj externo (parte del puerto B)
PIN Port D, entrada/salida general 11-13
PIN puerto B 14-19, entrada/salida general
PIN 20 - AVCC, tensión de alimentación analógica (igual a VCC)
PIN 21 - AREF, referencia de voltaje analógico
PIN 22 - tierra
PIN puerto C, entrada/salida general 23-28
Puede usar puertos de la entrada-salida: D = 8, C = 6, B = 6
Un total de 20 puertos usables es gran simplicidad que debe agrupar sus salidas en puertos (dicen, D como el puerto de salida) o en grupos en la junta - puede la pantalla para ejecutar desde Puerto C sólo para mantener que los cables orden en esa esquina.
Hay tres pines adicionales que se requieren para la programación. Ésos son MISO (18), MOSI (17) y SCK(19). Felizmente estos actuará como pines de e/s si es necesario sin embargo.
De sincronización
La señal que enviamos a la cámara debe precisamente ser cronometrada (precisión de alrededor de un microsegundo) así que es importante que elija una fuente de reloj bueno. AVRs todos tienen un oscilador interno que el chip puede conseguir su reloj. Lo malo de esto es que puede variar aproximadamente 10% con presión/temperatura/humedad. Lo que podemos hacer para combatir esto es usar un cristal de cuarzo externo. Estos están disponibles en cualquier cosa de 32768kHz (watch) a 20MHz. He elegido usar un cristal de 4Mhz proporciona una buena cantidad de velocidad pero es bastante conservadora en comparación a tal vez 8 Mhz +.
Gestión de la energía a bordo
Quería utilizar las rutinas de sueño en mi código. De hecho escribí la primera versión para dependen en gran medida al ralentí el procesador mientras que tiempo de caducidad. Unfortnuately, por falta de tiempo, me encontré con algunos problemas con ejecutar el reloj externo e interrumpir el uso de los temporizadores. En esencia tendría que reescribir el código para tratar con el controlador simplemente no despertar - que podría hacer, pero el tiempo es contra mí. Así, el dispositivo sólo dibuja 20mA ish así que usted puede conseguir lejos con él. Si usted está realmente para él, entonces por todos los medios jugar con el código, todo lo que necesitas hacer es reloj internamente y luego ejecutar 2 temporizador en modo asincrónico con el cristal de 4 MHz para los retrasos más precisos. Es simple de hacer, pero mucho tiempo.
ADC
El cuchillo del ejército suizo en el conjunto de herramientas AVR, el ADC está parado para analógico al convertidor Digital. Su funcionamiento es relativamente simple desde el exterior. Se muestrea una tensión en un pin (de algún sensor u otra entrada), la tensión es convertida en un valor digital entre 0 y 1024. Cuando el voltaje de entrada es igual a la tensión de referencia del ADC, se observará un valor de 1024. Si fijamos nuestra referencia a VCC (+ 5V) entonces cada división es 5/1024 V o alrededor de 5mV. Así un incremento de 5mV en el pasador aumentará el valor de ADC por 1. Podemos tomar el valor de salida del ADC como una variable y luego violín, compararlo con cosas, etc. en el código. La ADC es una función muy útil y permite que hacer un montón de cosas interesantes como la vuelta tu AVR en un osciloscopio. La frecuencia de muestreo es de alrededor de 125kHz y debe establecer en proporción a la frecuencia del reloj principal.
Registros
Usted puede haber oído de registros, pero miedo no! Un registro es simplemente una colección de direcciones (ubicaciones) en la memoria del AVR. Los registros se clasifican por su tamaño poco. Un registro de 7 bits tiene 8 posiciones, como empezar de 0. Hay registros para apenas sobre todo y bien echa un vistazo a ellos con mucho más detalle más adelante. Algunos ejemplos incluyen los registros PORTx (donde x es B, C o D) que controlan si un pin es ajustados alto o bajo y levante los resistores para insumos, registros de DDRx que si un pin es la salida o entrada y así sucesivamente.
La hoja de datos
Un gigante de la literatura, peso de alrededor de 400 páginas; la pajina AVR es una referencia inestimable a tu procesador. Contienen información de cada registro, cada pin, como contadores de tiempo de trabajo, lo que se funde debe establecerse en qué y mucho más. Son gratuitos y se necesita más pronto o más tarde, así que descarga una copia!
www.Atmel.com/DYN/Resources/prod_documents/doc2486.pdf