Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

25/02/2014 #1


como cambiar efectos de un led con un pulsador en mikroc
tengo esto


void main() {

trisa=1;
trisb=0;
portb=0;

for ( ;; ) {
if( porta.f0==1 ) {

portb.f5=1;
delay_ms(5000);
portb.f5=0;

}

}
}

aqui lo mantengo encendido durante 5 segundo pero quiero que con el mismo boton haga otro efecto por ejemplo las luces navideñas por favor nececito ayuda gracias ...
26/02/2014 #2

Avatar de TRILO-BYTE

pues con un delay no logras mas que trabar el micro
puedes usar el delay pero muy pequeño

lo ideal para manejar el brillo del led es con PWM con un periodo de 20ms
no nesesariamente el pic debe tener comparador para hacer el PWM
puedes hacerlo por software mas que por hardware
26/02/2014 #3

Avatar de Nuyel

usa un contador(declaralo global) y programa una interrupción para el pulsador de ser posible, la interrupción debe incrementar el contador o si solo programaras 8 efectos puedes usar desplazamientos por ejemplo
Código:
/** registro para los efectos **/
char efecto = 1;
/** interrupción del boton **/
void boton(void){
  if(efecto & 0x80) efecto = 1;
  else efecto = efecto << 1;
}
/** Codigo principal **/
void main(void){
  /** Codigo para los efectos **/
  while(efecto & 0x01){ 
     /** Efecto 1 **/
  }
  while(efecto & 0x02){ 
     /** Efecto 2 **/
  }
  while(efecto & 0x04){ 
     /** Efecto 3 **/
  }
  while(efecto & 0x08){ 
     /** Efecto 4 **/
  }
  while(efecto & 0x10){ 
     /** Efecto 5 **/
  }
  while(efecto & 0x20){ 
     /** Efecto 6 **/
  }
  while(efecto & 0x40){ 
     /** Efecto 7 **/
  }
  while(efecto & 0x80){ 
     /** Efecto 8 **/
  }
}
No se como declares interrupciones pero es más apropiado que usar encuesta sobre todo si usas retrasos grandes, a nadie le hará mucha gracia tener que esperar varios segundos presionando el botón hasta que se detecte el intento de cambiar de efecto.
27/02/2014 #4


muchas gracias nuyel pero otra pregunta hay como llamo la funcion boton si lo voy a utilizar en porta.f0
es decir el purto RA0= entrada es donde voy a utilizar a el boton y/o pulsador
27/02/2014 #5

Avatar de Nuyel

No se que PIC estas usando y no sabría si admite interrupción en el puerto A la mayoría que he visto la usan el el puerto B (de hecho incluyen una resistencia pull-up interna para facilitar trabajar con botones), habría que revisar la hoja de datos.
27/02/2014 #6


es el 16f628a el boton por e puerto ra0 y portb son salidas
es decir

porta=entrada
portb=salida
27/02/2014 #7

Avatar de Nuyel

¿Es obligatorio? por que las interrupciones están en el puerto b
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.