12345678910111213141516171819202122 |
- #include "HAL_DIV.h"
- //Computes q = b div c and a = b mod c
- //cDigits must be 1, and *c < 0xffffffff
- void hardwareNN_Div_q32(UINT32 *q,UINT32 *a,UINT32 *b,UINT32 bDigits,UINT32 *c,UINT32 cDigits)
- {
- UINT32 * p;
- int i;
- DIV->REMAIN = 0;
- DIV->DIVISOR = *c;
- for(i = (bDigits-1); i >= 0 ; i -- )
- {
- p = (UINT32*) (b + i);
- DIV->DIVIDENED = *p;
- while((DIV->STATUS&0x01)!=0x01);
- DIV->STATUS = 0x01;
- (*(q+i)) = (UINT32)DIV->QUOTIENT;
- }
- (*a) = DIV->REMAIN;
- }
|