WDT ISR не вызывается при инициализации модуля SPI ST7789
Использование функции .init
для TFT-экрана ST7789 предотвращает срабатывание моего WDT ISR. Чем объясняется такое поведение, и есть ли что-то, что я могу сделать? Любой другой таймер ISR я мог бы использовать вместо этого?
#include <Adafruit_ST7789.h> // Includes Adafruit_GFX.h
#define TFT_CS 10 // define chip select pin
#define TFT_DC 9 // define data/command pin
#define TFT_RST 8 // define reset pin, или установите значение -1 и подключитесь к Arduino RESET pin
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup()
{
//Serial.begin(9600);
pinMode(13, OUTPUT);
WDTCSR = (24); // Изменение enable и WDE - также сбрасывается
//только прескалеры - избавьтесь от битов WDE и WDCE.
WDTCSR = (6); // 1 sec
WDTCSR |= (1 << 6); //enable interrupt mode - WDT as an interrupt is useful to wake up from sleep
sei();
tft.init(240, 240, SPI_MODE2); // прокомментируйте это, и WDT прекрасно работает
tft.setRotation(0);
tft.setTextWrap(true);
}
void loop()
{
}
ISR(WDT_vect)
{
digitalWrite(13, (digitalRead(13) ^ 1)); // переключающий светодиодный штифт
}
- Спасибо!
@JCSB, 👍1
Обсуждение1 ответ
▲ 2
Вы не можете использовать светодиод на выводе 13 на Uno, Nano или Nano Every, если вы используете SPI . Это часовой штифт SPI.
Функция init дисплея инициализирует SPI, который выделяет ПИН для SPI периферии и отключает его от PIN IO периферии.
,
@Juraj
Хорошая мысль. Возможно, я заметил бы это, если бы он упомянул об используемых контактах, таких как "использование 8 - RST; 9 - DC; 10 - CS; 11 - MOSI; 12 - MISO; 13 - SCLK; 13 - LED_BUILTIN", @KIIV
Смотрите также:
- Аппаратный SPI Arduino NANO не работает
- ST7735s 1.8" SPI 128x160 TFT Модуль - Белый экран
- TFT-дисплей показывает черные полосы
- Использование TFT с аппаратным SPI и динамиком с tone()
- Протокол SPI с несколькими устройствами
- Как использовать SPI на Arduino?
- Как увеличить скорость записи на SD-карту в Ардуино
- Как считывать данные с помощью Arduino SPI
Чтобы быть ясным, вы говорите, что вывод 13 мигает тогда и только тогда, когда вызов
tft.init
закомментирован?, @timemage@timemage да, точно, @JCSB