Прерывание продолжает стрелять
Я подключил 6502, чтобы запустить программу, и чтобы проверить, что происходит на адресной и шине данных, я построил настройку монитора с Arduino Mega2560. Монитор должен считывать с шин каждый раз, когда тактовый сигнал поднимается. (Это в основном из видео Ben Eaters YouTube.)
Проблема, которую я испытываю сейчас, заключается в том, что Arduino, кажется, обнаруживает восходящие края. Иногда он несколько лишний, иногда он просто продолжает стрелять, в то время как таковой сигнал устойчиво высок. Я подключил логический анализатор, чтобы увидеть, где и если сигнал подпрыгивает. Но даже поднимаясь до 48 МГц, я не вижу никакого подпрыгивания.
Вот код, который я использую для подключения тактового фронта:
#define CLOCK 2
void setup() {
pinMode(CLOCK, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(CLOCK), onClock, RISING);
}
static void onClock() {
// считывание сигналов из данных и адреса
// отправьте эту информацию через последовательный порт
}
Обновление Я подключил светодиод с резистором 220 Ом к заземлению. При удалении проблема, кажется, исчезла.
0
- Как разбудить Arduino с помощью rtc?
- SPI-транзакции в Arduino
- Считать данные датчика повторно через указанное время?
- Где определен макрос digitalPinToInterrupt?
- Преобразование кода ATTINY85 в ATMEGA2560. Прерывания смены контактов
- Срабатывание ложного прерывания Arduino Mega
- Arduino mega PinChangeInterrupt с 16 битным таймером
- Arduino Mega 2560 подсчет задержек между событиями на разных контактах
Какова ценность " ЧАСОВ`?, @Edgar Bonet
@EdgarBonet 2; Я обновлю этот вопрос., @Bart Friederichs
Возможно, вам захочется понаблюдать за линией с помощью осциллографа, со светодиодом и без. Возможно, вы вызвали шум, который запускает схему прерывания., @the busybee
"отправить эту информацию через последовательный порт" в контексте ISR немного беспокоит, но здесь детали были удалены., @timemage
@timemage Я читал это где-то еще. Я понимаю, что это не умно, и я изменю его. Однако я могу подумать о том, как это может заставить его пропустить прерывание, но как это может привести к тому, что процедура прерывания будет запущена более одного раза?, @Bart Friederichs
Если бы у меня была хоть какая-то уверенность в том, что так оно и будет, я бы представил это как ответ, а не как комментарий., @timemage
Покажите реальный код и реальную проводку, и ваши шансы получить полезный ответ возрастут., @timemage