Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAlba Valenzuela Modificado hace 10 años
1
MICROCONTROLADORES ATMEL INTERRUPCIONES EN AvrButterfly. Jorge Vega Rosero Giovanni Granados.
2
INTRODUCCION El desarrollo de herramientas para aprendizaje para cualquier rama del conocimiento ha sido motivo de continua evolución. En Electrónica, nuevos desarrollos aparecen cada día, estos desarrollos ameritan una inmediata adaptabilidad forzada para estar en un nivel competitivo ante otras Sociedades Tecnológicas.
3
INTRODUCCION Esta guía ayuda a que nos encaminemos específicamente a desarrollos iníciales con los Microcontroladores Atmel. El aporte es a dar a conocer el potencial de estos Microcontroladores. Y que en menor tiempo posible el estudiante interesado en esta tecnología desarrolle su potencial creativo.
4
INTRODUCCION Nuestra área de interés son las Interrupciones del Microcontrolador ATmega 169 Fabricado por Atmel, y que lo encontramos embebido en el kit de desarrollo del AVR Butterfly. Nuestra área de interés son las Interrupciones del Microcontrolador ATmega 169 Fabricado por Atmel, y que lo encontramos embebido en el kit de desarrollo del AVR Butterfly.
5
INTERRUPCIONES Las Interrupciones son un método del que disponen los Microcontroladores, para atender alguna circunstancia que requiera su inmediata atención. Al presentarse un pedido de interrupción el Microcontrolador da por terminado cualquier instrucción en curso, y hará un salto a una subrutina de Interrupción, una vez terminada esta subrutina, volverá a su labor anterior. Las Interrupciones son un método del que disponen los Microcontroladores, para atender alguna circunstancia que requiera su inmediata atención. Al presentarse un pedido de interrupción el Microcontrolador da por terminado cualquier instrucción en curso, y hará un salto a una subrutina de Interrupción, una vez terminada esta subrutina, volverá a su labor anterior.
6
INTERRUPCIONES
7
AVRBUTTERFLY En nuestro estudio nos basaremos en las configuraciones del Atmega169, ya que es el Microcontrolador integrado en el AVRBUTTERFLY. En nuestro estudio nos basaremos en las configuraciones del Atmega169, ya que es el Microcontrolador integrado en el AVRBUTTERFLY.
8
VECTORES DE INTERRUPCION NUMERO DE VECTOR DIRECCION DE PROGRAMA FUENTEDEFINICION DE INTERRUPCION 10X0000RESETPIN EXTERNO RESET 20X0002INT0INTERRUPCION EXTERNA INT0 30X0004PCINT0INTERRUPCION EXTERNA POR CAMBIO EN PIN 40X0006PCINT1INTERRUPCION EXTERNA POR CAMBIO EN PIN
9
VECTORES DE INTERRUPCION 50X0008TIMER2 COMPTIMER/COUNTER2 COMPARACION CON VALOR DEFINIDO 60X000ATIMER2 OVFTIMER/COUNTER2 POR DESBORDE 70X000CTIMER1 COMPTIMER/COUNTER1 COMPARACION CON VALOR DEFINIDO 80X000ETIMER1 COMPATIMER/COUNTER1 COMPARACION CON VALOR DEFINIDO EN A 90X0010TIMER1 COMPBTIMER/COUNTER1 COMPARACION CON VALOR DEFINIDO EN B 100X0012TIMER1 OVFTIMER/COUNTER1 POR DESBORDE
10
VECTORES DE INTERRUPCION 110X0014TIMER0 COMPTIMER/COUNTER0 COMPARACION CON VALOR DEFINIDO 120X0016TIMER0 OVFTIMER/COUNTER0 POR DESBORDE 130X0018SPI, STCSPI TRANSMISION SERIAL COMPLETA 140X001AUSART,RXUSART, RX COMPLETA 150X001CUSART, UDREUSART, REGISTRO DE DATO VACIA 160X001EUSART, TXUSART, TX COMPLETA 170X0020USI STARTUSI CONDICION DE INICIO
11
VECTORES DE INTERRUPCION 180X0022 USI OVERFLOW USI DESBORDE 190X0024ANALOG COMPCOMPARADOR ANALOGICO 200X0026ADCADC, CONVERSION COMPLETA 210X0028EE READYEEPROM LISTA 220X002ASPM READYALMACENAMIENTO EN MEMORIA DE PORGRAMA LISTA 230X002CLCDLCD INICIO DE FRAME.
12
ATMEGA169
13
PROYECTO1 Elaboración un controlador continuo para Led Tricolor(RGB), por medio de modulación PWM.
14
OBJETIVOS Mostrar el uso de las Interrupciones en la generación de señales PWM, y así poder visualizar una gama de colores a partir de un LED RGB. Mostrar el uso de las Interrupciones en la generación de señales PWM, y así poder visualizar una gama de colores a partir de un LED RGB.
15
PWM La modulación por anchura de pulsos (PWM) es una técnica de modulación, en la que se modifica el ciclo de trabajo de una señal periódica cuadrada, esta variación en el ciclo de trabajo, produce una variación en la transferencia de energía entregada. Afectando directamente a la intensidad final del Led. La modulación por anchura de pulsos (PWM) es una técnica de modulación, en la que se modifica el ciclo de trabajo de una señal periódica cuadrada, esta variación en el ciclo de trabajo, produce una variación en la transferencia de energía entregada. Afectando directamente a la intensidad final del Led.
16
PWM El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación al período. Cuando mas tiempo pase la señal en estado alto, mayor será la velocidad del motor. El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación al período. Cuando mas tiempo pase la señal en estado alto, mayor será la velocidad del motor. Este tren de pulsos, en realidad, hace que el motor marche alimentado por la tensión máxima de la señal durante el tiempo en que esta se encuentra en estado alto, y que pare en los tiempos en que la señal esta en estado bajo. Este tren de pulsos, en realidad, hace que el motor marche alimentado por la tensión máxima de la señal durante el tiempo en que esta se encuentra en estado alto, y que pare en los tiempos en que la señal esta en estado bajo.
17
Ciclo de Trabajo
18
PWM Usos de señales PWM PWM tiene diferentes usos: Atenuación de la intensidad de un LED. Atenuación de la intensidad de un LED. Disponer de una salida analógica; si la salida digital esta filtrada, esto proveerá de un voltaje entre el 0% y el 100%. Disponer de una salida analógica; si la salida digital esta filtrada, esto proveerá de un voltaje entre el 0% y el 100%. Generar señales de audio. Generar señales de audio. Proveer de un control de velocidad variable para motores. Proveer de un control de velocidad variable para motores. Generar una señal modulada, como la utilizada en controles remotos de televisores. Generar una señal modulada, como la utilizada en controles remotos de televisores.
19
DIAGRAMA DE BLOQUES
20
Gama de colores
22
ROJO120, VERDE, 60 AZUL 240
23
ROJO 34, VERDE180 AZUL 240
24
Dificultades encontradas Las salidas PWM naturales del Atemega 169 estas reservadas. Las salidas PWM naturales del Atemega 169 estas reservadas.
25
Dificultades
26
Interrupciones al generar PWM Se activa una interrupción cuando el Timer llega a su máximo valor 0xFF y pasa a 0x00 Se activa una interrupción cuando el Timer llega a su máximo valor 0xFF y pasa a 0x00 Esta interrupción es por desborde. Esta interrupción es por desborde. También se activa cuando el Timer llega al valor de comparación, esta interrupción es por comparación. También se activa cuando el Timer llega al valor de comparación, esta interrupción es por comparación.
29
;HABILITACION DE REGISTROS PARA FUNCIONAMIENTO DEL TIMERO HABILITAR_TIMER0_COMP: // TCCR0A - TIMER COUNTER CONTROL REGISTER A //FOC0A0XNO USADO //WGM00 WGM0111FAST PWM //COM01A COM0A000DESCONECTADO OC0A //CS02 CS01 CS00 100CLK/256 // //ORDEN(FOC0A, WGM00, COM01A, COM0A0, WGM01, CS02,CS01,CS00) // LDI REG_TEMP,0B01001100 ;0B01001100 ;GUARDAMOS CONFIGURACION DE MODO. Y PREESCALADOR OUT TCCR0A,REG_TEMP LDS REG_TEMP,TIMSK0;GUARDAMOS EL ESTADO ANTERIOR DE TIMSK0 (INTERRUPT MASK REGISTER) SBR REG_TEMP,(1<<OCIE0A) + (1<<TOIE0);HABILITAMOS LA INTERRUPCION 0X00014 Y 0X00016 STS TIMSK0,REG_TEMP;CARGAMOS EL VALOR CONFIGURADO EN TIMSK0 LDI REG_TEMP,0x0A;CARGAMOS EL VALOR MAXIMO AL QUE LLEGARA EL TIMER2 STS OCR0A,REG_TEMP RET
30
Configuraciones
31
Configuraciones
32
;HABILITACION DE REGISTROS PARA FUNCIONAMIENTO DEL TIMERO HABILITAR_TIMER0_COMP: // TCCR0A - TIMER COUNTER CONTROL REGISTER A //FOC0A0XNO USADO //WGM00 WGM0111FAST PWM //COM01A COM0A000DESCONECTADO OC0A //CS02 CS01 CS00 100CLK/256 // //ORDEN(FOC0A, WGM00, COM01A, COM0A0, WGM01, CS02,CS01,CS00) // LDI REG_TEMP,0B01001100 ;0B01001010 ;GUARDAMOS CONFIGURACION DE MODO. Y PREESCALADOR OUT TCCR0A,REG_TEMP LDS REG_TEMP,TIMSK0;GUARDAMOS EL ESTADO ANTERIOR DE TIMSK0 (INTERRUPT MASK REGISTER) SBR REG_TEMP,(1<<OCIE0A) + (1<<TOIE0);HABILITAMOS LA INTERRUPCION 0X00014 Y 0X00016 STS TIMSK0,REG_TEMP;CARGAMOS EL VALOR CONFIGURADO EN TIMSK0 LDI REG_TEMP,0x0A;CARGAMOS EL VALOR MAXIMO AL QUE LLEGARA EL TIMER2 STS OCR0A,REG_TEMP RET
33
Cambio lógico en pin //COLOR AZUL //COLOR AZUL INT_TIMER0_COMP: INT_TIMER0_COMP: CLI CLI CBI PORTB,0 CBI PORTB,0 SEI SEI RETI RETI INT_TIMER0_OVF: INT_TIMER0_OVF: CLI CLI SBIPORTB,0 SBIPORTB,0 SEI SEI RETI RETI
35
DIAGRAMA DE FLUJO PRINCIPAL
36
Diagrama de flujo CICLO INFINITO
38
RESULTADOS ROJO INC 1AZUL INC 2VERDE INC EN 3 00 010203 020406 030609 04080C 050A0F 060C12 070E15 081018 09121B 0A141E 0B1621 0C1824 0D1A27 0E1C2A ROJO INC 1AZUL INC 2VERDE INC EN 3 4890D8 4992DB 4A94DE 4B96E1 4C98E4 4D9AE7 4E9CEA 4F9EED 50A0F0 51A2F3 52A4F6 53A6F9 54A8FC 55AAFF
40
PROYECT2 Elaborar un programa en lenguaje C, que active un ventilador cuando la lectura del ADC0 ha alcanzado el valor Máximo decimal de 200. Y apagar el ventilador cuando el ADC0 ha alcanzado el valor mínimo decimal de 100, utilizar el NTC integrado del AvrButterfly. Ver grafica 3-19.
41
OBJETIVOS Configurar el convertidor analógico digital. Configurar el convertidor analógico digital. Realizar mediciones mediante el sensor TNC intergrado del AvrButterfly. Realizar mediciones mediante el sensor TNC intergrado del AvrButterfly. Activar un led, que representa el Encendido de un Ventilador. Activar un led, que representa el Encendido de un Ventilador.
42
COMPORTAMIENTO DEL SISTEMA DEACUERDO A LA ENTRADA ANALOGICA
43
DIAGRAMA DE BLOQUES
44
Esquemático de sensor de temperatura interno del AvrButterfly. Este sensor es de comportamiento logarítmico, lo implica un largo proceso de cálculo para obtener valores de temperatura exactos. Sin embargo mediantes métodos de cálculo se puede llegar a una aproximación muy aceptable
45
void adc_init(void) void adc_init(void) { //SELECION DEL VOLTAJE DE REFERENCIA //SELECION DEL VOLTAJE DE REFERENCIA //AVCC CON CAPACITOR EXTERNO AREF pin //AVCC CON CAPACITOR EXTERNO AREF pin ADMUX|=(0<<REFS1)|(1<<REFS0); ADMUX|=(0<<REFS1)|(1<<REFS0); //set prescaller ADC //set prescaller ADC ADCSRA|=(1<<ADEN)|(1<<ADIE);//enable ADC with dummy conversion ADCSRA|=(1<<ADEN)|(1<<ADIE);//enable ADC with dummy conversion //set sleep mode ADC noise reduction conversion //set sleep mode ADC noise reduction conversion //set_sleep_mode(SLEEP_MODE_ADC); //set_sleep_mode(SLEEP_MODE_ADC); }
46
ADEMUX
51
Gracias Gracias
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.