gpt4 book ai didi

c - 在 C 中使用/不使用 float 进行除法

转载 作者:太空狗 更新时间:2023-10-29 17:04:27 24 4
gpt4 key购买 nike

<分区>

下面是我用 C 语言编写的主要函数(用于 PIC18F8722 微处理器)试图以由 unsigned int 函数 get_ADC_value() 设置的特定频率驱动 2 个多路复用 7 段显示器。显示屏还显示当前的多路复用频率。此频率范围由 #define 设置为在 LAB_Fmin 和 LAB_Fmax 范围内,并且必须随着 get_ADC_value() 从 0 增加或减少到 255 而缩放。

但是这段代码不起作用,因为我认为在 freq = 处存在从 intfloat 的隐式转换。

挑战在于使用 float 修复此错误并找到仅使用整数类型(intchar...)的替代方法。

 while (1) {

unsigned int x, y, z;
float freq, delay;

x = get_ADC_value();
y = x & 0b00001111;
z = (x & 0b11110000) >> 4 ;

freq = LAB_Fmin + (((LAB_Fmax) - (LAB_Fmin))/ 255)*x ;
delay = 1/(freq*1000); // convert hZ to ms delay accurately

LATF = int_to_SSD(y);
LATH = 0b11111110; //enable 7seg U1
for (unsigned int i = 0; i<(delay) ; i++){
Delay10TCYx(250); //1ms delay
}

LATF = int_to_SSD(z);
LATH = 0b11111101; //enable 7seg U2
for (unsigned int j = 0; j<(delay) ; j++){
Delay10TCYx(250); //1ms delay
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com