require "minipc" dac_value = 0 histogram = {} histogram_index = {} while not dos.kbhit() do if minipc.i2cPutDAC(dac_value) then ok, adc_value = minipc.i2cGetADC(0x40) if ok then print(string.format("%02X\t%02X\t%4d", dac_value, adc_value, adc_value-dac_value)) if histogram[adc_value-dac_value] == nil then histogram[adc_value-dac_value] = 1 table.insert(histogram_index, adc_value-dac_value) else histogram[adc_value-dac_value] = histogram[adc_value-dac_value] + 1 end end end dac_value = dac_value + 1 if dac_value > 255 then dac_value = 0 end end table.sort(histogram_index, function(a, b) return a < b end) file = io.open("\\histo.csv", "w") for i=1,#histogram_index do print(histogram_index[i], histogram[histogram_index[i]]) file:write(string.format("%i\t%i\n", histogram_index[i], histogram[histogram_index[i]])) end file:close()