arduino nodemcu esp8266 hardware serial port ?

Başlatan magnetron, 03 Mart 2023, 22:47:08

magnetron

merhaba forum,

nodemcu esp8266 nın hardware serial portunu arduino IDE ile kullanacağım

yalnız arduino da interrupt ile çalışan bir UART örnek uygulama göremedim - arduino da yeniyim

ben istiyorum ki gelen giden data interrupt ile alınsın veya gönderilsin

main loop daki gecikmelerden etkilenmesin çünkü 115 Kb çalışıcam

google aradım ama istediğim gibi örnek bulamadım

sizin yararlandığınız kaynak var mı bu konuda

teşekkür

mg1980

#1
Bir ara bir deneme yapıp burada paylaşmıştım. Şimdi nerededir Allah bilir.. Rx pinine bir dirençle opto Led'ini bağlayın. Kollektöre pullup direnci koyarak Arduino 'nun INT pinlerinden birini bağlayın, kesme ayarlarını yapın... bu düzen çalışıyor.. dener misiniz..

Opto Led direncini optoyu çalıştıracak kadar yüksek tutun..

magnetron

#2
sayın hocam cevap için teşekkür ederim

yalnız ben arduino değil nodemcu da interruplı seri port istiyorum

yani bunun karakter geldi gitti diye interruptı yok mudur

bu kadar temel bişeyi arduino IDEde bulamadım ona şaşırdım

teşekkür

magnetron

şöyle bir kod buldum

seri port ekranında init yaptığını görüyorum - setupdaki satırlar geliyor
ama seri port ekranından 1 karakter gönderince "Interrupt Detected" yazısı gelmiyor
yani interrupt rutine girmiyor

acaba hatam nerde?

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const int interruptPin = 3;
volatile bool intfired=false;

void setup() {
  pinMode(2, OUTPUT);    
  pinMode(interruptPin, INPUT);
  //ICACHE_RAM_ATTR;
  attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, CHANGE);
  Serial.begin(115200);
  Serial.println();
  Serial.print("Built in LED is pin : ");
  Serial.println(LED_BUILTIN,DEC);
  Serial.println("Interrupt Test Program");
}
ICACHE_RAM_ATTR void handleInterrupt() {    //THE PROBLEM IS THIS LINE! 
  intfired=true;
}

void loop() {
  digitalWrite(2, LOW);
  delay(500);                    
  digitalWrite(2, HIGH);
  delay(500);                    
  if (intfired) {
    Serial.println("Interrupt Detected");
    intfired=false;
  }
}

mg1980

#4
Hocam, Nodemcu ile ilgilenmedim, bilmiyorum ama yukardaki kodları işleyen Nodemcu mu yoksa Arduino mu.. bu kodlar Arduino kodu... Nodemcu da aynı mı..

Nodemcu ise onda donanımsal usart kesmesi var mı...

Kabil ATICI

Arduino işlemcisinin eski datasheetlerinde usart dahil bir çok modül için örnek c ve asm kod örnekleri vardı.

Microchip aldıktan sonra oluşturulan datasheetlerdeki durumunu bilmiyorum.
ambar7

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"