Práctica: Modulaci´on ancho de pulso en C

Anuncio
Práctica: Modulación ancho de pulso en C
1. Objetivos
Aprender a generar un PWM en lenguaje C.
2. Trabajo previo
Realizar un pseudocódigo para el programa del apartado 5
3. Programa ejemplo
Crear una nueva carpeta en el directorio de trabajo.
Volcar al directorio de trabajo los ficheros la página web
http:// www.iit.upco.es/˜cesar/servoc
Hacer doble click sobre el icono:
servoc.Uv2
Ejecutar en tarjeta.
4. Ejemplo de generación de onda
El siguiente programa genera una señal periódica de periodo 2 ms y 50 % de “duty-cycle” utilizando una rutina de
retardo. Analizar y comprobar el funcionamiento del mismo conectando un osciloscopio a la salida P7.0 (en la tarjeta
lleva el nombre Borna 2: “B2”).
/* Generación de onda de T=2 ms, 50% duty-cycle.
usando timer 0, en lenguaje C por polling con máscaras
Departamento de Electrónica y Automática DEA-ICAI
Prof. Cesáreo Fernández Martı́nez
*/
#include <reg167.h>
#include <stdio.h>
#define CUENTA -2500
void retraso(int seg);
void main(void) {
DP7 = 0x0001;
P7 = 0x0000;
while(1) {
retraso(CUENTA);
P7 = P7 ˆ 0x0001;
}
}
void retraso(int tiempo) {
T0REL = 0;
T01CON = 0x00;
T0
= tiempo;
1
T0REL = tiempo;
T01CON = T01CON | 0x40;
// arranca timer
while (!(T0IC & 0x80));
T0IC = T0IC & 0x7f;
T01CON = T01CON & 0xbf;
// bucle de espera de rebose
// borra flag de rebose
// para el timer
}
5. Ejercicio 2: Servo, posición variable
Modificar el programa anterior de forma que el tiempo que está la señal en nivel alto sea un tiempo entre 500µs y
2 ms, manteniendo el periodo de 20ms. Este tiempo se podrá cambiar utilizando los dos interruptores menos significativos del puerto 2.
¿Qué resolución tenemos a la hora de definir el nivel alto?.
Comprobar el funcionamiento con un osciloscopio.
Una vez comprobado que el programa funciona correctamente se podrá gobernar un servo con la ayuda de los
interruptores. (Pedir el servo al profesor).
6. Opcional I
Realizar el mismo ejercicio usando los cuatro interruptores menos significativos del puerto P2.
2
Descargar