Nuevo en el Foro

Registrado: 10 May, 2006
Mensajes: 15
|
| Tengo un porblema, y esque quiero hacer unos leds parpadeantes con varios modos, aunque de momento he probado con 3 modos y 15 leds, en grupos de 3 en paralelo.
He usado un Pic16f84a.
El problema es que nunca había programado en C, y hice un porgrama para el michochip.
Los leds funcionan, pero únicamente hace un barrido de funciones 2 y 3 y se apagan.
Al reiniciarle, vuelve a funcionar, hace lo mismo y de nuevo se apagan.
Os paso el código de programación, para que algún experto le eche un vistazo, a ver qué me puede decir:
#include <16F84A.h>
#fuses XT,NOWDT
#use delay(clock=4000000)
#define L3 PIN_A3
#define L2 PIN_A2
#define L1 PIN_A1
#define L4 PIN_A0
#define L5 PIN_B3
#define ON output_high
#define OFF output_low
#define P1 PIN_B1
#define P2 PIN_B2
int modo=1;
int vel=500;
void main()
{
if(!input(P1))
{if (modo=3)
{
modo=1;
}
else
{
switch (modo)
{
case 1: modo=1;
case 2: modo=2;
case 3: modo=3;
}
}
}
if(!input(P2))
{if (vel=200)
{
vel=500;}
else
{
switch (vel)
{
case 1: vel=500;
case 2: modo=300;
case 3: modo=200;
}
}
}
if(modo=1)
{
on (L1);
on (L2);
on (L3);
on (L4);
on (L5);
delay_ms(70);
off (L1);
off (L2);
off (L3);
off (L4);
off (L5);
delay_ms(vel);
}
if (modo=2)
{
on (L1);
on (L3);
on (L5);
delay_ms(70);
off (L1);
off (L3);
off (L5);
delay_ms(vel);
on (L2);
on (L4);
delay_ms(70);
off (L2);
off (L4);
delay_ms(vel);
}
if (modo=3)
{
on (L1);
delay_ms(70);
off (L1);
on (L2);
delay_ms(70);
off (L2);
on (L3);
delay_ms(70);
off (L3);
on (L4);
delay_ms(70);
off (L4);
on (L5);
delay_ms(70);
off (L5);
}
}
Como podéis ver, el primer modo es todos los leds parpadeando a la vez.
El segundo modo, parpadean primero los leds impares y luego los pares.
Y el tercero es que van luciendo uno por uno.
El pulsador uno es para cambier el modo y el pulsador 2 para cambiar la velocidad.
Gracias por vuestra ayuda, os agradecería que revisarais el código y me dijerais qué debo corregir o mejor aún, que me pasarais el código corregido.
Muchas gracias, y siento ser tan pedigueño. |
| |
|
|