#include <WiFi.h>
#include <time.h>
//*************TIMER INTERRUPT*******************
volatile int interruptCounter;
int totalInterruptCounter;
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
void IRAM_ATTR onTimer() {
portENTER_CRITICAL_ISR(&timerMux);
interruptCounter++;
portEXIT_CRITICAL_ISR(&timerMux);
}
//*************TIMER INTERRUPT*******************
int timezone = 10800;
int dst = 0;
int mode=0;
int say=0;
int num=0;
const char* ssid = "Wokwi-GUEST1";
const char* password = "";
bool durum=true;
uint16_t h, m, s;
uint8_t dow;
int day;
uint8_t month;
String year;
// Global variables
char szTime[9]; // mm:ss\0
char szsecond[4]; // ss
char szMesg[20] = "";
//*************************
//******************
void getsec(char *psz)
{
time_t now = time(nullptr);
struct tm* p_tm = localtime(&now);
s = p_tm->tm_sec;
sprintf(psz, "%02d", s);
Serial.print("time t :");
Serial.println(p_tm->tm_sec);
Serial.print("sssssss :");
Serial.println(s);
}
void setup(void)
{
Serial.begin(115200);
delay(100);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
//*************TIMER INTERRUPT*******************
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &onTimer, true);
timerAlarmWrite(timer, 1000000, true);
timerAlarmEnable(timer);
//*************TIMER INTERRUPT*******************
getTimentp();
}
void loop(void)
{
//*************TIMER INTERRUPT*******************
if (interruptCounter > 0) {
portENTER_CRITICAL(&timerMux);
interruptCounter--;
portEXIT_CRITICAL(&timerMux);
totalInterruptCounter++;
//Serial.println("kesme");
//Serial.print("An interrupt as occurred. Total number: ");
//Serial.println(totalInterruptCounter);
getsec(szMesg);
Serial.print("mesaj :");
Serial.println(szMesg);
if(durum){
num++;
if(num>20){
//WiFi.status() != WL_CONNECTED;
}
}
if(WiFi.status() == WL_CONNECTED){
Serial.println("WiFiye bağlandı");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
durum=false;
}else{
Serial.println("bağlantı yok");
}
}
//*************TIMER INTERRUPT*******************
}
//**************************************
void getTimentp()
{
configTime(timezone , dst, "pool.ntp.org","time.nist.gov");
while(!time(nullptr)){
delay(100);
Serial.print(".");
}
Serial.print("Time Update");
}
//************************
//****************************