Autor Tema: conversor a 10 bit  (Leído 7237 veces)

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

Desconectado Micro23

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 226
Re: conversor a 10 bit
« Respuesta #30 en: 29 de Septiembre de 2008, 14:45:17 »
Hola Diego en C la cosa es mas sencilla declaras tus variables anteponiendole signed, por ejemplo:

int puede tomar valores entre 0 y 255
signed int puede tomar valores entre -128 y 127

Entonces haces las operaciones que quieras y si queres saber si tu variable es negativo preguntas si es menor que cero y listo.

Fijate en la ayuda del CCS en Data definition ahi podes encontrar los tipos datos y los valores que pueden tomar.

Saludos
« Última modificación: 29 de Septiembre de 2008, 17:56:26 por Micro23 »
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #31 en: 29 de Septiembre de 2008, 15:04:28 »
Hola.

Estas linkeando el ejecutable que no corresponde, es por eso que te abre el programa.

El compilador identifica automaticamente si el numero es negativo, siempre y cuando hallas hecho la declaracion de la variable como lo menciona Micro23.

Saludos
El papel lo aguanta todo

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #32 en: 29 de Septiembre de 2008, 16:31:26 »
respaldo2 = 0;
respaldo2=respaldo2 - 10;

if(respaldo2<0)   //Si el resultado es negativo
   {respaldo2 =((~respaldo2)+1);}   //Complemento a 2

//MLO, micro23, De esto forma comprobé el resultado negativo, esta bien ?

gracias

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #33 en: 29 de Septiembre de 2008, 17:10:50 »
Hola.

Con el if(respaldo2<0) ya esas comprobando si es negativo la variable respaldo2. Si tu variable respaldo2 esta definida como un signed int no hay necesidad de hacer el complemento a 2, puedes operarla como quieras (ojo con el intervalo que alcanzan las variables, no es lo mismo signed int, que signed int16 o signed int32).

Saludos
El papel lo aguanta todo

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #34 en: 29 de Septiembre de 2008, 18:23:08 »
MLO, tenias razó elstaba configurando el compilador PCW y debería ser Ccsc,
veo que aparecen unos errores por las directivas byte, #use, etc , se debe configurar lguna otra cosa ?

gracias

Desconectado ncoliv

  • PIC16
  • ***
  • Mensajes: 130
Re: conversor a 10 bit
« Respuesta #35 en: 03 de Octubre de 2008, 22:27:25 »
Hola Diego E. tengo este programita hecho para un f877a donde se utiliza un conver. A/d de 10 bits en el se muestra la conversion y el correspondiente voltage.

#include <16F877a.h>
#device adc=10
#include <STDLIB.H>
#use delay(clock=4000000)
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#byte portb=6
#include <lcd.c>

void main(void)
{
float const resoluc=5.0/1024.0;
int16 valor=0;
float kk=0;


set_tris_b(0x00);
set_tris_a(0xFF);
portb=0x00;

lcd_init();
lcd_gotoxy(1,1);

setup_adc_ports(RA0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
delay_us(20);

while(true)
{

valor=read_adc();
kk=valor*resoluc;
lcd_gotoxy(1, 1);
printf(lcd_putc,"fconv: %lu  ",valor);
lcd_gotoxy(1, 2);
printf(lcd_putc,"medida: %2.3f  ",kk);  // muestra el voltage con tres decimales
delay_ms(500);
}
}

es muy basico y tbien esta asesorado por los muchachos de este foro.

espero te sirva
saludos

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #36 en: 04 de Octubre de 2008, 11:20:17 »
ncoliv, gracias por tu aporte, cada que veo un programa hecho por otra persona aprendo detalles importantes.

gracias


 

anything