Autor Tema: Como asignar PIN_Cx a una misma varible para controlarla en una libreria?  (Leído 1665 veces)

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

Desconectado Pedro

  • PIC10
  • *
  • Mensajes: 7
Saludos, he creado una pequeñita libreria  ya que me estoy iniciando  en ccs. La libreria que he creado es para leer datos de un ADC MCP3550. Pero en el circuito utilizo dos adc con los que me gustaria seleccionar el chip CS en la misma funciòn en la que la llamo para leer los datos.  En el ejemplo CS lo tengo con adc_cs. Lo que quiero es que si door = 1 adc_cs  se asigne a PIN_C0 y si door = 2 que sea PIN_C1 por ejemplo. :?
#define cs0   PIN_C0

 int32 Mcp3550_read(int8 door)
{
   
   int32 result_adc = 0 ;
   
   result_adc = 0 ;
     
       output_low(adc_cs) ;
       while (input(adc_sdo) == 1){  }
       output_high(adc_cs) ;       
       delay_us(50) ;
       output_low(adc_cs) ;
       delay_us(50) ;
   
   
  for (int8 v_conta = 0 ; v_conta <= 24 ; v_conta++ ){
      output_high(adc_sck) ;
      delay_us(50) ;
      if (input(adc_sdo) ==  true) { result_adc += 1 ;}
      output_low(adc_sck) ;
      delay_us(50) ;
      result_adc =  result_adc << 1;
      }
      output_high(adc_cs) ;
      output_low(adc_sck) ;
      result_adc = ( result_adc * 0.000786781319) ; //           
      return result_adc ;
   


}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Como asignar PIN_Cx a una misma varible para controlarla en una libreria?
« Respuesta #1 en: 29 de Julio de 2016, 17:00:25 »
Se me ocurren varias formas, no se si es posible. Ya que no me llevo demasiado bien con CCS.

- Usar un switch o if y que tenga el mismo codigo uno para cada salida, obviamente esto significa 2 codigos identicos casi, nomas que cambia la salida.
- Si es posible definir el registro, PORTC o LATC, depende del PIC:

Código: C
  1. LATC = (1 << (door-1));

- Definir el registro y usar las funciones que trae CCS

Código: C
  1. bit_set(LATC,door-1);
  2. bit_clear(PORTC,door-1);
  3. bit_toggle(xxxxx);

Es lo unico que se me ocurre, creo que los registros los definis con #BYTE

Desconectado Pedro

  • PIC10
  • *
  • Mensajes: 7
Re:Como asignar PIN_Cx a una misma varible para controlarla en una libreria?
« Respuesta #2 en: 30 de Julio de 2016, 04:33:24 »
Gracias si lo de if si lo habia pensado voy a probar lo otro haber ;-)