微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > ble112蓝牙芯片 十六进制取平均值计算

ble112蓝牙芯片 十六进制取平均值计算

时间:10-02 整理:3721RD 点击:
下面是程序adc模块的代码 现在主要问题在将一组十六进制相加后除以总个数 ,app读取出来的结果与我实际计算的结果不一致。说明我的十六进制数计算存在问题,想请教我该如何计算。谢谢!
event hardware_adc_result(input, value)
        # 1.设定采样总时间 Xs,设定记录counter 0-X/10(ms)的ad数据值,
        #  平均counter(20:X/10)(ms)的数据,同时重置counter为初值状态。
       
        if counter < 100 then
                counter = counter + 1
               
                # 交换AD采样的数据高低位字节。               
                adc_buf1 = (value >> 8) & $00ff
                adc_buf2 = (value << 8)        & $ff00
                adc_buf = adc_buf1 | adc_buf2
               
                #write adc value               
                call attributes_write(c_adc_data, 0, 2, adc_buf)       
               
                #十六进制数累加
                adc_val = adc_val + adc_buf
               
                       
        else
                if counter = 100 then
                       
                        #平均一组16进制值
                        adc_result = (adc_val >> 4)/16
                        #write adc value               
                        call attributes_write(c_adc_result, 0, 2, adc_result)                                                       
                       
                        #关闭 ad采样                       
                        call hardware_set_soft_timer(0, 0, 0)       
                                                                                                                       
                        #关闭IO端口
                        call hardware_io_port_write(1,  pin_select_mask, $ff)
                       
                        #重置counter值为初始状态
                        counter = 0
                       
                end if
        end if
end

顶一下。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top