No tocaría hacer el casting con float? y de ahí cargarlo a CCP_1.
Saludos
Estoy utilizando un pic18f252 @ 10MHZ y el ccs, el proyecto consiste en hacer un programa para manejar un servo motor por medio de un potenciometro conectado al adc del pic.
Variable.Velocidad= ((float)(Variable.Metros*FactorVelocidad)/(float)(Variable.SetPointPulsos))/((float)(CCP_1*0.0000016)+Timer.Desbordes);
#include <18f252.h>
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES PUT //Power Up Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=10000000)
long var1;
#int_TIMER1
void TIMER1_isr(void)
{
set_timer1(15536);
setup_ccp1(CCP_COMPARE_SET_ON_MATCH);
ccp_1= var1;
}
void main()
{
setup_adc_ports(an0);
setup_adc(adc_clock_internal);
set_adc_channel(0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //26.2 ms overflow
setup_ccp1(CCP_COMPARE_SET_ON_MATCH);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(15536);
ccp_1= 61786;
while(1)
{
ccp_1= (long)(read_adc()*2.44)+ 60536;
delay_us(20);
}
}
MLO__ interesante ecuacion que colocas es en ccs?
Hola.
La variable es de una estructura, no mas :)
El sensor de efecto Hall te da un 1 o un 0 eléctrico en función de si hay o no campo magnético, por lo que están sensando el paso del imán permanente que está pegado en las aspas del ventilador ... muy útiles los Sensores Hall (http://es.wikipedia.org/wiki/Sensor_de_efecto_Hall) :mrgreen:
Saludos