Выполнить слово FlashForth при смене pin-кода

#arduino #atmega #forth

#arduino #atmega #далее

Вопрос:

У меня есть слово, которое я хочу активировать при смене pin-кода:

 : example
  ." Hello, world! "
;i
  

Я использую External Interrupt Request 1 , который является вектором прерывания no. 3 в соответствии со страницей 65 таблицы данных и этой схемой, которую я использую.

 ' example 3 int!
ei
  

Когда я пытаюсь изменить значение pin-кода (в данном случае pin 3), ничего не происходит.

Я делаю что-то не так?

Ответ №1:

В коде, который я опубликовал выше, есть несколько ошибок, но я заставил его работать, просмотрев другие примеры и прочитав таблицу данных:

  Pin Change Interrupt 0
4 constant pcint0

 Pin Change Mask Register 0
$6b constant pcmsk0

 Pin Change Interrupt Control Register
$68 constant pcicr

ram variable example

: example 1
  1 example  !
;i

: int-enable
  ['] example 1 pcint0 int!
  ei
;

int-enable

000001 pcmsk0 mset
000111 $68 mset

 Shorting pin 8 will now increment `example` variable.