November 23, 2024, 03:27:01 AM

News:

Got VSA?  Want to use your Prop-SX?  Now you can!  See the VSA section of the Library forum for Prop-SX code that works with VSA.


Jack in the Box

Started by gatesofterror, March 08, 2009, 06:51:58 PM

Previous topic - Next topic

gatesofterror

Jon, OK I'm trying. I am attempting to write a simple program. When I try to download the prop 1 I get an error message. EXPECTED '=' 
The program is a simple Jack in the Box. (Solenoid 1) opens the lid. 1sec. later the prop (solenoid 2) comes up and holds 1 sec. Then the lid closes. Then wait 20 sec. before it can activate again.

           ' =========================================================================
'
'   File...... Jack in the Box
'   Purpose...
'   Author.... Jim Walls Gates of Terror
'   E-mail....
'   Started...
'   Updated...
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Trigger         = PIN6                  ' SETUP = DN

SYMBOL  Solenoid 2 Prop = PIN3                  ' on OUT3
SYMBOL  Solenoid 1 Door = PIN0                  ' on OUT0



' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' for active-high in/out
SYMBOL  IsOff           = 0

SYMBOL  Yes             = 1
SYMBOL  No              = 0


' -----[ Variables ]-------------------------------------------------------




' -----[ Initialization ]--------------------------------------------------

Reset:
  PINS = %00000000                              ' clear all
  DIRS = %00001001                              ' set outputs



' -----[ Program Code ]----------------------------------------------------

Main:
  timer = 0                                     ' reset timer

Check_Trigger:
  PAUSE 5                                       ' loop pad
  timer = timer + 5 * Trigger                   ' update timer
  IF timer < 100 THEN Check_Trigger             ' wait for 0.1 sec input

  PINS = %00000001                              ' Solenoid 1
  PAUSE 3000
  PINS = %00001000                              ' Solenoid 2
  PAUSE 1000

  PAUSE 20000
  GOTO Reset


' -----[ Subroutines ]-----------------------------------------------------


' -----[ User Data ]-------------------------------------------------------

gatesofterror

OK I did som rewriting and now I get error message LABEL IS MISSING ':'
New Program

           ' =========================================================================
'
'   File...... Jack in the Box
'   Purpose...
'   Author.... Jim Walls Gates of Terror
'   E-mail....
'   Started...
'   Updated...
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Pir             = PIN6                  ' SETUP = DN

SYMBOL  Prop            = PIN3                  ' on OUT3
SYMBOL  Door            = PIN0                  ' on OUT0



' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' for active-high in/out
SYMBOL  IsOff           = 0

SYMBOL  Yes             = 1
SYMBOL  No              = 0


' -----[ Variables ]-------------------------------------------------------




' -----[ Initialization ]--------------------------------------------------

Reset:
  PINS = %00000000                              ' clear all
  DIRS = %00001001                              ' set outputs



' -----[ Program Code ]----------------------------------------------------

Main:
  timer = 0                                     ' reset timer

Check_Trigger:
  PAUSE 5                                       ' loop pad
  timer = timer + 5 * Trigger                   ' update timer
  IF timer < 100 THEN Check_Trigger             ' wait for 0.1 sec input

  Door = IsOn
  PAUSE 3000
  Prop = IsOn
  PAUSE 1000
  Prop = IsOff
  PAUSE 1000
  Door = IsOff
  PAUSE 20000
  GOTO Reset


' -----[ Subroutines ]-----------------------------------------------------


' -----[ User Data ]-------------------------------------------------------

JonnyMac

Small thing -- you forgot (or accidently erased) the definition of "timer" in the variables section.

' =========================================================================
'
'   File...... Jack in the Box
'   Purpose...
'   Author.... Jim Walls Gates of Terror
'   E-mail....
'   Started...
'   Updated...
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  PIR             = PIN6                  ' SETUP = DN

SYMBOL  Prop            = PIN3                  ' on OUT3
SYMBOL  Door            = PIN0                  ' on OUT0


' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' for active-high in/out
SYMBOL  IsOff           = 0

SYMBOL  Yes             = 1
SYMBOL  No              = 0


' -----[ Variables ]-------------------------------------------------------

SYMBOL  timer           = B2


' -----[ Initialization ]--------------------------------------------------

Reset:
  PINS = %00000000                              ' clear all
  DIRS = %00001001                              ' set outputs


' -----[ Program Code ]----------------------------------------------------

Main:
  timer = 0                                     ' reset timer

Check_PIR:
  PAUSE 5                                       ' loop pad
  timer = timer + 5 * PIR                       ' update timer
  IF timer < 100 THEN Check_PIR                 ' wait for 0.1 sec input

  Door = IsOn
  PAUSE 3000
  Prop = IsOn
  PAUSE 1000
  Prop = IsOff
  PAUSE 1000
  Door = IsOff
  PAUSE 20000
  GOTO Reset
Jon McPhalen
EFX-TEK Hollywood Office