Está en la página 1de 3

ACTIVIDAD PWM

JUAN SEBASTIAN RUEDA. 1734456.

1. PRENDER LED VERDE.


myStart:
; Configuración del reloj del PWM
MOVW r0, #0xE000
MOVT r0, #0x400F; dirección base
MOVW r2, #0x640; offset de RCGCPWM
MOVW r1, #0x0002; solo el modulo 1 del pwm
MOVT r1, #0x0000
STR r1, [r0, r2]
; Configuración del reloj del puerto F
MOVW r2, #0x108; offset de RCGC2
MOVW r1, #0x0020
MOVT r1, #0x0000; modificación a RCGC2
STR r1, [r0, r2]
; Seleccionar el pin del PWM
MOVW r0, #0x5000
MOVT r0, #0x4002; dirección base puerto F
MOVW r2, #0x528; offset de GPIOAMSEL
MOVW r1, #0x0000; deshabilita entradas analogicas
STR r1, [r0, r2]
MOVW r2, #0x51C; offset de GPIODEN
MOVW r1, #0x0008; habilita entradas digitales en
pin 2
STR r1, [r0, r2]
MOVW r2, #0x400; offset de GPIODIR
STR r1, [r0, r2] ; bit 2 como salida
MOVW r2, #0x420; offset de GPIOAFSEL
STR r1, [r0, r2] ; bit 2 con funciones alternas
; Seleccionar el PWM del puerto F
MOVW r2, #0x052C; offset de GPIOPCTL
MOVW r1, #0x5000; código de M1PWM6
STR r1, [r0, r2]
; configurar RCC
MOVW r0, #0xE000
MOVT r0, #0x400F; dirección base
MOVW r2, #0x060; offset
LDR r1, [r0, r2]
MOVW r3, #0xFFFF
MOVT r3, #0xFFF1
AND r1, r1, r3; borra bits 17:19
MOVW r3, #0x0000
MOVT r3, #0x0014
ORR r1, r1, r3; pone bit 20 en 1 y 2
en bits 17:19
STR r1, [r0, r2]
; configuración PWM1CTL
MOVW r0, #0x9000
MOVT r0, #0x4002; dirección base modulo 1
MOVW r2, #0x0100; offset del PWM3
MOVW r1, #0x0000
MOVT r1, #0x0000;
STR r1, [r0, r2]
MOVW r2, #0x0120; offset del PWM3GENA
MOVW r1, #0x008C
STR r1, [r0, r2]
MOVW r2, #0x0124; offset del PWM3GENB
MOVW r1, #0x080C
STR r1, [r0, r2]
MOVW r2, #0x0110; offset del PWM3LOAD
MOVW r1, #399
STR r1, [r0, r2]
MOVW r2, #0x0118; offset del PWM3CMPA
MOVW r1, #300
STR r1, [r0, r2]
MOVW r2, #0x011C; offset del PWM3CMPB
MOVW r1, #100
STR r1, [r0, r2]
MOVW r2, #0x0100; offset del PWM3CTL
MOVW r1, #1
STR r1, [r0, r2]
MOVW r2, #0x8; offset del PWMENABLE
MOVW r1, #0x00C0
STR r1, [r0, r2]

2. PRENDER LED ROJO


myStart:
; Configuración del reloj del PWM
MOVW r0, #0xE000
MOVT r0, #0x400F; dirección base
MOVW r2, #0x640; offset de RCGCPWM
MOVW r1, #0x0002; solo el modulo 1 del pwm
MOVT r1, #0x0000
STR r1, [r0, r2]
; Configuración del reloj del puerto F
MOVW r2, #0x108; offset de RCGC2
MOVW r1, #0x0020
MOVT r1, #0x0000; modificación a RCGC2
STR r1, [r0, r2]
; Seleccionar el pin del PWM
MOVW r0, #0x5000
MOVT r0, #0x4002; dirección base puerto F
MOVW r2, #0x528; offset de GPIOAMSEL
MOVW r1, #0x0000; deshabilita entradas analogicas
STR r1, [r0, r2]
MOVW r2, #0x51C; offset de GPIODEN
MOVW r1, #0x0002; habilita entradas digitales en
pin 2
STR r1, [r0, r2]
MOVW r2, #0x400; offset de GPIODIR
STR r1, [r0, r2] ; bit 2 como salida
MOVW r2, #0x420; offset de GPIOAFSEL
STR r1, [r0, r2] ; bit 2 con funciones alternas
; Seleccionar el PWM del puerto F
MOVW r2, #0x052C; offset de GPIOPCTL
MOVW r1, #0x0050; código de M1PWM6
STR r1, [r0, r2]
; configurar RCC
MOVW r0, #0xE000
MOVT r0, #0x400F; dirección base
MOVW r2, #0x060; offset
LDR r1, [r0, r2]
MOVW r3, #0xFFFF
MOVT r3, #0xFFF1
AND r1, r1, r3; borra bits 17:19
MOVW r3, #0x0000
MOVT r3, #0x0014
ORR r1, r1, r3; pone bit 20 en 1 y 2
en bits 17:19
STR r1, [r0, r2]
; configuración PWM1CTL
MOVW r0, #0x9000
MOVT r0, #0x4002; dirección base modulo 1
MOVW r2, #0x00C0; offset del PWM3
MOVW r1, #0x0000
MOVT r1, #0x0000;
STR r1, [r0, r2]
MOVW r2, #0x00E0; offset del PWM3GENA
MOVW r1, #0x008C
STR r1, [r0, r2]
MOVW r2, #0x00E4; offset del PWM3GENB
MOVW r1, #0x080C
STR r1, [r0, r2]
MOVW r2, #0x00D0; offset del PWM3LOAD
MOVW r1, #399
STR r1, [r0, r2]
MOVW r2, #0x00D8; offset del PWM3CMPA
MOVW r1, #300
STR r1, [r0, r2]
MOVW r2, #0x00DC; offset del PWM3CMPB
MOVW r1, #380
STR r1, [r0, r2]
MOVW r2, #0x00C0; offset del PWM3CTL
MOVW r1, #1
STR r1, [r0, r2]
MOVW r2, #0x8; offset del PWMENABLE
MOVW r1, #0x0020
STR r1, [r0, r2]

Los cambios sustanciales esta resaltados en amarillo, en el segundo caso, para encender el led
Rojo donde los offset del PWM3 se cambian para los del PWM2.

También podría gustarte