DSPRelated.com
Forums

calculation errors ?

Started by Christian December 7, 2005
Hello everyone

I am working with CodeWarrior 5.0.5 for DSP56800 and I experience strange
calculation errors :

1. I can't use the float library. Most of the time it works
perfectly, but once in a while I get strange calculation errors.
2. I tried to use integers only, but I get a very similar behaviour.
Works most of the time, but once in a while, an 32 bit integer division fails
and returns a too big value.

Hardware is a 56F807.

Has anyone experienced something similar ?

Christian



Hello Christian,

I experience same strange calculation errors :

For exemple this 32 bit integer division fails, 0x1DDDC/0xE000 give me
0xE instead of 0x02

asm
{
move.l 	0x1DDDC,B
move.w 	0xE000,X0 
ASL 	B          ; Shift of dividend required for integer division
BFCLR 	#$0001,SR  ; Clear carry bit: required for 1st DIV instruction
REP 	16			
DIV 	X0,B       ; Form positive quotient in B0
MOVE.W 	B0,Y1      ; Save quotient in Y1	
}
 
I am working with the latest version of CodeWarrior for DSP56800 and
my hardware is a 56F8355.

Maybe my code is wrong anyone can explain me where is the problem ?

thanks

Alexandre
	--- In motoroladsp@moto..., Christian <christian.epp@...> wrote:
>
> Hello everyone
> 
> I am working with CodeWarrior 5.0.5 for DSP56800 and I experience
strange 
> calculation errors : 
> 
> 1. I can't use the float library. Most of the time it works 
> perfectly, but once in a while I get strange calculation errors.
> 2. I tried to use integers only, but I get a very similar behaviour. 
> Works most of the time, but once in a while, an 32 bit integer
division fails 
> and returns a too big value.
> 
> Hardware is a 56F807.
> 
> Has anyone experienced something similar ?
> 
> Christian
>