Autor Tema: Pulsadores - LED - y otros eventos con CCS  (Leído 16624 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Pulsadores - LED - y otros eventos con CCS
« en: 12 de Abril de 2009, 20:59:11 »
hola Amigos

tengo una pregunta para ustedes...!
¿En CCS como se asignan eventos a un puerto?
me explico, quiero poner en el puertod pin2, un led1, seria PIN_D2, como
se hace eso con un #define led1 PIN_D2? lo probe y no me funciona, la idea es usar un nombre o un id , esto es posible ?

¿se podria usar lo mismo con los pulsadores?

un saludo.
« Última modificación: 12 de Abril de 2009, 21:23:59 por pajaro »

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #1 en: 12 de Abril de 2009, 21:43:29 »
si que puedes pero tienes que definir de diferente forma....
esto esta sacado del manual del ccs

El argumento para las funciones de entrada y salida es una dirección de
bit. Por ejemplo, para el bit 3º del port A (byte 5 de los SFR) tendría un valor
dirección de 5*8+3=43.
Esto se puede definir como sigue: #define pin3_portA 43.
Los pines o patillas de los dispositivos estan definidos como PIN_XX en los
archivos de cabecera *.H. Éstos, se pueden modificar para que los nombres de
los pines sean más significativos para un proyecto determinado.

en la datashell te indica el byte de los SFR.... osea la direccion del puerto....
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #2 en: 12 de Abril de 2009, 22:33:23 »
Hola.

Solo con #define LED1 pin_d2 es suficiente. Recuerda que debes colocarlo antes del programa principal. Al definirlo de esa manera ya podras usarlo, p.e:
Código: [Seleccionar]
#define pulsador1 pin_a0
#define LED1 pin_d2
...
void main (void)
{
 if(input_state(pulsador1))
  output_high(LED1);
 else
  output_low(LED1);
}

Saludos
El papel lo aguanta todo

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #3 en: 13 de Abril de 2009, 10:26:30 »
hola Amigos

Gracias por vuestra rapida ayuda.

Un saludo.

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #4 en: 17 de Abril de 2009, 22:51:33 »
hola..

otra dudilla!
para saber si se pulso o no un pulsador se suele usar esto o hay otra forma mejor:

#define LED1 PIN_C1
#use fast_io(A)

if(!input(PIN_A0))             // si esta a uno
{
output_high(LED1);          //enciende led1
}


mi rompecabezas es el siguiente:
si tienes definido el pin A0 como entrada, como puede ser que simulandola con proteus en cuanto le pulsas una vez,
es como si se quedara en clavada.

Que explicacion puede tener.

un saludo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #5 en: 17 de Abril de 2009, 23:07:26 »
Como asi? no entiendo tu duda.
El papel lo aguanta todo

Desconectado J_jOsE

  • PIC12
  • **
  • Mensajes: 57
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #6 en: 18 de Abril de 2009, 00:44:53 »
aqui pongo un ejemplo que espero aclare tus dudas :mrgreen:

/*   Enciende LED en RA3, con pulsador en RA0                           */
/*   Apaga LED en RA3, con pulsador en RA1                              */
/*----------------------------------------------------------------------*/
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT,NOCPD,NOWRT
#use delay (clock=4000000)

main()
{
   set_tris_a(0x37);             // RA3 salida, el resto entradas
                                 // 0x37=0011 0111=XX11 0111, no existen RA6-7
   output_bit(PIN_A3,0);         // Pin RA3 = 0

   while(1)
   {
     if(input(PIN_A0))           // Si RA0=1
       output_bit(PIN_A3,1);     // Pin RA3 = 1
     if(input(PIN_A1))           // Si RA1=1
       output_bit(PIN_A3,0);     // Pin RA3 = 0
   }
}

y aca  adjunto el diagrama

salu_2 a to_2

PD: sumergete mas en el foro y veras que hallaras mejores respuestas
No Pain No Gain

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #7 en: 18 de Abril de 2009, 10:41:32 »
Para mi los #DEFINE son de lo mas util! pero hay algo que me gusta AUN MAS! los #BIT!!!
por ejemplo, quieres que el pin A1 sea un led:

#bit  LED  0x05.1

0x05 es la direccion del puerto A, y 1 es el bit que queremos usar.
De esa manera podemos encender o apagar un led como si de una variable se tratara:

LED = 1;   //enciende led
LED = 0;   //apaga led

es mucho mas practico que el define, en el que tendrias que hacer
output_high(LED);

el #bit sirve tambien para leer entradas, por ejemplo si tienes un pulsador lo puedes leer de la misma manera que tratabamos al led:
if(PULSADOR == 0){ ... }

mira cuando te conviene usar un define y cuando un bit.
Eso si, recuerda que para usar #BIT tienes que usar el puerto con FAST_IO, y hacer un tris (decir que pines son de entrada y cuales de salida) al inicio del programa.

Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #8 en: 03 de Mayo de 2009, 14:47:38 »
Hola Amigos

Querria preguntar unas dudillas, relacionadas con eventos.

Para encender un led me lo mostraron con anterioridad, con CCs el encendido de un led y el hacer sonar un zumbador
funcionan de la misma forma verdad, no hay función especifica verdad?

nivel alto salida
tiempo
nivel bajo bajo

Un saludo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #9 en: 03 de Mayo de 2009, 16:33:02 »
Hola.

Aplica el mismo concepto, lo unico seria que el zumbador no va conectado directamente al PIC si no que lo haces mediante un transistor.
El papel lo aguanta todo

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #10 en: 03 de Mayo de 2009, 16:45:12 »
Yo tenia un zumbador que medi y consumia menos de 20mA... lo conecte directamente al pic y funciono durante un tiempo, pero ahora hace ruidos extraños... no se si sera que el valor de corriente que medi es una media, y que los valores pico sean mas altos... porque debe ser que me estoy cargando el pin del pic... suena como ahogado  :lol:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #11 en: 03 de Mayo de 2009, 16:49:35 »
Por cierto pajaro, piensa que en el fondo activar un led no es mas que poner el pin a 5v... y eso sera lo mismo para un led, que para un transistor o para un zumbador... con lo cual no hay funciones especificas para zumbadores....

Salu2

PS: hay zumbadores activos y pasivos. Los activos suenan (vibran) por si mismos solo dandoles voltaje, mientras que los pasivos tienes que enviar tu la señal pulsante (de unos 2khz) para que suenen.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #12 en: 03 de Mayo de 2009, 17:18:29 »
Hola.

Los dos zumbadores son activos -necesitan fuente externa-, la diferencia es que uno es piezoelectrico por lo que hay que enviarles la frecuencia a la cual deben sonar.
El papel lo aguanta todo

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #13 en: 03 de Mayo de 2009, 18:03:32 »
a mi el chino de sureelectronics me vendio los zumbadores como "pasivos" y "activos".... lo que si esta claro es que necesitan fuente externa todos  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: Pulsadores - LED - y otros eventos con CCS
« Respuesta #14 en: 03 de Mayo de 2009, 20:03:48 »
hola Amigos
mi zumbador es como un condensador de los gordos y cortos, una pata más larga que la otra con polaridad + y -
al ponerle la polaridad correcta de tension pita,y menudos pitidos, pero no da ninguna nota.

un saludo.


 

anything