Я пишу очень простой скрипт lua о подсчете, сколько раз светодиодная вспышка
Однако, это продолжает давать мне ошибку, когда я пытаюсь присвоить возвращаемое значение из предыдущей функции локальной переменной в другой функции.
function ReadADC1()
local adc_voltage_value = 0
adc_voltage_value = tonumber(adc.readadc()) * 2 -- 0.10 --get dec number out of this -- need to know where package adc come from
--convert to voltage
adc_voltage_value = adc_voltage_value *0.000537109375 --get V
adc_voltage_value = math.floor(adc_voltage_value *1000 +0.5) --since number is base off resolution
--print (adc_voltage_value)
return adc_voltage_value
end
-- end of readADC1() TESTED
function counter()
local ledValue = readADC1()
--local interval -- interval between led on and off. If interval larger than 1 second, reset counter
--TODO add interval definition
local interval = os.clock()
while (true) do
if ((ledValue >= OnThreshHold) and (interval < 1000)) then -- if value exceed threshhold, mean it on
ledCounter = ledCounter + 1
elseif ((ledValue < OnThreshHold) and (os.clock() - interval > 1000)) then -- if led off for longer than 1 second
ledCounter = 0 -- reset counter to one and prepare for next flashing
else
ledCounter = ledCounter -- not sure if we need this. Doing this might cause bug later on
end
end
--return ledCounter
print (ledCounter,"\r\n")
end
-- end of counter()
Как видите, я пытаюсь назначить ledValue с помощью adc_voltage_value из функции ReadADC1. Я думал, что это должно работать, но оказалось, что это не так. Это дает мне эту ошибку:
> +LUA ERROR: LEDcounter.lua:29: attempt to call global 'readADC1' (a nil value)
>
> stack traceback:
>
> LEDcounter.lua:29: in main chunk
>
> [C]: ?
Я использую отладку черного ящика и тестирую каждую функцию независимо, а ReadADC1 дает мне хорошее числовое значение. но когда я тестировал функцию counter (), она выдала мне эту ошибку
Любые предложения или исправления приветствуются. Я пытаюсь выучить