TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: lalodesant en 17 de Junio de 2012, 18:30:38
-
estoy haciendo una practica del control de un motor unipolar con el uln2803. mi codigo esta en pic c compiler y tengo el sistema minimo con el 18f4550.
Mi problema es el siguiente quiero que cambie la velocidad en cualquier punto del programa y mi profe me dijo que con una variable , y son 2 push boton uno para aumentar la velocidad y otro para disminuirla(yo use el puerto b como entrada los 2 primeros pines) pero no me hace nada si me compila pero prende todo al mismo tiempo no se espera ni cambia el tiempo ya no se me ocurre nada ayuda "es para mañana"
#include <18F4550.h> //
#fuses hs,nolvp,nowdt,noprotect
#use delay (clock=20000000) //Declaración del cristal que se ocupa para la operación.
//Habilitar puerto
#byte portb=0XF81
#byte portd=0XF83
//Dirección de la memoria donde se localiza el Puerto b.
//Habilitacion de puertos como entrada o salida
inicializar(){
set_tris_d(0x01); //Configurar el puerto d como entrada
set_tris_b(0x00); //Configurar el puerto b como salida
output_b(0); //Limpio el puerto B de cualquier basura
}
int1 tiempo=400;
//Programa principal
void main()
{
inicializar();
while(true)
{
if(portb==1){ //este es un push boton que tiene que aumentar o disminuir la velocidad en cualquier momento del progama
tiempo=tiempo+200
}
else if(portb=2){ //este es un push boton que tiene que aumentar o disminuir la velocidad en cualquier momento del progama
tiempo=tiempo-200)
}
portb=0x0C;
delay_ms(tiempo);
portb=0x06;
delay_ms(tiempo);
portb=0x03;
delay_ms(tiempo);
portb=0x09;
delay_ms(tiempo);
}
}
-
lee las reglas del foro, no repitas temas
-
Hola, por que lees del puerto P que lo tiene configurado como salidas todo?. Lo normal sería que utilizases otro puerto o bien del puerto B dediques algunas GPIO a entrada y otras a salidas. Es que así estás tu escribiendo y leyendo a la vez, es muy raro.
A parte de que puedes meter tiempos negativos en la rutina del delay y no creo que permita retroceder en el tiempo :P jeje. Bromas a parte, debes controlar que nunca baje de 0 la variable tiempo.
Saludos.
-
no creo que permita retroceder en el tiempo jeje.
Con tiempos positivos va para delante y con los negativos va para atras, invierte el sentido de giro :D :D
-
hola buenas tardes soy nuevo en esto de los foros y no se si estoy haciendo bien esta consulta, es decir en el lugar indicado
quiero pedir un poco de ayuda para poder hacer girar un motor paso a paso durante 30seg al oprimir un pulsador el pic que quiero usar es el 16f628a
de antemano muchas gracias