Jump to content




Please delete


  • You cannot reply to this topic
11 replies to this topic

#1 xxx

  • New Members
  • 28 posts

Posted 08 September 2012 - 03:48 PM

Please delete

Edited by Peter110, 27 December 2013 - 04:44 PM.


#2 GopherAtl

  • Members
  • 888 posts

Posted 08 September 2012 - 04:35 PM

I'm confused by what you're trying to do; what you seem to be describing in the post sounds like a repeater, not a clock.

#3 xxx

  • New Members
  • 28 posts

Posted 08 September 2012 - 04:44 PM

Please delete

Edited by Peter110, 27 December 2013 - 04:43 PM.


#4 Mrawesomecookie

  • New Members
  • 4 posts

Posted 08 September 2012 - 04:49 PM

use a repeat loop?

#5 xxx

  • New Members
  • 28 posts

Posted 08 September 2012 - 05:02 PM

Please delete

Edited by Peter110, 27 December 2013 - 04:43 PM.


#6 Mtdj2

  • Members
  • 66 posts
  • LocationBehind you

Posted 08 September 2012 - 05:12 PM

Simple (I think.)
[CODE]
while true do
if rs.getInput("top") then
rs.setOutput("bottom",true)
else
rs.setOutput("bottom",false)
end
end
[CODE]
It should work.

#7 MysticT

    Lua Wizard

  • Members
  • 1,597 posts

Posted 08 September 2012 - 05:16 PM

This should work:
while true do
  rs.setOutput("bottom", rs.getInput("top"))
  os.pullEvent("redstone") -- waits for a redstone change
end


#8 xxx

  • New Members
  • 28 posts

Posted 08 September 2012 - 05:30 PM

Please delete

Edited by Peter110, 27 December 2013 - 04:43 PM.


#9 MysticT

    Lua Wizard

  • Members
  • 1,597 posts

Posted 08 September 2012 - 05:43 PM

Oh, ok. Try with this:
local nPulseDuration = 1 -- duration of the pulse in seconds
local sInputSide = "top"
local sOutputSide = "bottom"

local bPulseOn = rs.getInput(sInputSide)
local timer

if bPulseOn then
  rs.setOutput(sOutputSide, true)
  timer = os.startTimer(nPulseDuration)
end

while true do
  local evt, arg = os.pullEvent()
  if evt == "timer" then
    if bPulseOn then
	  rs.setOutput(sOutputSide, not rs.getOutput(sOutputSide))
	  timer = os.startTimer(nPulseDuration)
    end
  elseif evt == "redstone" then
    local input = rs.getInput("top")
    if input ~= bPulseOn then
	  bPulseOn = input
	  if bPulseOn then
	    timer = os.startTimer(nPulseDuration)
	  else
	    rs.setOutput(sOutputSide, false)
	  end
    end
  end
end
Not tested, but it should work.

#10 GopherAtl

  • Members
  • 888 posts

Posted 08 September 2012 - 06:00 PM

Oh, sorry, you DID mean a clock after all, I just wasn't groking your explanation. At a glance MysticT's code looks good. :D/>

#11 xxx

  • New Members
  • 28 posts

Posted 08 September 2012 - 06:16 PM

Please delete

Edited by Peter110, 27 December 2013 - 04:43 PM.


#12 xxx

  • New Members
  • 28 posts

Posted 08 September 2012 - 06:28 PM

Please delete

Edited by Peter110, 27 December 2013 - 04:43 PM.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users