ejercicos en atmega 164p uso de modo fast pwm cambio tiempo en alto y medir delta

January 2, 2019 | Author: Wilmer Villegas Codena | Category: Musical Notation, Musical Forms, Rhythm And Meter, Elements Of Music, Musical Compositions
Share Embed Donate


Short Description

Download ejercicos en atmega 164p uso de modo fast pwm cambio tiempo en alto y medir delta...

Description

ESCUELA POLITECNICA NACIONAL SISTEMAS MICROPROCESADOS NOMBRES: Wilmer Villegas FECHA: 0 8  –  0 5  –  2012 1. Realizar un programa que genere una señal PWM (modo a usar “FAST PWM”). Con un cristal de 1MHz en donde variamos el  

 

, para lo cual

usamos INT0 con un     y INT1 con un    . Cuando no presiono ninguna interrupción debo tener un delta normal igu al a 0.5, usamos cualquier frecuencia.

PROGRAMA EN AVR: .include"m164pdef.inc" .def tempo=r17 .def aux=r18 .def aux1=r19 .def aux2=r20 ; coloco los vectores de interrupcion .org 0x00

 j mp .org 0x02  j mp .org 0x04  j mp .org 0x06  j mp

inic io de lta1 de lta2 de lta3

inicio: ; declaro como salida el correspondiente al OC0A ldi tempo,0b00001000 out ddrb,tempo ; declaro como entradas interrupciones ldi tempo,0b00000000 out ddrd,tempo ; habilitación de pull - up ldi tempo,0b00001100 out portd,tempo ldi tempo,0b00000100 out portb,tempo ; garantizo pull - up in tempo,mcucr andi tempo,0b11101111 out mcucr,tempo ;habilitación del SP ldi r16,high(ramend) out sph,r16 ldi r16,low(ramend) out spl,r16 ; habilitacion de interrupciones ldi tempo,0b00000111 out eimsk,tempo ;desencademaniento de interrupciones ldi tempo,0b00101010 sts eicra,tempo ;comparación y modo ldi tempo,0b10000011 out tccr0a,tempo ;preescaler 8 y modo ldi tempo,0b00000010 out tccr0b,tempo ; habilitacion global interrupciones sei

lazo: pin

rjmp lazo delta1:

las

push tempo in tempo,sreg push tempo ; cambio mi delta = 0.3 ldi aux,77 out ocr0a,aux rjmp salir delta2: push tempo in tempo,sreg push tempo ; cambio mi delta = 0.7 ldi aux1,179 out ocr0a,aux1 rjmp salir delta3:

mis

push tempo in tempo,sreg push tempo ; cambio mi delta = 0.5 ldi aux2,128 out ocr0a,aux2 salir:

de

pop tempo out sreg,tempo pop tempo reti

SIMULACION EN PROTEUS:    

   

   

DIAGRAMA DE FUJO:

2. Realizar un programa el cual se ingrese una seña l de entrada externa y medir el tiempo en delta (%).



 

   

PROGRAMA EN AVR: .include"m164pdef.inc"

out

sph,r16

.def .def .def .def .def .def .def

ldi out

r16,low(ramend) spl,r16

ldi

tempo,0b00001000

sts ldi

PCICR,tempo tempo,0b01000000

sts

PCMSK3,tempo

ldi

tempo,0b00000000

sts ldi

TCCR1A,tempo tempo,0b01000000

sts ldi

TCCR1B,tempo tempo,0b00100000

sts

TIMSK1,tempo

ldi

tempo,0b0000000

ldi tempo,0b01000000 out ddrd,tempo

out out

TCCR0A,tempo TCCR0B,tempo

ldi

ldi

tempo,0b00000001

tiempoh=r17 tiempol=r18 TH=r19 TL=r20 tempo=r21 aux=r23 taux=r24

.org 0x00  j mp .org 0x0E  j mp .org 0x18  j mp

inicio t i me r c aptur a

.org 0x24  j mp

desbor de

inicio:

r16,high(ramend)

sts

TIMSK0,tempo

sei clr tempo clr aux

salir: pop

tempo

out pop reti

SREG,tempo tempo

lazo: rjmp lazo timer: push tempo in tempo,SREG push tempo sbrc aux,0 rjmp detener0 clr r22 out TCCR0B,r22 out sts sts sts

TCNT0,r22 TCCR1B,r22 TCNT1H,r22 TCNT1L,r22

ldi out

r22,0b00000001 TCCR0B,r22

ldi sts ldi rjmp

r22,0b01000001 TCCR1B,r22 aux,1 salir

detener0: clr out in mov clr

r22 TCCR0B,r22 tiempol,TCNT0 tiempoh,taux aux

desborde: push tempo in tempo,SREG push tempo inc

taux

pop out pop reti

tempo SREG,tempo tempo

captura: push tempo in tempo,SREG push tempo lds lds clr sts

TH,ICR1H TL,ICR1L r22 TCCR1B,r22

sts

TCNT1H,r22

sts

TCNT1L,r22

pop

tempo

out pop reti

SREG,tempo tempo

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF