Hi All
I try create Zero Cross Detection with ESP8266 in Arduino IDE.
some operator inside attachInterrupt not work !
(x=++) or (x=x+1) not work but (c=a-b) working.
Can anyone help to resolve my mistake ?
Thanks
Armen
void ICACHE_RAM_ATTR ZCDInterrupt(); // define in RAM
volatile unsigned long SZCC=0; // Sum of Zero Cross Count
volatile unsigned long ZCTCurrent=0; // Zero Cross Time Start
volatile unsigned long ZCTStart=0; // Zero Cross Time Stop
volatile unsigned long ZCTPeriod=0; // Zero Cross Time Period
volatile boolean ZCStatus=0; // Boolean to store ZCD
const byte ZCDPin = 13;
void ICACHE_RAM_ATTR ZCDInterrupt () {
ZCTStart = ZCTCurrent;
ZCTCurrent = micros();
SZCC = SZCC + 1 ; // This line and SZC++ NOT WORK !!!
ZCTPeriod = ZCTCurrent - ZCTStart ;
ZCStatus=HIGH;
}
void setup() {
Serial.begin(115200);
pinMode(ZCDPin, INPUT);
attachInterrupt(digitalPinToInterrupt(ZCDPin), ZCDInterrupt, RISING); //INPUT_PULLUP INPUT
Serial.println();
ZCTCurrent = micros();
}
void loop() {
Serial.printf("1 ZCStatus: %i\t",ZCStatus) ;
Serial.printf("1 ZCTStart: %i\t",ZCTStart) ;
Serial.printf("1 ZCTCurrent: %i\t",ZCTCurrent) ;
Serial.printf("1 ZCTPeriod: %i\t",ZCTPeriod) ;
Serial.printf("1 SZCC: %i <-EOL\t",SZCC) ;
Serial.println();
ZCStatus=0;
Serial.printf("2 ZCStatus: %i\t",ZCStatus) ;
Serial.printf("2 ZCTStart: %i\t",ZCTStart) ;
Serial.printf("2 ZCTCurrent: %i\t",ZCTCurrent) ;
Serial.printf("2 ZCTPeriod: %i\t",ZCTPeriod) ;
Serial.printf("2 SZCC: %i <-EOL\t",SZCC) ;
Serial.println();
}
Result SZCC duplicate and SZCC++ or SZCC=SZCC+1 sometimes not running !
1 ZCStatus: 0 1 ZCTStart: 0 1 ZCTCurrent: 60097 1 ZCTPeriod: 0 1 SZCC: 0 <-EOL
2 ZCStatus: 0 2 ZCTStart: 0 2 ZCTCurrent: 60097 2 ZCTPeriod: 0 2 SZCC: 0 <-EOL
1 ZCStatus: 0 1 ZCTStart: 0 1 ZCTCurrent: 60097 1 ZCTPeriod: 7177 1 SZCC: 1 <-EOL
2 ZCStatus: 0 2 ZCTStart: 60097 2 ZCTCurrent: 67274 2 ZCTPeriod: 7177 2 SZCC: 1 <-EOL
1 ZCStatus: 1 1 ZCTStart: 67274 1 ZCTCurrent: 77302 1 ZCTPeriod: 10028 1 SZCC: 2 <-EOL
2 ZCStatus: 0 2 ZCTStart: 67274 2 ZCTCurrent: 87281 2 ZCTPeriod: 9979 2 SZCC: 3 <-EOL
1 ZCStatus: 1 1 ZCTStart: 77302 1 ZCTCurrent: 87281 1 ZCTPeriod: 10026 1 SZCC: 4 <-EOL
2 ZCStatus: 0 2 ZCTStart: 87281 2 ZCTCurrent: 97307 2 ZCTPeriod: 10026 2 SZCC: 5 <-EOL
1 ZCStatus: 1 1 ZCTStart: 97307 1 ZCTCurrent: 107287 1 ZCTPeriod: 9980 1 SZCC: 5 <-EOL
2 ZCStatus: 0 2 ZCTStart: 107287 2 ZCTCurrent: 117311 2 ZCTPeriod: 10024 2 SZCC: 6 <-EOL
1 ZCStatus: 1 1 ZCTStart: 107287 1 ZCTCurrent: 127291 1 ZCTPeriod: 9980 1 SZCC: 7 <-EOL
2 ZCStatus: 0 2 ZCTStart: 117311 2 ZCTCurrent: 127291 2 ZCTPeriod: 9980 2 SZCC: 8 <-EOL
1 ZCStatus: 1 1 ZCTStart: 127291 1 ZCTCurrent: 137315 1 ZCTPeriod: 10024 1 SZCC: 8 <-EOL
2 ZCStatus: 0 2 ZCTStart: 137315 2 ZCTCurrent: 147297 2 ZCTPeriod: 9982 2 SZCC: 9 <-EOL
1 ZCStatus: 0 1 ZCTStart: 137315 1 ZCTCurrent: 157322 1 ZCTPeriod: 10025 1 SZCC: 10 <-EOL
2 ZCStatus: 0 2 ZCTStart: 147297 2 ZCTCurrent: 157322 2 ZCTPeriod: 9980 2 SZCC: 11 <-EOL
1 ZCStatus: 1 1 ZCTStart: 157322 1 ZCTCurrent: 167302 1 ZCTPeriod: 9980 1 SZCC: 12 <-EOL
2 ZCStatus: 0 2 ZCTStart: 167302 2 ZCTCurrent: 177326 2 ZCTPeriod: 10024 2 SZCC: 12 <-EOL
1 ZCStatus: 1 1 ZCTStart: 177326 1 ZCTCurrent: 187307 1 ZCTPeriod: 9981 1 SZCC: 13 <-EOL
2 ZCStatus: 0 2 ZCTStart: 177326 2 ZCTCurrent: 197330 2 ZCTPeriod: 10023 2 SZCC: 14 <-EOL
1 ZCStatus: 1 1 ZCTStart: 187307 1 ZCTCurrent: 197330 1 ZCTPeriod: 9981 1 SZCC: 15 <-EOL
2 ZCStatus: 0 2 ZCTStart: 197330 2 ZCTCurrent: 207311 2 ZCTPeriod: 9981 2 SZCC: 16 <-EOL
1 ZCStatus: 1 1 ZCTStart: 207311 1 ZCTCurrent: 217337 1 ZCTPeriod: 10026 1 SZCC: 16 <-EOL
2 ZCStatus: 0 2 ZCTStart: 217337 2 ZCTCurrent: 227315 2 ZCTPeriod: 9978 2 SZCC: 17 <-EOL
1 ZCStatus: 0 1 ZCTStart: 217337 1 ZCTCurrent: 237337 1 ZCTPeriod: 10022 1 SZCC: 18 <-EOL
2 ZCStatus: 0 2 ZCTStart: 227315 2 ZCTCurrent: 237337 2 ZCTPeriod: 9981 2 SZCC: 19 <-EOL
1 ZCStatus: 1 1 ZCTStart: 237337 1 ZCTCurrent: 247318 1 ZCTPeriod: 9981 1 SZCC: 20 <-EOL
2 ZCStatus: 0 2 ZCTStart: 247318 2 ZCTCurrent: 257345 2 ZCTPeriod: 10027 2 SZCC: 20 <-EOL
1 ZCStatus: 0 1 ZCTStart: 257345 1 ZCTCurrent: 267324 1 ZCTPeriod: 9979 1 SZCC: 21 <-EOL
2 ZCStatus: 0 2 ZCTStart: 257345 2 ZCTCurrent: 277349 2 ZCTPeriod: 10025 2 SZCC: 22 <-EOL