Autor Tema: Manejo de bits con CCS  (Leído 13114 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Manejo de bits con CCS
« en: 08 de Junio de 2007, 17:04:34 »
Estoy aprendienod CCS (acostumbrado a CC5x) y me gustaria saber como hago por ejemplo para manejar el pin X del puerto Y bajo el nombre led1 por ejemplo?

Gracias x la ayuda!

EDIT: Modifike el tema para no crear uno nuevo, por eso hay respuestas que no tiene nada que ver..
« Última modificación: 10 de Junio de 2007, 12:51:39 por aripod »

Desconectado arquito

  • PIC10
  • *
  • Mensajes: 21
Re: Libreria lcd2.h, dudas
« Respuesta #1 en: 08 de Junio de 2007, 19:16:31 »
Hola aripod;

yo tambien he usado esta libreria y aunque mis conocimientos en C son mas bien escasos, lo que yo entendi(ya que tuve tambien que cambiar el conexionado), es que le das al puerto A del pic el valor de 5 y al puerto B el valor de 6, con el #byte lcd_a y con el #bit xxxxxxxxx=5.x configuras cada bit del puerto, es decir, en esta libreria conectas
el E(enable) del lcd a 5.2(RA2), rw del LCD a 5.1(RA1) y RS del LCD a 5.0(RA0).... creo que es asi, de todas formas que me corrija alguien si estoy equivocado; del resto de cuestiones que planteas ni idea, espero te puedan ayudar.... un saludo y suerte.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Libreria lcd2.h, dudas
« Respuesta #2 en: 08 de Junio de 2007, 21:18:28 »
Problema solucionado.....anduvo asi:

Código: [Seleccionar]
#include <16F84A.h>         //pic a utilizar   
#fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz

#byte port_a=5
#bit  boton=5.0

#byte port_b=6
#bit  led=6.0

void main(void)
{
set_tris_a(0xF);
set_tris_b(0x00);
while(1)
{
if(boton==1)
led=1;
else
led=0;
}
}
« Última modificación: 10 de Junio de 2007, 14:02:12 por aripod »

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #3 en: 10 de Junio de 2007, 14:12:28 »
Quise poner todo en el puerto B, o sea el pin B0 el boton y la salida (que la simulo con un led) en el B1:

Código: [Seleccionar]
#include <16F84A.h>         //pic a utilizar   
#fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz

#byte port_b=6
#bit  boton=6.0
#bit  led=6.1

void main(void)
{
set_tris_b(0b10000000);

while(1)
{
if(boton==1)
led=1;
else
led=0;
}
}

Pero no anda...Que es lo que esta mal??
« Última modificación: 10 de Junio de 2007, 16:02:43 por aripod »

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manejo de bits con CCS
« Respuesta #4 en: 10 de Junio de 2007, 16:37:08 »
Debes de utilizar las instrucciones input() para leer un valor del puerto y output_bit() para poner una salida en un determinado estado. Mira la ayuda de CCS para estas dos funciones y estará resuelto tu problema.

Un saludo



* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #5 en: 10 de Junio de 2007, 16:49:01 »
Mi idea no es usar funciones, sino variables...asi manejo las patas que necesite del pic con un nombre......como lo solia hacer con el otro compilador......

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manejo de bits con CCS
« Respuesta #6 en: 10 de Junio de 2007, 17:22:20 »
Desgraciadamente (creo no equivocarme), en este compilador hay que hacerlo así.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #7 en: 10 de Junio de 2007, 20:13:20 »
Que hay con......
Código: [Seleccionar]
#byte port_a=5
#bit  boton=5.0



Ademas de eso, ahora tengo algo MUY insolito....

declaro: int bandera=1;
y me dice cuando compilo me dice en esa linea: A numeric expression must appear here  y en las demas lineas donde uso bandera: Undefined identifier   bandera.

Que es eso?????? Como que no esta definida?
« Última modificación: 10 de Junio de 2007, 23:57:24 por aripod »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Manejo de bits con CCS
« Respuesta #8 en: 11 de Junio de 2007, 02:12:22 »
Quise poner todo en el puerto B, o sea el pin B0 el boton y la salida (que la simulo con un led) en el B1:

Código: [Seleccionar]
#include <16F84A.h>         //pic a utilizar   
#fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz

#byte port_b=6
#bit  boton=6.0
#bit  led=6.1

void main(void)
{
set_tris_b(0b10000000);

while(1)
{
if(boton==1)
led=1;
else
led=0;
}
}

Pero no anda...Que es lo que esta mal??
Has puesto el TRIS al revés, declarando como entrada el bit PORTB.7  en lugar del PORTB.0 que necesitas
Cámbialo por esto.
set_tris_b(0b00000001);

Debes de utilizar las instrucciones input() para leer un valor del puerto y output_bit() para poner una salida en un determinado estado. Mira la ayuda de CCS para estas dos funciones y estará resuelto tu problema.

Un saludo
No es imprescindible Jesús; la sintaxis de arquito también es válida (y a mí particularmente me gusta más).

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manejo de bits con CCS
« Respuesta #9 en: 11 de Junio de 2007, 04:19:28 »
Citar
Cita de: jfh900 en 10 Junio 2007, 21:37:08
Debes de utilizar las instrucciones input() para leer un valor del puerto y output_bit() para poner una salida en un determinado estado. Mira la ayuda de CCS para estas dos funciones y estará resuelto tu problema.

Un saludo

No es imprescindible Jesús; la sintaxis de arquito también es válida (y a mí particularmente me gusta más).

Es cierto Manolo, me fuí a cuando el compilador no permitia declarar los #bit y solo era posible hacerlo mediante las funciones.

Por cierto si lo queremos poner bonito podemos agregar:

Código: C
  1. #include <16F84A.h>         //pic a utilizar  
  2. #fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
  3. #use delay (clock=4000000)         //Fosc=4Mhz
  4.  
  5. #byte port_b=6
  6. #bit  boton=6.0
  7. #bit  led=6.1
  8. #define enciende 1
  9. #define apaga 0
  10.  
  11. void main(void)
  12. {
  13. set_tris_b(0b10000000);
  14.  
  15. while(1)
  16.         {
  17.         if(boton==1)
  18.                 led=enciende;
  19.         else
  20.                 led=apaga;
  21.         }
  22. }

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #10 en: 11 de Junio de 2007, 08:54:19 »
Sigo luchando con esto de los bits....pareceria ser que cuando lo pongo en el mismo puerto a la entrada y salida no anda.....y cuando agrego un int NO compila, me dice que esa variable no fue decalrada


Segun lei en un post que hizo Nocturno se puede hacer:

Código: [Seleccionar]
#bit  led         = PORTB.RB2
#bit led_tris    = TRISB.RB2

y despues usarlo como:

Código: [Seleccionar]
led_tris=1;
led=1;
led=0;

Entonces hago esto:

Código: [Seleccionar]
#include <16F84A.h>         //pic a utilizar   
#fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz

#bit led = PORTB.RB1
#bit led_tris = TRISB.RB1

void main(void)
{

led_tris=0;

led=1;
delay_ms(2000);
led=0;

}

Y me dice esto:
Código: [Seleccionar]
Clean: Deleting intermediary and output files.
Clean: Deleted file "Codigo.$$$".
Clean Warning: File "C:\Proyectos\Prueba de Bits\Codigo.o" doesn't exist.
Clean: Deleted file "Codigo.ERR".
Clean: Done.
Executing: "C:\Archivos de programa\PICC\Ccsc.exe" +FM "Codigo.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 51 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 6(2,5): A numeric expression must appear here
*** Error 48 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 6(15,23): Expecting a (
*** Error 48 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 6(17,22): Expecting a (
*** Error 48 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 8(1,4): Expecting a (
*** Error 12 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 11(1,9): Undefined identifier   led_tris
*** Error 12 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 13(1,4): Undefined identifier   led
*** Error 12 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 15(1,4): Undefined identifier   led
      7 Errors,  0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Mon Jun 11 15:10:31 2007
« Última modificación: 11 de Junio de 2007, 15:10:16 por aripod »

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #11 en: 13 de Junio de 2007, 12:17:32 »
Nadie sabe que es lo que estoy haciendo mal??

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Manejo de bits con CCS
« Respuesta #12 en: 13 de Junio de 2007, 14:58:40 »
A ver, adjunta tu fichero .C e intentaré compilarlo.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manejo de bits con CCS
« Respuesta #13 en: 13 de Junio de 2007, 15:50:39 »
Hola aripod te faltan declarar las directivas que estas empleando, mira tú programa modificado y compilado:



Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #14 en: 13 de Junio de 2007, 22:31:03 »
Este es el codigo....