Autor Tema: Problema con salidas en pic 18F2550 usando CCS  (Leído 1943 veces)

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

Desconectado shirase

  • PIC10
  • *
  • Mensajes: 13
Problema con salidas en pic 18F2550 usando CCS
« en: 29 de Marzo de 2013, 07:13:10 »
Hola buenas, estoy comenzando con la programación del PIC 18F2550, he usado C para programar el PIC 16F84A pero el anterior nunca lo he tocado, uso el compilador CCS C, lo que quiero es controlar las entradas/salidas, como principio lo que quiero es que el PIN 2 (RA0) del pic 18F2550 se ponga a 1, y al conectar a este una resistencia, en serie con un led, llevando la otra patilla a masa debería encender, pero no enciende, dejo el código en C a continuación:

Código: C
  1. #include "18f2550.h"
  2. #fuses XT, NOWDT //configuración de bits
  3. #use delay(clock=4000000) //oscilador
  4. #use standard_io(a)
  5.  
  6. void main() //Principal en C
  7. {
  8. set_tris_c(0x04);//se declaran entradas y salidas 0100 C2=in,C1=out,C0=out
  9.  
  10.  while(TRUE){
  11.   output_hight(PIN_RA0);   //led on
  12.  }
  13.  
  14. }

¿Que tengo que corregir en mi código para que funcione?. Un saludo.
« Última modificación: 29 de Marzo de 2013, 09:58:27 por shirase »

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Problema con salidas en pic 18F2550 usando CCS
« Respuesta #1 en: 29 de Marzo de 2013, 11:59:35 »
Estas configurando mal el registro trisa del micro ( debe ser set_tris_a(0x04) y no set_tris_c(0x04)), además  es recomendable configurar los terminales de la puerta A como salidas digitales utilizando la función setup_adc_ports(xx).  
Un saludo desde Pereira - Colombia

Desconectado shirase

  • PIC10
  • *
  • Mensajes: 13
Re: Problema con salidas en pic 18F2550 usando CCS
« Respuesta #2 en: 29 de Marzo de 2013, 12:12:48 »
¿Es decir el código modificado quedarías así?:
Código: C
  1. #include "18f2550.h"
  2. #fuses XT, NOWDT //configuración de bits
  3. #use delay(clock=4000000) //oscilador
  4. #use standard_io(a)
  5.  
  6. void main() //Principal en C
  7. {
  8.  setup_adc_ports(xx).
  9. set_tris_a(0x04);//se declaran entradas y salidas 0100 C2=in,C1=out,C0=out
  10.  
  11.  while(TRUE){
  12.   output_hight(PIN_RA0);   //led on
  13.  }
  14.  
  15. }

¿Ahora? Un saludo y gracias.

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Problema con salidas en pic 18F2550 usando CCS
« Respuesta #3 en: 29 de Marzo de 2013, 13:01:48 »

Código: [Seleccionar]
setup_adc_ports(xx).
En la linea de código anterior solo se debe configurar el parámetro xx según se desee, por ejemplo:

Código: [Seleccionar]
setup_adc_ports(AN0_TO_AN1| VREF_VREF );
Esta linea de código configura el terminal AN0 y AN1 como entradas análogas los demás terminales de modulo A/D queda configurados como terminales digitales.

Recomiendo leer el documento de manual de usuario de CCS.
Un saludo desde Pereira - Colombia

Desconectado shirase

  • PIC10
  • *
  • Mensajes: 13
Re: Problema con salidas en pic 18F2550 usando CCS
« Respuesta #4 en: 29 de Marzo de 2013, 15:06:59 »
Gracias Chenao disculpa las molestias es que soy muy nuevo, veras me da error ahora al compilar porque me dice que no se definió "PIN_RA0" en "output_hight(PIN_RA0);" , ¿como se define ese PIN, el RA0, o cualquiera de los otros pines para poder usarlos y ponerlos a nivel uno o cero con esa función?. Un saludo

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Problema con salidas en pic 18F2550 usando CCS
« Respuesta #5 en: 29 de Marzo de 2013, 16:20:39 »

Citar
Gracias Chenao disculpa las molestias es que soy muy nuevo, veras me da error ahora al compilar porque me dice que no se definió "PIN_RA0" en "output_hight(PIN_RA0);" , ¿como se define ese PIN, el RA0, o cualquiera de los otros pines para poder usarlos y ponerlos a nivel uno o cero con esa función?. Un saludo

No estas siguiendo la recomendación, en la página 31 del manual de usuario del CCS se enseña todo lo relacionado con la funciones discretas, el la página 32 se especifica como utilizar la función output_high(pin). Con respecto a la consulta esta función pone en 1 lógico el terminal que se especifica en el parámetro pin. Así a modo ejemplo:

Código: [Seleccionar]
output_high(pin_A0)
Pone en 1 lógico el terminal RA0 de la puerto A fíjate que no se debe escribir PIN_RA0 si no pin_A0. Creo que este documento se encuentra libre en la red, mi consejo es revisarlo, otro documento que deberías revisar es el driver del respectivo microcontrolador que estas utilizando ya que dependiendo de la serie algunas funciones cambian.     
Un saludo desde Pereira - Colombia

Desconectado shirase

  • PIC10
  • *
  • Mensajes: 13
Re: Problema con salidas en pic 18F2550 usando CCS
« Respuesta #6 en: 29 de Marzo de 2013, 19:52:38 »
Muchas gracias mirare ambos manuales. Un saludo amigo. ^^


 

anything