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

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

: example
  ." Hello, world! "
;i

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

' example 3 int!
ei

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

Я делаю что-то неправильно?


person Rick    schedule 22.10.2016    source источник


Ответы (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

%00000001 pcmsk0 mset
%00000111 $68 mset

\ Shorting pin 8 will now increment `example` variable.
person Rick    schedule 28.10.2016