Programming examples – Phonetics Sensaphone ISACC 5000 User Manual

Page 109

Advertising
background image

109

Chapter 8: C Programming

PROGRAMMING EXAMPLES

1. This example demonstrates: TIME DELAY and OUTPUT DISABLING

int delay, timer, timergo, relay, temp, rate;

main ()

{

if (temp<seconds)

{

rate=seconds-temp;

/* Calculate reload rate */

}

temp=seconds;

/* Save seconds for next run of program */

if (timer!=0)

{

timer=timer-rate;

/* Update countdown timer */

if (timer<=0)

{

timer=0;

/* Don’t count past zero */

}

}

if ((input(3)==1)&&(timergo==0))

/* If input 3 opens and we aren’t already timing it */

{

timer=delay; timergo=1;

/* Start timer, set flag */

}

if ((timer==0)&&(timergo==1))

/* If timer reaches zero, and flag is set */

{

relay=1;

/* Set relay flag to ON */

}

if (input(3)==0)

/* If input closes */

{

timer=0; timergo=0; relay=0;

/* Clear timer, flag, and turn relay OFF */

}

if ((input(5)==0)&&(relay!=0))

/* If input 5 (relay disable switch) is closed(not active) */

{

/* and relay accumulator is not zero */

output(10,1);

/* Turn relay ON */

}

else

{

output(10,0);

/* Turn relay OFF */

}

}

2. This example toggles output 1 on and off, based on the output's previous state.

main ()

{

output(1,(1-output(1,2)));

}

3. This example demonstrates: RESETTING VARIABLES and SINGLE TIME EVENTS

int rset, average, total, recent, prvhrs;

main()

{

if (rset==0)

/* Using the ISACC command SET VAR RSET, and setting RSET = 0 */

{

/* causes these variables to be cleared */

average = 0;

total = 0;

recent = 0;

prvhrs = 0;

rset = 1;

/* RSET = 1 prevents variables from being cleared every time */

}

/* the program runs */

Advertising
This manual is related to the following products: