Tool/software: Code Composer Studio
Hello guys,I have been working with msp430 g2553 for first collecting the analog data from sun sensor and then converting it to digital form.After getting values from sun sensor from all three directions I want to find the vector of the light source with respect to my setup.For finding vector I need a sqrt() function inside with I'm doing some multiplication.When I compiled the code it is showing some sort of warning that the msp 430 is not having the multiplying hardware and also that I'm dealing with floating point values so it is becoming power intensive.I'm just a beginner and I don't know how to operate with math functions and floating point values.
Someone please help me by earliest.
I'm attaching my code here
#include <msp430g2553.h>
#include <stdio.h>
#include <math.h>
void main(void) {
unsigned int flag;
unsigned int sensor[3];
long int sunvec[3];
long int vecx;
long int vecy;
long int vecz;
WDTCTL = WDTPW + WDTHOLD;
//TACCTL0 &= ~CCIE;
//P3SEL = 0x00;
//P3REN = 0X06
//P3OUT = 0x02;
//P3DIR |= 0x02;
//P3DIR |= 0x01;
flag = 0;
for(;;)
{
if ( flag == 0 )
{
sensor[0] = 0;
ADC10CTL0 = SREF_0 + ADC10SHT_3 + ADC10ON;
ADC10CTL1 = INCH_0 + ADC10DIV_3;
ADC10AE0 |= BIT0;
ADC10CTL0 |= ENC + ADC10SC;
// __bis_SR_register(CPUOFF + GIE);
sensor[0] = ADC10MEM;
ADC10CTL0 &= ~ENC;
flag = 1;
}
if (flag == 1)
{
sensor[1] = 0;
ADC10CTL0 = SREF_0 + ADC10SHT_3 + ADC10ON ;
ADC10CTL1 = INCH_1 + ADC10DIV_3;
ADC10AE0 |= BIT1;
ADC10CTL0 |= ENC + ADC10SC;
// __bis_SR_register(CPUOFF + GIE);
sensor[1] = ADC10MEM;
ADC10CTL0 &= ~ENC;
flag = 2;
}
if ( flag == 2 )
{
sensor[2] = 0;
ADC10CTL0 = SREF_0 + ADC10SHT_3 + ADC10ON ;
ADC10CTL1 = INCH_2 + ADC10DIV_3;
ADC10AE0 |= BIT2;
ADC10CTL0 |= ENC + ADC10SC;
// __bis_SR_register(CPUOFF + GIE);
sensor[2] = ADC10MEM;
ADC10CTL0 &= ~ENC;
flag = 0;
}
long int mul= sensor[0]*sensor[0] + sensor[1]*sensor[1] + sensor[2]*sensor[2];
long int deno=sqrt(mul);
vecx = sensor[0]/deno;
vecy = sensor[1]/deno;
vecz = sensor[2]/deno;
sunvec[0]=vecx;
sunvec[1]=vecy;
sunvec[2]=vecz;
}
}
With Regards
Tejas