void manage_key3(void) //tare the weight function { if(Mode_flag==1) { if(percent_flag==1) { Percentindex=Percentindex+1; if(Percentindex==1) { Display_num_buffer[0]=0x00; Display_num_buffer[1]=0x00; Display_num_buffer[2]=0x00; Display_num_buffer[3]=Display_num_data[5]; Display_num_buffer[4]=0x00; Display_num_buffer[5]=0x80; Display_num_buffer[6]=0x00; HT1621_SUCCESSIVE_DISPLAY(); DELAY_TIMES(0xFF); DELAY_TIMES(0xFF); Scalevalue.float_one_4byte=finaldata.One_4byte-Mindata.One_4byte; Scalevalue.float_one_4byte=Scalevalue.float_one_4byte/50; } if(Percentindex==2) { Display_num_buffer[0]=0x00; Display_num_buffer[1]=0x00; Display_num_buffer[2]=Display_num_data[0]; Display_num_buffer[3]=Display_num_data[1]; Display_num_buffer[4]=0x00; Display_num_buffer[5]=0x80; Display_num_buffer[6]=0x00; HT1621_SUCCESSIVE_DISPLAY(); DELAY_TIMES(0xFF); DELAY_TIMES(0xFF); Scalevalue.float_one_4byte=finaldata.One_4byte-Mindata.One_4byte; Scalevalue.float_one_4byte=Scalevalue.float_one_4byte/100; } if(Percentindex==3) { Display_num_buffer[0]=0x00; Display_num_buffer[1]=0x00; Display_num_buffer[2]=Display_num_data[0]; Display_num_buffer[3]=Display_num_data[2]; Display_num_buffer[4]=0x00; Display_num_buffer[5]=0x80; Display_num_buffer[6]=0x00; HT1621_SUCCESSIVE_DISPLAY(); DELAY_TIMES(0xFF); DELAY_TIMES(0xFF); Scalevalue.float_one_4byte=finaldata.One_4byte-Mindata.One_4byte; Scalevalue.float_one_4byte=Scalevalue.float_one_4byte/200; }
时间: 2024-04-12 22:33:30 浏览: 118
这段代码是一个名为`manage_key3`的函数,用于进行零点校准(tare)。下面是函数的具体步骤:
1. 如果`Mode_flag`等于1,则执行以下步骤:
- 如果`percent_flag`等于1,则执行以下步骤:
- 将变量`Percentindex`加1。
- 如果`Percentindex`等于1,则执行以下步骤:
- 设置显示缓冲区的值,用于显示特定的数字。
- 调用`HT1621_SUCCESSIVE_DISPLAY()`函数,将显示缓冲区的值显示在数码管上。
- 延时一段时间。
- 延时一段时间。
- 计算零点校准值:将变量`finaldata.One_4byte-Mindata.One_4byte`除以50,并将结果赋值给变量`Scalevalue.float_one_4byte`。
- 如果`Percentindex`等于2,则执行以下步骤:
- 设置显示缓冲区的值,用于显示特定的数字。
- 调用`HT1621_SUCCESSIVE_DISPLAY()`函数,将显示缓冲区的值显示在数码管上。
- 延时一段时间。
- 延时一段时间。
- 计算零点校准值:将变量`finaldata.One_4byte-Mindata.One_4byte`除以100,并将结果赋值给变量`Scalevalue.float_one_4byte`。
- 如果`Percentindex`等于3,则执行以下步骤:
- 设置显示缓冲区的值,用于显示特定的数字。
- 调用`HT1621_SUCCESSIVE_DISPLAY()`函数,将显示缓冲区的值显示在数码管上。
- 延时一段时间。
- 延时一段时间。
- 计算零点校准值:将变量`finaldata.One_4byte-Mindata.One_4byte`除以200,并将结果赋值给变量`Scalevalue.float_one_4byte`。
以上就是函数的主要逻辑。函数根据`Mode_flag`和`percent_flag`的值执行不同的操作,设置显示缓冲区的值以及计算零点校准值。根据`Percentindex`的值,选择不同的除数来计算零点校准值,并将结果存储到变量`Scalevalue.float_one_4byte`中。
阅读全文