Problema con rutina para voltimetro

Si te encuentras diseñando, desarrollando o construyendo un proyecto y tienes complicaciones, en este sub-foro podemos ayudarte. Aquí ingresa con los temas que no puedas ubicar dentro de otros sub-foros, por ejemplo, Radio, Microcontroladores, Software, etc. Cuando algo no funciona, de este sub-foro sale en marcha.

Moderador: HJ

Problema con rutina para voltimetro

Notapor soymoe » Mar Jun 11, 2013 10:08 am

Hola estoy rehaciendo un voltimetro digital pero en CCS, el voltaje lo muestro en dos display de 7 segmentos, para ello tengo que separar el voltaje en decenas, unidades y decimas, el problema es que la rutina no me funciona, me dan una mano?

#include <16F88.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES PUT //Power Up Timer
#FUSES PROTECT //Code protected from reads
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#device adc=8//La resolución del módulo A/D es de 8 bits.
#use delay(int=4000000,RESTART_WDT)
int adc=0,AuxBin=0,AuxBinDec=0,TensionInt,VoltInt;
char Decena=0,Unidad=0,Decima=0;
#include <Display.c>
#include <Display_Punto.c>
void main()
{
setup_adc_ports(all_analog);
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel(0);
delay_us(20);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_1 );
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
set_tris_b(0x00); //
set_tris_a(0xff);
output_b (0x00);
while(1){
adc=read_adc();
TensionInt=adc*1176;
AuxBin=TensionInt/1000;
Decena=1;//AuxBin/100;
AuxBinDec=AuxBin%100;
Unidad=2;//AuxBinDec/10;
Decima=3;//AuxBinDec%10;
if (adc<85)
MostrarDecima();
else
Mostrar_Numero();

}
}
Avatar de Usuario
soymoe
 
Mensajes: 36
Registrado: Dom Abr 21, 2013 3:10 pm
Ubicación: Esperanza

Re: Problema con rutina para voltimetro

Notapor bmoex » Mar Jun 11, 2013 10:23 am

hola, no logro comprender tu programa, pero esto te ayudara bastante http://www.ate.uniovi.es/fernando/Doc2008/Sis_Ele_2008/Ejemplos/Microcontroladores/BIN8BCD.pdf es un algoritmo muy simple y se puede implementar de forma diferente. saludos
Código: Seleccionar todo
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."
bmoex
 
Mensajes: 56
Registrado: Vie Mar 22, 2013 9:43 pm
Ubicación: Argentina, Santa Fe, Rosario

Re: Problema con rutina para voltimetro

Notapor Switchxxi » Mar Jun 11, 2013 11:40 am

Guenas...

La palabra clave que necesitas es "BCD" (binary-coded decimal). Busca información acerca de ello y tendrás herramientas para llevar a cabo tu proyecto.

Saludos.
- Javier -
En mis circuitos, el humo no se cobra, va de regalo.
            Imagen
Avatar de Usuario
Switchxxi
 
Mensajes: 215
Registrado: Sab Mar 23, 2013 4:10 pm
Ubicación: Bs. As - Argentina

Re: Problema con rutina para voltimetro

Notapor soymoe » Mar Jun 11, 2013 4:31 pm

Gracias a todos por las sugerencias, ya encontre el problema, era que los datos deben ser int 32 para poder hacer los calculos, ahora funciona bien.
Avatar de Usuario
soymoe
 
Mensajes: 36
Registrado: Dom Abr 21, 2013 3:10 pm
Ubicación: Esperanza


Volver a Problemas con mis Desarrollos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron