AnsweredAssumed Answered

why pow() is not working in codewarrior?

Question asked by Khalid Sakib on May 9, 2014
Latest reply on May 16, 2014 by Pascal Irrle

I like to turn on a specific 7-segment display (total 4 7segment display) in Dragon12 plus development board. I want to select a specific 7-segment display (out of 4) and light with a specific no. (here i am showing 6 (to show 6 i put 125(decimal) ). Now in the following program x1=2 (that means 1st 7-segment should be on and it works, (counted like 0th, 1st, 2nd and 3rd ) ) and shows 6 that i want to show . But I want to use x1=pow(2, ) . So when I used x1=pow(2, 1) it select the right 7-segment display but it does not show 6. instead it shows something wired (nothing meaningful in that 7segment display). WHY???     

 

// Example 1a: Turn on every other segment on 7-seg display

#include <hidef.h>      /* common defines and macros */

#include <mc9s12dg256.h>     /* derivative information */

#include "math.h"

#pragma LINK_INFO DERIVATIVE "mc9s12dg256b"

#include "main_asm.h" /* interface to the assembly module */

 

void main(void) {

int s;

float b ;

float x ;

float x1;

 

  PLL_init();        // set system clock frequency to 24 MHz

  DDRB  = 0xff;       // Port B is output

  DDRJ  = 0xff;       // Port J is output

  DDRP  = 0xff;       // Port P is output

  PTJ = 0x02;         // disable LED  0x02

  PTP = 0xff;         // disable all 7-segment displays

  PORTB   = 0x00 ;

 

  s =125;

    

    b=1;

    x1=pow(2,b);

    x=15-x1;

   PTP = x;

   PORTB = s;

}

Outcomes