/*3-RFm 2304th20 -mod1 was RFm2304f14 copy was copy of
trial version including serial plotter etc from 3-RFm2304t4 was copy2copy of:-
3-RFm 2303s18 - working mod of [2303w15]
[3-RFm 2303w15] =3-RFm 2303f3 mod of 3-RFm 2303th2 mod of [3-RFm 2303w1] 10:16 01/03/2023---3-RFm Copy Copy] interim version adds 'Alarm Call xxx 1' section from 2-RFm2302m20 Copy Copy Copy
0-RFm2302f10[ppis]copy was 0-RFm2302f10[ppis] was last wkg original copy- RFm2301t31-chk1 2301th26-3 = wRFm2301f20 copy mod3 copy
( ie printout+ part interrupt+ ssdr)
wRFm2301f20 was wRFm2301w11 was RFm2301m9 wasRFm2301s7W was RFm2301w4Wdevt was RFm2301m2newW = RFm2.6fc_2212s10 fullcode was RFm2.5fc_2212.2 mod 2
LASTWORKING mod3 at 2301th-3
NOTE PIN No. Change at line 33-- 5/21 to allow for interrupt action
RFm2.5fc_2211.30 - [2211t15RFm fc start - ] 2211th10-RFm2.5 from RFm2.4_2211t8-2211w9 0riginal from RFm12.3(2209f30)(2209m5)/(2208f19)=RFm12.2(2208w10) fromRFm31fc with mods as at 2298m8
from RFm11.2 of 2208f5 modified copy of RFm17 to dateRFm2.5fc_2211.30 - [2211t15RFm fc start - ] 2211th10-RFm2.5 from RFm2.4_2211t8-2211w9 0riginal from RFm12.3(2209f30)(2209m5)/(2208f19)=RFm12.2(2208w10) fromRFm31fc with mods as at 2298m8
*/
#include <stdlib.h>
#include <avr/io.h> // Adds useful constants
#include <util/delay.h> // Adds delay_ms and delay_us functions
#include <avr/sleep.h>
#include <avr/interrupt.h>
// Routines to set and clear bits (used in the sleep code)
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//#define Button_h ;// use pins here set for the mega 2560 pcb simulating the ATtiny85 chip pin no.s
//const int testP1 =5 but not used here //5 ;p1
const int EpbP5 = 21; //21;
//const byte EpbP5 = 18; //use as an interruptPin //5; //0 ;p5
const int Tx0P2 = 2; //3 ;p2
const int almP3 = 3; // volatile byte state = LOW; //4 ;p3
const int Rx0P6 = 6; //1 ;p6
const int RxpP7 = 7;
const int P8 = 8; //2 ;p7
const int P10 = 10; //const byte ledPin = 13; //2 ;p7
const int P12 = 12;
// or use these no.s below which are the port no.s that correspond to the
//pin no.s actually reqd for the ATtiny85 chip shown later here
//const int testP1 =5 but not used here // pin 1
/*
const int EpbP5 =0; // pin 5
const int Tx0P2 =3; // p 2
const int almP3 =4; // p 3
const int Rx0P6 =1; // p 6
const int RxpP7 =2; // p 7
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*/
//NB. auto run mode xyz== x=0; silences '//tone' & prtouts
//z also controls sounds 'case' function
// p 7
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
unsigned int long timer; unsigned int long tm1; unsigned int long t7;// unsigned int long t3;
unsigned int long csecs2;
unsigned int long bpcr;
unsigned long button_time = 0;
unsigned long last_button_time = 0;
//unsigned int long xx;
unsigned int long Rxp7;
unsigned int long interval;
unsigned int long interval2;
unsigned long previousMillis ;
unsigned long previousMillis5 ; // 433;439;440;
unsigned long previousMillis4 ; //667;223;231;
unsigned long previousMillis3; //
unsigned long previousMillis2 ; //- 632/;652/;
unsigned long currentMillis; //-409//;439/;631;650/;674;
unsigned long currentMillis9 ; // 64;231; //1000 now declared locally only
volatile boolean f_wdt = 1; // Variables for the Sleep/power down modes:
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
int b; int br; int pls2; int alm3; //alarm sounder signal
int bpc; int pls; int co12; int epbp; //Alarm push button activated
int lastepbp; int lastRxp; int pls3; int Epb = 1;
int rst; int rsttr; //timer running or in option mode
int p10; int p12; int p8; int Rx06;
int s; int s0; int s1; int s2; int s3; int s4;
int s5; int s6 = 1; int s7; int s8; int s9; int st;
int t0; int k;
int t1; int t2; int t3;
int t4; int t5; int t6; int t8;
int tc; int u = 1; int Tx02;
int x; int y; int y2; int y6; int z;
int rrx0; int T; int pls1; int q1; int q2; int q3;
int dcr; int d1; int d2; int d3; int d4; int d5; //int xx; int bpcr;
int c1; int c2; int c3; int c21;
int tpt; int ecr;int ecrp;
int j=-1;
//ss s ssWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
void setup() // the setup routine runs once when you press reset:
{
setup_watchdog (8); // approximately 0.5 seconds sleep // 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms, //int ii//9 see line 736
// // 5=500ms,6=1sec, 7=2sec, 8=4 sec, 9= 8sec
pinMode(RxpP7, OUTPUT); //space for sleepMode later
pinMode(almP3, OUTPUT); //pinMode(testP1,OUTPUT);
pinMode(Rx0P6, INPUT_PULLUP);
pinMode(EpbP5, INPUT_PULLUP); // = pinMode(interruptPin, INPUT_PULLUP);
pinMode(Tx0P2, OUTPUT);
pinMode(P8, OUTPUT);
pinMode(P10, OUTPUT);
pinMode(P12, OUTPUT);
attachInterrupt(digitalPinToInterrupt(EpbP5), trig, CHANGE ); // CHANGE // LOW // //FALLING //nb PIN 18 is allocated to interrupt3 in complierpin21 is interrupt 2;pin 20 is interrupt 3;
x = 0; // y =0; z = 0;
y=1;z=1;
// 1; //xyz = 011
s = s0 = s1 = s2 = s3 = s4 = st = 1;
//{option delay fault} /{ normal option }
// { st = 0; t6 = 1 } / {st = 1; t6 = 0 } ie t6=1 bypasses option timeout
rst = 1; t4 = 1;
bpcr = 0;
Serial.begin(9600);
// digitalWrite(P8,epbp);
}
//sss ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
void trig()
{
if ( epbp == 1) {
digitalWrite(P8, LOW);
} else
{ digitalWrite(P8, HIGH);
}
epbp = !epbp;
}
//loop ## 0 Main Program Loop [130 - 165]
//sss 3 ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
void loop ()
{ //
if (!epbp && rsttr && !d3 ) //!q// rsttr && !d3
{ d3 = 1;
Serial.print(" [168] ecr - d3 - bpcr " ); //q2 - d4 - d1 - //q2 -ecr - epbp
Serial.print(ecr ); // green= 1 // dcr*
Serial.print("\t");
Serial.print(d3 ); //violet = 3 q2 500 //sin(j * (PI / 180)));
Serial.print("\t"); //// Serial.print("\t");
// Serial.print("\t") Serial.print(cos(50 *(PI / 180))); // orange = 2 dcr
// Serial.print("\t");
Serial.println( bpcr); //blue = 4 // !epbp 40* q2 1000 ! d3*100 // ! dcr // cos(j * (PI / 180)));
//d4=!q2 && !epbp;
}
// epbp=!epbp; // Lon(); //for testing only
// Lon(); delay(1500);Loff(); //!alm3) ; alm3=0; // !alm3 !d1
digitalWrite(P12, p12 ); digitalWrite(RxpP7, p12 );
p12 = f_wdt;
if (rst )
{ if (f_wdt == 1)
{ //digitalWrite(RxpP7, HIGH);
digitalWrite(P12, p12 );
delay(300); f_wdt = 0; // reset flag delay is effectively Rxp pulse width
// pinMode(Tx0P2, INPUT); //Set the ports to be inputs - saves more powe
pinMode(almP3, INPUT);
// pinMode(RxpP7, INPUT);
//pinMode (P10, INPUT);
system_sleep(); //line 534 Send the unit to sleep space for sleep code to line 175 }
//delay (2000);
// pinMode(RxpP7, OUTPUT); // Set the ports to be output again
pinMode(almP3, OUTPUT); //pinMode(testP1,OUTPUT);
// pinMode(Tx0P2, OUTPUT);
//pinMode(P10, OUTPUT);
}
}
// Epb5 = !digitalRead (EpbP5);
Rx06 = !digitalRead(Rx0P6);
// Serial.print("test"); //tm1+.77
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
//prime ### 1 - PRIME SYSTEM [170-185]
//sss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if ((!epbp || (epbp&&d1) ) && (!alm3) && !rsttr && rst) // rst prevents repeated prt's
{ t1 = t2 = t3 = t4 = rst = s = s1 = s2 = s3 = s4 = s5 = s7 = s6= 1;
s8 = br = s9 = dcr = tc = c21 = c2 =d5 =d3= d2 = d1 = t0 = bpcr = 0;
digitalWrite(Tx0P2, HIGH);
if (s0)
{ //tone(3,290,30);
s0 = 0;// tprt; //Serial.print( ( millis() / 100) + 0.01 ); Serial.println(" Time stasecs/10");
if (z)
{ Serial.print(" A [line:221] "); prt(7); prt(10); prt(1);
Serial.println(" 'SYSTEM PRIMED' pending alarm ");
prt(8);
// // prt(0);//prt(3); prt(4);
}
blink(2); blink(1); // delay(6);
}
}
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
// ### 2 ALARM RECEIVED [200-215]
//sss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Rx06 = !digitalRead(Rx0P6);
if ( Rx06 && rst )
{ rst = 0; rsttr = 1; Lon(); //alm3=1;u =0;
digitalWrite (Tx0P2, !q2) ; //
digitalWrite (RxpP7, !q2);
if (y && u )
{ u = 0; //&& u///u =0;
Serial.println(" 256 Received Alarm ON "); prt(3);
Serial.println(" RX on [line:255] ");
}
//Serial.println( millis()/1000 );
}
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
// ### 3 - Cancel Received Alarm [220-235]
//sss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if (!Rx06 && !u )
{ rst = 1; rsttr = 0; //'u' interlocks with 'alarm off' and 'alarm received'
// t5 =1 ; t0=0; //rst sets up primed state again
s0 = 1; u = 1; alm3 = 0;
if (y)
{ //tone(3, 62, 250);
Serial.println(" 274 Received Alarm OFF "); prt(3);
//Xxxxxxxxxxxxx| xxxxxxxxxxxxxxxxxx |xxxx
Serial.println( "time out-secs ");
Serial.println(" RX off [line:277] ");
}
}
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
// ### 4 - Test Input [240-245]
//sss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if (x)
{
Serial.println(" [291] test epbp status "); x = 0;
prt(6);
}
// prt(1);prt(2);
// Serial.println( lastepbp);
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
//call ### 5 - CALL Alarm [250-265]
//sss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if (epbp && !rsttr && !s0) //epbp &&
{ t5 = 1; rst = 0; s0 = 1; rsttr = 1; c3 =0; //d1=d2=0; // tm1=millis()/100; Serial.println(tm1+.77);
// F // tprt(1);
tm1 = millis() / 100; digitalWrite (Tx0P2, !q2 ) ;
// Lon(); delay(50); Loff();delay(2000); // Lon(); delay(50); Loff(); delay(2000); //eliminates 'on'blip when setting option
if (z) {
Serial.print(" B [line:290] "); prt(7); prt(10);
Serial.print(" 'ALARM ON' "); Serial.println(" relative time (rt) set to zero ");
// nnn // Serial.print(" bpcr = ");Serial.println (bpcr);
prt(8);
// // Serial.print("= secs/10 relative time "); Serial.println( (( millis()/100)-tm1)+0.41 );// prt(3);
// // Serial.print( " [290] *** c1;c2;c3;d1;d2*** ");Serial.print(c1); Serial.print(c2);
// // Serial.print(c3); Serial.print(d1); Serial.println(d2);
}
}
if (epbp && rsttr && !d1 ) //d1st0ps count at# 6
{ //prt(7);
{ // Serial.print( (( millis()/100)-tm1)+0.45 ); //c2=1
// Serial.print(" [322] epbp status[last/now] ");Serial.print( lastepbp ); Serial.println( epbp );
//Serial.print( (( millis()/100)-tm1)+0.43 );Serial.print(" ");
//Serial.println( ( millis()/100)+0.42 );
// // delay(1000) ;
//sss ssssssssssssssss option delay timer ssssssssss
if ( !d2 && !c3 && q2 && !d5)
{
if(z){
Serial.print(" C [line:312] "); prt(7); prt(10); prt(8); //prt(10);
} // secs/10 =
dcr++;
if(z){ prt(9); prt(7); prt(10); // prt(8); //(0);prt(0);
// Serial.println((( millis()/100)-tm1)+0.47 );
// Serial.print( " dcr = ");Serial.print(dcr); Serial.print( " d1 = ");Serial.print(d1);
// Serial.print( " bpcr= ");Serial.println( bpcr);
}
Serial.print(" D [line:323 "); prt(7); prt(10); //prt(8); //Serial.println(dcr);
if (dcr > 3)
{ Lon(); //d1 inh dcr counter blink(1);
if(z){
prt(9); prt(7); prt(10); prt(1); // prt(8);
}
}
if(!epbp){ d5=1; }
}
}
}
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
//ssss 6 Option counter [280-295]
//sss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if(d5 ){
if(!epbp && !ecrp && d5)
{ ecrp=1; delay(5); ecrp = 0; ecr++; c3 = 1;
t3 = 1;
bpcr++;
if(0){
prt(7); prt(10); // c3 = 0; // =!t3; // t3=t3;
prt(1); prt(2);
Serial.print( (( millis() / 100) - tm1) + 0.44 );
Serial.println("secs/10 - relative time -line[430]");
}
if (bpcr<=8)
{ d1=0; d3=1; // {// bpcr = 0; /// d3=0;delay(100);
if(0){
Serial.print(" E [line:351 - Option mode "); prt(7); prt(10); prt(8); // Serial.println(dcr);
Serial.print( "-"); //settling time & to avoid sw bounce
}
// if (!epbp) {
} // t3 = 0; //waits till next option from Epbp call button
} }
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
// ### 8 - start option timer {300-305]
//sss s sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if (dcr >3 && epbp && t3) //&&(bpcr=1) && !z
{ d1 = 1; d2 = 0; t3 = 0; // c3 = 0; //t3=!t3; // t3=0; // Serial.print( (( millis()/100)-tm1)+0.49 );
if(1){ //z
Serial.print(" F [line:378]"); prt(7); prt(10);
Serial.println(" [365] start option timer "); // prt(8);
}
}
// tmr(); if (!epbp && !rst &&( dcr>=4 ) ) //T=0; //call timer sub
//'timer' - used here to//dispay cycle time delay(1000);
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
// ### 7 - CANCEL trg'd Alarm [310-325]
//sss ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
if (epbp && rst && d1 ) // && dcr == 0 s9 allows one time cycle only=alm3= logic symbol only
{ Loff (); alm3 = 0; digitalWrite (Tx0P2, HIGH);
digitalWrite (RxpP7, HIGH); // c3 = 0; Tx02=1; //s0=1 here allows single 'Prime' printout next time
if (z && s)
{ Serial.print(" G [line:377] "); prt(7); prt(10);
// Serial.print( ( millis()/1000)+0.6 );
Serial.println(" 'ALARM OFF' ");
s = 0; // prt(3) ;
// Serial.println( ( millis()/100)+0.65 );
T = 1;
}
s0 = 1; rsttr = 0; rst = 1; //delay to prevent pulsing efects
}
//ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
// ### 9 - Switch case 1 - 8 [350-445]
//sss ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
switch (bpcr) // && d1)
{
case 1:
blink(1); delay(100); blink(1); delay(1000); blink(1); delay(1000); //see end for beep cde removed if now required
t5 =1; tmr(); // tmr(); // no time delay
/* if (s1) {
s1 = 0;
t0 = 0;
//=resets tmr to 0 count and pulse now? // blink1(); //one double
*/
if (y && ! d1 ) // && d1 //)
{ s1 = 0; Serial.println( (( millis() / 100) - tm1) + 0.11 );
Serial.print(" [secs/10] rel.time = " ); Serial.print( ( millis() / 100) + 0.46 );
Serial.println(" [372] - Case 1 - select test options "); // prt(3); // x.1ms at line
} //xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
dcr=0;d1=1;
break;
//xxxxxxxxxxxxxxxx
case 2:
// blink(2); delay(300); blink(2); delay(1000); blink(1);
if (y && !c21) {
c21 = 1; Serial.print( ( millis() / 1000) + 0.12 );
Serial.println(" [354] case 2 with time out");
}
/* if (!q1) {
Serial.println( millis() / 1000 ); // c21&& //line 415
}
*/ t0=0; // t0=0 ensures full countdown period
t5 = 1; tmr(); t0=1;
//t6=1;would bypass timeoutperiod
break;
//xxxxxxxxxxxxxxxx
case 3:
blink(2);
digitalWrite (RxpP7, !q2); digitalWrite(Tx0P2, !q2);
Serial.print( ( millis() / 1000) + 0.13 ); //repeats set zero of timer
t5 = 0; // tmr();
if (y && s3) {
s3 = 0; Serial.println( millis() / 1000 );
Serial.println(" y3 320 Tx Position test Case 3 "); prt(3);
}
//xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
delay(800);
break;
//xxxxxxxxxxxxxxxx
case 4:
Serial.println(" 325 - case 4 - no time out");
Serial.print( ( millis() / 1000) + 0.14 );
delay(100); bpcr = 5; //delay reqd to allow time respond to next function
break;
//xxxxxxxxxxxxxxxx
case 5:
blink(3);
digitalWrite (RxpP7, !q2); digitalWrite(Tx0P2, !q2);
Serial.print( ( millis() / 1000) + 0.15 );
t0 = 1; st = 1; t5 = 0; // tmr(); //starts new time cycle // pb state is held
// Tx02=1;
// t0 = 1; st = 1; //repeats set zero of timer
if (y && s5) {
s5 = 0;
Serial.println(" y5 448 x receive - detect only Case 5 "); prt(3);
}
delay(700);
break;
//xxxxxxxxxxxxxxxx
case 6:
Serial.print( ( millis() / 1000) + 0.16 );
Serial.println(" 370-case 6 - no time out ");
Serial.println( millis() / 1000 );
delay(100); bpcr = 7;
break;
//xxxxxxxxxxxxxxxx
case 7:
blink(4);
digitalWrite (RxpP7, !q2); digitalWrite(Tx0P2, !q2);
Serial.print( ( millis() / 1000) + 0.17 ); //repeats set zero of timer
t5 = 0; // tmr();
t0 = 1; st = 1;
if (y && s7) {
s7 = 0; Serial.println( millis() / 1000 );
Serial.println(" y 369 Tx Position test again Case 7 "); prt(3);
}
delay(700);
break;
//xxxxxxxxxxxxxxxx
case 8:
Serial.println(" y 447 -- case8 times out to 'primed'");
t0 = 1; t5 = 1; tmr(); //t6=1;
rsttr = 0; rst = 1; bpcr = 0;
break;
}
// S10 - Main Pulse [[484-497]
signed long currentMillis = millis();
if (currentMillis - previousMillis2 >= interval2)
{ previousMillis2 = currentMillis;
if (pls2 == LOW)
{ pls2 = HIGH;
interval2 =15;
} else
{ pls2 = LOW;
interval2 =2000;
}
q2 = pls2;
}
}
//xxx xxxxxxxxxxxxxxxxxxx End Of Main Loop [ Back to start - 130]
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXX
//xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// ### Subroutines [ 470- 665] ###
// ### S1/S10[ 470-503 ] ###
void pulse (int kk)
{ if (kk == 1)
{ if (currentMillis - previousMillis >= interval)
{ previousMillis = currentMillis;
if (Rxp7 == LOW)
{
Rxp7 = HIGH; // Rxp7 generate power on pulse
interval = 2600;
} else
{ Rxp7 = LOW;
interval = 400;
}
}
}
if (kk == 2) // S10 - Main Pulse [[484-497]
{ signed long currentMillis = millis();
if (currentMillis - previousMillis2 >= interval2)
{ previousMillis2 = currentMillis;
if (pls2 == LOW)
{ pls2 = HIGH;
interval2 = 200;
} else
{ pls2 = LOW;
interval2 = 2000;
}
q2 = pls2;
}
}
}
//sss sssssssssssssss ### S2- [ 490 ]
void tmr () {
signed long currentMillis = millis();
if (!t0) {
t0 = 1; // Set t0 =0 prevents cycle repeat
previousMillis5 = currentMillis; rsttr = 1; // rsttr = 1; ? //ie if t0=1 start timer
if (z && t4) {
Serial.print( ( millis() / 1000) + 0.8);
Serial.println(" [572] start delay timer "); t4 = 0; prt(3) ;
}//xxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Loff ();
}
if ( (currentMillis - previousMillis5 >= 10000) || t6) //t6 bypasses time out delay // interval1=10000;option timer //
{ previousMillis5 = currentMillis;
Serial.println( ( millis() / 1000) + 0.82);
// t0=0; // s9=0; if(!epbp){ rsttr=1;} //
timer = 0;
br = 1; // Set up bleeper
if ( t5) { //set t5=0 to // !epbp &&
// rsttr = 0; //allows return to 'primed'state
rst = 1; rsttr = 0; // bpcr = 8; // skips beep- cycle repeat only when epbp is 'up' ie!epbp //if(!epbp&&t5){ xx=8; }
if (z && t1) {
Serial.print( ( millis() / 1000) + 0.83);
Serial.println("-- zt1 587 stop timer "); prt(3); t1 = 0;
//xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Serial.println( ( millis() / 1000) + 0.84);
}
}
}
}
//wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
//sss ssssssssssssssss ### S3 - [ 520 ]
void Loff() {
alm3 = 0;
digitalWrite (almP3, LOW);
}
void Lon () { // tone(3, 2000,2);
alm3 = 1;
digitalWrite (almP3, HIGH);
// if(z){ tone(3, 1000,20);delay(200);tone(3, 1950,22);delay(800); } // //
}
void blink (int nn) {
if (nn <= 5); Lon(); delay (3);Loff (); delay(100); //
if (nn <= 4); Lon(); delay (3); Loff (); delay(100); // triple double blip
if (nn <= 3); Lon(); delay(3); Loff(); delay(100);
if (nn <= 2); Lon(); // tone(3,1000,20); // delay(31); Loff(); delay(250);
if (nn <= 1); Lon(); delay(31); Loff(); // delay(1460);
}
// blink & lon
//sss ssssssssssssssssss ### S4 - [ 550 ]
void prt (int k) {
if (k == 0) {
Serial.print( "xxx ");
}
if (k == 1) {
Serial.print(" last epbp-"); Serial.print("epbp-"); Serial.print ("");
Serial.print( lastepbp ); Serial.print( epbp ); //Serial.print(dcr);Serial.print("dcr= ");
Serial.print(" "); Serial.print (" rsstr "); Serial.print("rst "); Serial.print ("'");
Serial.print(rsttr) ; Serial.println(rst); // Serial.print ("d1 ");Serial.print ("d2 =");Serial.print(d1);Serial.println(d2);
}
if (k == 2) {
Serial.print(" "); Serial.print("epbp-"); Serial.print("alm3-"); Serial.print ("Rx06=");
Serial.print (""); Serial.print(epbp); Serial.print ( alm3); Serial.print ( Rx06);
Serial.print(" "); Serial.print(" bpcr = "); Serial.print (bpcr);Serial.print(" ");
Serial.print(" xyz = ") ; Serial.print (""); Serial.print( x); Serial.print( y ); Serial.println(z );
}
if (k == 3) {
Serial.print("signal s ="); Serial.print ("'"); Serial.print (s); Serial.print (s0);
Serial.print (s1); Serial.print (s2); Serial.print ("'"); Serial.print (s3);
Serial.print (s4); Serial.print (s5);
Serial.print (s6); Serial.print ("'"); Serial.print (s7); Serial.print (s8);
Serial.print (s9); Serial.print (st);Serial.print(" signal t ="); Serial.print ("'");
Serial.print( t0); Serial.print ( t1); Serial.print ( t2); Serial.print ("'");
Serial.print ( t3); Serial.print ( t4); Serial.print ( t5); Serial.print ("'");
Serial.print ( t6); Serial.println ( tc );
}
if (k == 4) {
Serial.print("sgnl ref ='s012,3456,789t'"); Serial.println(" signal ref ='012,345,6c' ") ;
}
if (k == 5) {
Serial.print(" lastepbp ");
Serial.print( "epbp");
Serial.print( lastepbp );
Serial.println( epbp );
}
if (k == 6) {
Serial.print( " dcr = "); Serial.print(dcr); Serial.print( " d1 = "); Serial.print(d1);
Serial.print( " bpcr= "); Serial.println( bpcr);
}
if (k == 7) {
Serial.print( " c1;c2;c3; dcr; d1;d2;d3 "); Serial.print(c1); Serial.print(c2);
Serial.print(c3); Serial.print(" "); Serial.print(dcr); Serial.print(" "); Serial.print(d1);
Serial.print(d2); Serial.print(d3);// Serial.print(d2);
}
if (k == 8) {
Serial.print( "xxx ");
}
if (k == 9)
{ Serial.print( (( millis() / 100) - tm1) + 0.99 ); Serial.print("[1/10secs]"); //Serial.print("");
}
if (k == 10)
{ Serial.println( "");
}
if (k == 11)
{
Serial.println( " ");
}
}
/*
void pt(int w)
{ int a;
if(w == 1){
Serial.print(" A " ); Serial.print(c1); Serial.print(c2); Serial.println(c3);
}
}*/
void tprt( int tp1) //TIME STAMP
{
if ( tp1 == 1)
{ Serial.print( ( millis() / 100) + 0.40 ); Serial.println(" [1/10 secs] ");
}
}
//sss ssssssssssssssss ### S5 - [ 580 ]
void system_sleep() { //used at line no 132 // set system into the sleep state
// system wakes up when wtchdog is timed out
sleep_enable();
//attachInterrupt(2, wakeUpNow, LOW);
set_sleep_mode(SLEEP_MODE_PWR_DOWN); //;
sleep_mode(); // System actually sleeps here
// delay(2000);
sleep_disable(); // // System continues execution here when watchdog timed out
//detachInterrupt(2);
// sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON
}
//sss ssssssssssssssss ### S6 - [ 600 ]
void wakeUpNow() //used at line no 119 // switch Analog to Digitalconverter ON
{
// if(!f_wdt ){ f_wdt=1; } //= 1;
}
// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
//ss ssssssssssssssss ### S7 - [ 620 ]
void setup_watchdog(int ii) { //important note note here replace below with excerpt from 796
byte bb;
int ww ;
if (ii > 9 ) ii = 9;
bb = ii & 7;
if (ii > 7) bb |= (1 << 5);
bb |= (1 << WDCE);
ww = bb;
MCUSR &= ~(1 << WDRF);
// start timed sequence
WDTCSR |= (1 << WDCE) | (1 << WDE); // NB.change to WDTCR for attiny chip 3 instances
// WDTCSR = (1<<WDP3) | (0<WDP2) | (0<<WDP1) | (1<WDP0);//*WDTCR see above note*
// set new watchdog timeout value
WDTCSR = bb;
WDTCSR |= _BV(WDIE);
} //
//ss ssssssssssssssss ### S8 - [640 ]
// Watchdog Interrupt Service / is executed when watchdog timed out
ISR(WDT_vect) {
f_wdt = 1; //if(rst){
} // set global flag
//ss ssssssssssssssss ### S9 - [ 650 ]
void test() {
digitalWrite(RxpP7, HIGH); delay(5); digitalWrite(RxpP7, LOW); delay(20);
digitalWrite(RxpP7, HIGH); delay(5); digitalWrite(RxpP7, LOW); delay(1900);
}
//ss ssssssssssssssss ### S10 - [ 660 ]
void checktime(int a)
{ signed long currentMillis = millis();
currentMillis = millis();
if (a) {
csecs2 = ((currentMillis - previousMillis4) / 1000); //timer on time/1000// was if(tc)
} else {
csecs2 = 0;
}
}
//ss ssssssssssssssss ### S11 - [ 670 ]
/*void timeout( )
{ t5 =1;t6=1; tmr(); //starts new time-out cycle
if (y&&s2) { s2 = 0;
Serial.println(" ys2 678 countdown to primed mode "); prt(3);
} //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
code snippet
int a1;
if ( Rx06 && !a1 && !q2)
{bpcr++;
if (bpcr<10)
{
Serial.print(" [154] Counter outputs bpcr- q2- Rx06- a1 = " );
Serial.print( bpcr) ; Serial.print( q2) ;
Serial.print( Rx06 );Serial.println( a1) ;
}
if(q2&&a1){ a1=0; } // a1=1;
}
digitalWrite(P12,LOW);
*/
//end