更新:数码管只刷新改变的位置
This commit is contained in:
parent
3357a8af8d
commit
3ff3a5e703
|
@ -2,7 +2,7 @@
|
|||
* @Author: wujunchao wujunchao@wuxismart.com
|
||||
* @Date: 2024-12-27 11:51:06
|
||||
* @LastEditors: wujunchao wujunchao@wuxismart.com
|
||||
* @LastEditTime: 2025-03-19 17:02:06
|
||||
* @LastEditTime: 2025-03-19 18:39:43
|
||||
* @FilePath: \signal_generator\App\APP_WU\Inc\apps_gather.h
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: wujunchao wujunchao@wuxismart.com
|
||||
* @Date: 2024-12-27 11:50:56
|
||||
* @LastEditors: wujunchao wujunchao@wuxismart.com
|
||||
* @LastEditTime: 2025-03-19 18:35:25
|
||||
* @LastEditTime: 2025-03-19 19:06:14
|
||||
* @FilePath: \signal_generator\App\APP_WU\Src\apps_gather.c
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
|
@ -1290,31 +1290,57 @@ void keyset_output(int8_t key_step)
|
|||
}
|
||||
|
||||
//设置当前的输出值(实际值-> (无符号)数组),可直接输入负数
|
||||
//记录缓存变化的位置
|
||||
uint8_t change_flag[7] = {0};
|
||||
void set_output_array(int32_t pvo)
|
||||
{
|
||||
int32_t temp = 0;
|
||||
|
||||
pvo = (pvo > 0)?(pvo):(0 - pvo);
|
||||
|
||||
//将实际值转换成6个独立数字
|
||||
m5data.o_numbers[0] = (pvo/1000000 > 9)?(9):(pvo/1000000);
|
||||
m5data.o_numbers[1] = (pvo/100000) % 10;
|
||||
m5data.o_numbers[2] = (pvo/10000) % 10;
|
||||
m5data.o_numbers[3] = (pvo/1000) % 10;
|
||||
m5data.o_numbers[4] = (pvo/100) % 10;
|
||||
m5data.o_numbers[5] = (pvo/10) % 10;
|
||||
m5data.o_numbers[6] = pvo % 10;
|
||||
for(uint8_t i = 0; i < 7; i++)
|
||||
{
|
||||
temp = ( pvo / (int32_t)my_power( 10,( 6 - i ) ) ) % 10;
|
||||
if(temp != m5data.o_numbers[i])
|
||||
{
|
||||
m5data.o_numbers[i] = temp;
|
||||
change_flag[i] = 1;
|
||||
}
|
||||
}
|
||||
if( m5data.o_numbers[0] > 9 ) m5data.o_numbers[0] = 9;
|
||||
}
|
||||
|
||||
//设置输出值:数字显示 + 符号 + 缓存,sto:实际值(有符号)
|
||||
void set_output(float32 sto)
|
||||
{
|
||||
if( (sto < 0)&&(m5data.sign_flag_out == 0) )
|
||||
{
|
||||
//出现负数并且没有显示负号时
|
||||
set_nixie_cube_sign(IO_OUTPUT, 1);
|
||||
}
|
||||
else if(( (sto >= 0)&&(m5data.sign_flag_out == 1) ))
|
||||
{
|
||||
//数值为非负数,但仍然显示负号时
|
||||
set_nixie_cube_sign(IO_OUTPUT, 0);
|
||||
}
|
||||
|
||||
//乘以1000用于绕开 int32 和 float32 之间的转换
|
||||
sto *= 1000;
|
||||
|
||||
//设置数码管 数值 显示与 符号 显示
|
||||
set_nixie_cube(IO_OUTPUT, 99, sto);
|
||||
|
||||
//更新缓存
|
||||
set_output_array(sto);
|
||||
|
||||
//刷新改变的位置
|
||||
for(uint8_t i = 0;i < 7;i++)
|
||||
{
|
||||
if(change_flag[i])
|
||||
{
|
||||
set_nixie_cube(IO_OUTPUT, i, m5data.o_numbers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//获取当前设定的输出值
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue