17 C
Hanoi
Thứ Sáu, Tháng Mười Hai 3, 2021
Home LẬP TRÌNH VI ĐIỀU KHIỂN ESP8266 Lỗi ISR not in IRAM khi lập trình ESP8266

Lỗi ISR not in IRAM khi lập trình ESP8266

Hiện trạng:

Xuất hiện dòng “ISR not in IRAM!” khi bạn theo dõi qua cửa sổ UART.

Cách khắc phục

+ Phải khai báo nguyên mẫu hàm cho hàm ngắt (hoặc định nghĩa hàm ngắt trước setup)
+ Hàm ngắt phải có từ khóa ICACHE_RAM_ATTR trước tên hàm
Ví dụ:

 void ICACHE_RAM_ATTR MyInterruptHandler();
...
attachInterrupt(digitalPinToInterrupt(5),MyInterruptHandler,FALLING)
...
 void ICACHE_RAM_ATTR MyInterruptHandler() { // do your interrupt handling stuff in here.... }

Chi tiết theo link Github:

https://github.com/esp8266/Arduino/blob/master/doc/reference.rst?fbclid=IwAR1Zjb0K110uzkO6VLD5Qh_zLD_ZRom4QSbpWyATu2JxtXCDz2I2UYGNASk

Pin Functions

Digital pins 6—11 are not shown on this diagram because they are used to connect flash memory chip on most modules. Trying to use these pins as IOs will likely cause the program to crash.

Note that some boards and modules (ESP-12ED, NodeMCU 1.0) also break out pins 9 and 11. These may be used as IO if flash chip works in DIO mode (as opposed to QIO, which is the default one).

Pin interrupts are supported through attachInterruptdetachInterrupt functions. Interrupts may be attached to any GPIO pin, except GPIO16. Standard Arduino interrupt types are supported: CHANGERISINGFALLING. ISRs need to have ICACHE_RAM_ATTR before the function definition.

Hi vọng bài viết này giúp ích cho các bạn 🙂

3 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Tắt kính lúp hình vuông trong Altium

Tắt kính lúp của sổ PCB  trên Altium Sử dụng phím tắt: Shift+M Tham khảo thêm một số phím tắt khác trên phần mềm Altium Designer: Thiết...

Tổng hợp trang web liên quan thiết kế phần cứng điện tử

4 trang web tải thư viện SCH/PCB và 3D https://www.ultralibrarian.com/ https://componentsearchengine.com/ https://octopart.com/ https://www.snapeda.com/ https://componentsearchengine.com/ 2 trang tìm 3D cho thư viện của các bạn bao gồm: https://www.3dcontentcentral.com/ https://grabcad.com/library 4 trang cung cấp các...

Mạch đóng ngắt Relay sử dụng Transistor

Giới thiệu về Relay Rơ le (Relay) là một công tắc chuyển đổi hoạt động bằng điện. Dòng điện chạy qua cuộn dây của rơ...

Nạp Bootloader cho Arduino Pro Micro

Bootloader là một chương trình nhỏ được nạp sẵn vào chip vi điều khiển trên Arduino, nhờ đó bạn lập trình cho Arduino một...

Recent Comments