Redian新闻
>
菜鸟请教用MICROCHIP DSPIC的一个FIRMWARE BUG
avatar
菜鸟请教用MICROCHIP DSPIC的一个FIRMWARE BUG# EE - 电子工程
F*g
1
unsigned int calculate_1X_LO_period(unsigned int input_freq_khz, unsigned
int if_freq_khz)
{
unsigned int
remainder;
unsigned int temp_result;
unsigned int divisor;

DISABLE_TMR1_INT;
DISABLE_TMR4_INT;
DISABLE_SPI1_INT;
dividend.all=32000;
divisor=input_freq_khz+if_freq_khz;
if (0==divisor)
{
divide_by_0_error_1++;
divisor=285;
}

DIV_32X16U(dividend.word2.hi, dividend.word2.lo, divisor);
asm("mov w0,%0":"=g"(temp_result):);
asm("mov w1,%0":"=g"(remainder):);
ENABLE_TMR1_INT;
ENABLE_TMR4_INT;
ENABLE_SPI1_INT;
if(remainder>1)){temp_result++;}
return(temp_result);
}//end calculate_1X_LO_period()
现在的问题是如果第二个方程变量if_freq_khz用global variable call的话,会出现
DIVIDE BY 0 ERROR,即使两个变量都非0;如果第二个方程变量赋同样值,用LITERAL
CALL,没问题。
会是什么问题??
avatar
s*s
2
I guess something related to "if_freq_khz"?! you really like start with "if_
"?!
just guess
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。