CTC

CTC

Количество каналов CTC временно сокращено с восьми до четырех.

Восемь независимых каналов CTC доступны через порты с 0x183B по 0x1F3B. Они выполняют функции счетчика/таймера, которые можно использовать для генерации прерываний таймера или для генерации прерываний от физических сигналов.

CTC — это стандартная деталь производства Zilog. Ее спецификацию можно найти по адресу http://www.zilog.com/docs/z80/ps0181.pdf. Документация Zilog неоднозначна в отношении обработки программных сбросов, поэтому ниже уточняются некоторые моменты реализации в Next.

  1. Аппаратный сброс требует записи управляющего слова с D2 = 1 (за которым следует временная константа), в противном случае канал фактически игнорирует управляющее слово и останется в состоянии аппаратного сброса.

  2. Программный сброс генерируется, когда D1 управляющего слова = 1. Если D2 = 0, канал перейдет в состояние аппаратного сброса. Если D2 = 1, то канал ожидает запись временной константы, после чего счетчик/таймер будет работать должным образом.

  3. Изменение выбора фронта запуска в бите 4 считается фронтом тактового сигнала. Таймер, ожидающий фронт тактового сигнала для запуска, запустится, а в режиме счетчика отсчет будет уменьшен.

  4. ZC/TO устанавливается на один тактовый цикл, а не на все время, пока счет находится на нуле.

Чтобы выполнить программный сброс конкретного канала, находящегося в неизвестном состоянии, управляющее слово программного сброса следует записать дважды с D2 = 0 (за которым не следует временная константа).

В настоящее время выход ZC/TO каждого канала подается на вход CLK/TRG следующего канала, чтобы можно было каскадировать периоды времени и счета. Выход ZC/TO канала 3 делится на два и управляет тактовым сигналом джойстика в io режиме.