Multifunción con un solo boton.

Hola que tal estado estudiando para realizar este proyecto para mi casa.

Bueno lo que quiero que con un boton conectado al B0 encienda y apague un led que tiene la salida A0 bueno quiero que sea multifuncion este boton.

Este es mi codigo lo pueden revisar para ver si esta bien y tiene logica lo que hice si hay un problema y una suguerencia me lo podrian decir.

lo unico que tengo mas duda como le hago para cada vez que presione un boton aumente una variable de tipo entero y comience en 0 y va aumentando cada vez que presione el boton


PHP:
/*CONFIGURACION PIC*/
#include "18f4550.h"
#use delay(clock=48000000) //FREC DE OSC DEL MICRO
#build(reset=0x02000,interrupt=0x02008)
#org 0x0000,0x1FFF {}
 
/////////////////////////PROGRAMA PRINCIPAL/////////////////////////////
 
int x,y,num,res;
 
void main(void)
{ 
x=0;
set_tris_a(0b11110000); //Configura puerto B como salidas
set_tris_b(0b00001111); //Configura puerto C como entradas
do{
if (input(pin_b0)==1)
x=1;
for (x=1; x<=num; x++)
{
res=num%x;
if(res==0)
y++;
if(y>2)
break;
}
if(y==2)
output_high(pin_a0);
else
output_low(pin_a0);
}
while (TRUE); // bucle infinito.
}

Gracias por su ayuda

Aqui ajunto mis archivos
 

Adjuntos

  • Multifunción con una sola tecla.rar
    141.9 KB · Visitas: 6
Última edición por un moderador:
aca
if (input(pin_b0)==1)
x=1; ///aca asigna 1 a x
for (
x=1; x<=num; x++) ///aca asigna de nuevo 1 a x, sobra una de las dos
{ ///
res=num%x;


igual para sumar una variable simplemente

if (input(pin_xx))(y++);

ya aumenta la variable, si lo quiere reiniciar a cero con el mismo boton, yo pondria un temporizador que determine si el pulso fue muy corto, suma, si fue largo, reinicia...

aparte tener en cuenta que el uC corre muy rapido, entonces debe poner un retraso al oprimir el boton ej:
if (input(pin_xx))(delay_ms(150),.....);

aparte que el pin del boton debe tener un resistor pullup o pulldown para que no quede en vacio
 
Atrás
Arriba