Ahmet
S38>S85
- Katılım
- 31 Mayıs 2021
- Mesajlar
- 6,094
Kod:
#include <HardwareSerial.h>
int gsmPowerPin = 10;
int gsmExtPowerPin = 3;
int led = 2;
HardwareSerial gsm(1);
char cmd[50];
char resp[50];
char text[50];
//int pinValue;
/* TIMER */
#define delayed 100000 //100k = 100ms
#define fcpu 80 //80MHZ
uint64_t tmr = 0;//64 bit timer
hw_timer_t *Timer0_Cfg = NULL;
void IRAM_ATTR Timer0_ISR()
{
tmr++;
if(tmr == 10){
//1 saniye
}
//...
}
int sayac;
String sendCmd(char text[50])
{
gsm.println(text);
delay(250);
if (gsm.available()>0)
{
char resp = gsm.read();
Serial.print(resp);
}
}
void gsmCheck()
{
//pinValue = digitalRead(gsmExtPowerPin);
if (digitalRead(gsmExtPowerPin) == LOW)
{
digitalWrite(gsmPowerPin, HIGH);
delay(1000);
digitalWrite(gsmPowerPin, LOW);
delay(100);
}
}
void setup() {
/* TIMER */
Timer0_Cfg = timerBegin(0, fcpu, true);
timerAttachInterrupt(Timer0_Cfg, &Timer0_ISR, true);
timerAlarmWrite(Timer0_Cfg, delayed, true);
timerAlarmEnable(Timer0_Cfg);
Serial.begin(115200);
// put your setup code here, to run once:
pinMode(gsmPowerPin, OUTPUT);
pinMode(gsmExtPowerPin, INPUT);
pinMode(led, OUTPUT);
gsm.setTimeout(300);
gsm.begin (115200, SERIAL_8N1, 6, 7);
digitalWrite(led, HIGH);
delay(250);
digitalWrite(led, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
char text[] = "AT";
gsmCheck();
sendCmd(text);
}
tmr değişkenini kendi haline bırakmamak lazım belli bir değere ulaştığında 0layıp başka değişken set edilererek kullanımı bence daha uygun.