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

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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Manejo de bits con CCS
« Respuesta #15 en: 14 de Junio de 2007, 00:12:03 »
Ya has visto lo que te faltaba en el código que ha pegado Jesús.

Aquí te dejo otra forma de hacerlo que también ha compilado perfectamente:
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 PORTB=6
  6. #byte TRISB=0x86
  7. #bit led=PORTB.1
  8. #bit led_tris=TRISB.1
  9.  
  10.  
  11. void main(void)
  12. {
  13.  
  14. set_tris_b(0);
  15.  
  16. led=1;
  17. delay_ms(2000);
  18. led=0;
  19.  
  20. }

(Jesús, el PORTB está en la 0x06 ;-) )

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #16 en: 14 de Junio de 2007, 10:14:18 »
Nocturno, muchisimas gracias!
Porque haces:
#byte PORTB=6
#byte TRISB=0x86

Por que le asignas 6 al PORTB? De que depende el numero?
Y el TRISB?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Manejo de bits con CCS
« Respuesta #17 en: 14 de Junio de 2007, 11:26:22 »
Esos números son las direcciones de memoria de los registros PORTB y TRISB. Se supone que CCS ya las conoce si utilizas output_b() pero no en el formato que tú estás usando.
Esas direcciones de memoria son consultables en la datasheet.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #18 en: 14 de Junio de 2007, 12:07:02 »
Esas direcciones de memoria dependen entonces de cada pic?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Manejo de bits con CCS
« Respuesta #19 en: 14 de Junio de 2007, 12:27:27 »
Sí, aunque concretamente PORTB coincide en la misma dirección para casi todos.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #20 en: 14 de Junio de 2007, 13:20:29 »
Mi migracion al CCS ha sido excitosa. Codifique el programa y no hubo ni un error en la compilacio, el problema fue cuando lo emule en el proteus, no veo ni un uno ni un cero en las patas del pic. Adjunto el .HEX y el .DNS del proteus
« Última modificación: 15 de Junio de 2007, 22:58:15 por aripod »

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #21 en: 16 de Junio de 2007, 20:42:36 »
¿¿¿???

Desconectado Giovanny

  • PIC12
  • **
  • Mensajes: 97
    • Supercomponentes
Re: Manejo de bits con CCS
« Respuesta #22 en: 17 de Junio de 2007, 12:36:48 »
hola aripod, analize tu simulacion y el .c
con respecto a la simulacion me di cuenta que quieres simular un teclado con esos pulsadores, y hay te digo un par de cosas, el simulador tiene teclados de 3X4 o 4X4 entre sus componentes, no le colocaste pull_up_resistors, ni las definiste por soft (no se si ese pic tenga en el portB). Debes colocar un alto en el MCLR... si no, no trabaja.

Con respecto al soft, me di cuenta que el manejo de puertos no es adecuado..
te recomiendo mirar la ayuda del CCS.   


(entradas)

if(b3==1 && b4==0)
puedes escribirlo
if(input(PIN_B3)  && !input_PIN_B4)

(salidas)
A=0;   //puedes hacerlo de varias formas   //output_low(A);    //putput_low(PIN_A0); //output_bit(A,0);
X=x0;    ////output_bit(X,x0);      ////output_bit(PIN_A2,x0);


Revisa el soft, analiza la simulacion y encontrarás que debes cambiar y mejorar.
luego postea tus dudas.


PD, que version tienes del ccs y del proteus..... tengo una demo del proteus 7.1 , me ha gustado mucho!
        Saludos desde Colombia! Que hermoso país....

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #23 en: 17 de Junio de 2007, 14:04:40 »
Como hago para poner en output_bit(PIN_A2,x0); por ejemplo en vez de PIN_A2 ponerle el nombre A2 que le asigne arriba, que casualmente es A2 pero que podria haber sido otra cosa???

El tema del teclado, utilizo con pulsadores ya que al teclado lo voy a armar yo con pulsadores porke van en distintos lugares, entonces es mas facil si lo armo yo.
El tema de las resistencias no me queda muy claro, van en los pines que son entradas o los que son salidas? Para que estan?
Otra vez, muchas gracias.
« Última modificación: 19 de Junio de 2007, 13:15:09 por aripod »

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #24 en: 19 de Junio de 2007, 14:29:53 »
Cuando uso la funcion output_bit(X,x0); sean cuales sean los parametros de la funcion siempre me da el siguiente error:

Código: [Seleccionar]
Expression must evaluate to a constant

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manejo de bits con CCS
« Respuesta #25 en: 19 de Junio de 2007, 14:51:41 »
output_bit(Pin,valor) solo se puede utilizar con los puertos (pines) y no se puede utilizar con variables. Con variables tienes que utilizar bit_set(), bit_clear() y bit_test().

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 #26 en: 19 de Junio de 2007, 15:08:44 »
Perfecto, mas claro imposible. Tendre que resistirme a usar las variables je.
Como es el tema de las resistencias entonces? Si pongo en 1 un pin y tengo que ver si ese 1 llega a otro pin, va derecho o con alguna resistencia por ahi?

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manejo de bits con CCS
« Respuesta #27 en: 19 de Junio de 2007, 16:45:49 »
Cuando utilizas un pin como salida, necesitas que este polarizado mediante una resistencia. Esta resistencia puede ser interna y se activan mediante programa o en caso de que no la tenga interna se puede poner externa. Si no se polariza el pin de salida (por cualquiera de estos dos procedimientos), el pin de salida solo podra dar un "0" o un estado de alta impedancia, que es un estado indefinido.

La unión de un pin de entrada con uno de salida (como en los teclados multiplexados) se realiza de forma directa, no hace falta poner ninguna resistencia de unión.

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 Giovanny

  • PIC12
  • **
  • Mensajes: 97
    • Supercomponentes
Re: Manejo de bits con CCS
« Respuesta #28 en: 20 de Junio de 2007, 03:38:17 »

(salidas)
A=0;   //puedes hacerlo de varias formas   //output_low(A);    //putput_low(PIN_A0); //output_bit(A,0);
X=x0;    ////output_bit(X,x0);      ////output_bit(PIN_A2,x0);


saludos a todos , gracias por las correcciones
output_bit(X,x0);     // esto es válido si ya has asignado  X a un pin especial y además x0 es una variable tipo int1
espero no estar equivocado en esta afirmacion jeje.. cada día aprendemos un poco más..
hasta pronto
        Saludos desde Colombia! Que hermoso país....

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Manejo de bits con CCS
« Respuesta #29 en: 21 de Junio de 2007, 20:30:49 »
Programa y problemas resueltos. Ya probe todo (armado) y anda sin problemas, tanto el teclado (sin resistencias como me dijeron) y las salidas.....
Muchisimas gracias a todos los que me ayudaron!!


 

anything