AVR cuestión ADC, por favor ayuda

  • Thread starter MohammadElwakeel
  • Start date
M

MohammadElwakeel

Guest
Hola a todos,

Actualmente estoy usando ATMEGA16 y tengo una pregunta relativa a ADC.¿Puedo usar

algunos pines de PORTA para la ADC y en el mismo tiempo utilizar otros pines de dicho puerto

para la salida de entrada digital.PORTA es decir, puede ser utilizado como un puerto analógico y mixto para

entradas digitales??

Por favor ayuda lo antes posible!!!

 
Hola!
De coures puede hacer eso.Para ello utiliza el registro ADMUX.
Usted puede seleccionar el canal que está conectado a la ADC.Sólo el canal seleccionado se convertirá en una entrada analógica y el resto de los pines se mantendrá E / S digital con sus funciones controladas por el correspondiente Registro de dirección de datos.

Recuerdos.

 
ver este código, se entiende cómo utilizar ADC interno
http://booksbybibin.14.forumer.com/viewtopic.php?t=121

Bibin John
www.bibinjohn.tk

 
Usted puede programar cada puerto, como lo desea.
la búsqueda de más información de la estructura interna de la ADC

 
el código de su trabajo
incluyen <mega8535.h>
# asm
. equ __lcd_port = 0x15; PORTC
endasm #
# include <lcd.h>
# include <delay.h>
# include <string.h>
# include <math.h>
# include <stdlib.h>
# include <stdio.h>

float current_temp;
Tensión de flotación;
lcdbuffer char [16];

/ / ADC rutina de interrupción de servicio
interrupción [ADC_INT] adc_isr (void)
(
unsigned int ADC_DATA;
ADC_DATA = ADCW; / / obtener datos de ADC
voltaje = ((float) 4680 * (float) ADC_DATA) / (float) 1023;
ADCSRA = ADCSRA | 0x40;
)

Temp void ()
(
current_temp = 0,1 * Tensión 2.0;
ftoa (current_temp, 2, lcdbuffer);
lcd_gotoxy (8,0);
lcd_puts (lcdbuffer);
)

void main (void)
(
lcd_init (16); / / LCD de inicialización.
ADMUX = 0x01;
ADCSRA = 0xAC;
SFIOR & = 0x0F;
lcd_gotoxy (0,0);
lcd_putsf ( "Temp");
while (1)
(
# asm ( "sei")

Temp ();
);
)

 
no i dont think so.como puedo saber cuando u u ADC configuración NO se podrá utilizar el mismo puerto como pin I / O.

(referencia: Atmel CP. fichas)

 
Sí U puede utilizar pines restantes como digital I / O.En el 7 º SEM he hecho AVR controlador de temperatura basado en el uso ATMEGA8535 y LM35 (sensor de temperatura).

El código de configuración de ADC.es tan bajo.

void adcfg (void)
(
ADCSRA = 0xad / / ADC ha disparado en exceso cada 0 TIM con interrumpir habilitado
SFIOR & = 0x0F;
SFIOR | = 0x80;
)

 

Welcome to EDABoard.com

Sponsor

Back
Top