Tccr: Учебный курс AVR. Таймер — счетчик Т0. Регистры. Ч1

Учебный курс AVR. Таймер - счетчик Т0. Регистры. Ч1

   Таймер-счетчик является одним из самых ходовых ресурсов AVR микроконтроллера. Его основное назначение - отсчитывать заданные временные интервалы. Кроме того, таймеры-счетчики могут выполнять ряд дополнительных функций, как то - формирование ШИМ сигналов, подсчет длительности и количества входящих импульсов. Для этого существуют специальные режимы работы таймера-счетчика. 

   В зависимости от модели микроконтроллера количество таймеров и набор их функций может отличаться. Например, у микроконтроллера Atmega16 три таймера-счетчика - два 8-ми разрядных таймера-счетчика Т0 и Т2, и один 16-ти разрядный - Т1. В этой статье, на примере ATmega16, мы разберем как использовать таймер-счетчик Т0.

   Таймер-счетчик Т0 использует два вывода микроконтроллера ATmega16. Вывод T0 (PB0) - это вход внешнего тактового сигнала. Он может применяться, например, для подсчета импульсов. Вывод OC0 (PB3) - это выход схемы сравнения таймера-счетчика. На этом выводе с помощью таймера может формировать меандр или ШИМ сигнал. Также он может просто менять свое состояние при срабатывании схемы сравнения, но об этом поговорим позже. 

   
   Выводы T0 и OC0 задействуются только при соответствующих настройках таймера, в обычном состоянии это выводы общего назначения. 

 

   Хоть это и скучно, но регистры - это то, без чего невозможно программировать микроконтроллеры, конечно, если вы не сидите плотно на Arduino. Так вот, таймер Т0 имеет в своем составе три регистра:


- счетный регистр TCNT0,
- регистр сравнения OCR0,
- конфигурационный регистр TCCR0.

Кроме того, есть еще три регистра, относящиеся ко всем трем таймерам ATmega16:

- конфигурационный регистр TIMSK,
- статусный регистр TIFR.
- регистр специальных функций SFIOR

Начнем с самого простого.

TCNT0

 

   Это 8-ми разрядный счетный регистр. Когда таймер работает, по каждому импульсу тактового сигнала значение TCNT0 изменяется на единицу. В зависимости от режима работы таймера, счетный регистр может или увеличиваться, или уменьшаться.
   Регистр TCNT0 можно как читать, так и записывать. Последнее используется когда требуется задать его начальное значение. Когда таймер работает, изменять его содержимое TCNT0 не рекомендуется, так как это блокирует схему сравнения на один такт.

OCR0  


   Это 8-ми разрядный регистр сравнения. Его значение постоянно сравнивается со счетным регистром TCNT0, и в случае совпадения таймер может выполнять какие-то действия - вызывать прерывание, менять состояние вывода OC0 и т.д. в зависимости от режима работы.

   Значение OCR0 можно как читать, так и записывать.

TCCR0 (Timer/Counter Control Register)



   Это конфигурационный регистр таймера-счетчика Т0, он определяет источник тактирования таймера, коэффициент предделителя, режим работы таймера-счетчика Т0 и поведение вывода OC0. По сути, самый важный регистр. 


   Биты CS02, CS01, CS00 (Clock Select) - определяют источник тактовой частоты для таймера Т0 и задают коэффициент предделителя. Все возможные состояния описаны в таблице ниже.

   
   Как видите, таймер-счетчик может быть остановлен, может тактироваться от внутренней частоты и также может тактироваться от сигнала на выводе Т0. 

   Биты WGM10, WGM00 (Wave Generator Mode) - определяют режим работы таймера-счетчика Т0. Всего их может быть четыре - нормальный режим (normal), сброс таймера при совпадении (CTC), и два режима широтно-импульсной модуляции (FastPWM и Phase Correct PWM). Все возможные значения описаны в таблице ниже.

Более подробно будем разбирать режимы в коде. Сейчас все нюансы все равно не запомнятся. 

   Биты COM01, COM00 (Compare Match Output Mode) - определяют поведение вывода OC0. Если хоть один из этих битов установлен в 1, то вывод OC0 перестает функционировать как обычный вывод общего назначения и подключается к схеме сравнения таймера счетчика Т0. Однако при этом он должен быть еще настроен как выход.
   Поведение вывода OC0 зависит от режима работы таймера-счетчика Т0. В режимах normal и СTC вывод OC0 ведет себя одинаково, а вот в режимах широтно-импульсной модуляции его поведение отличается. Не будем сейчас забивать себе голову всеми этими вариантами и разбирать таблицы для каждого режима, оставим это на практическую часть.

   И последний бит регистра TCCR0 - это бит FOC0 (Force Output Compare). Этот бит предназначен для принудительного изменения состояния вывода OC0. Он работает только для режимов Normal и CTC. При установки бита FOC0 в единицу состояние вывода меняется соответственно значениям битов COM01, COM00. FOC0 бит не вызывает прерывания и не сбрасывает таймер в CTC режиме.

TIMSK (Timer/Counter Interrupt Mask Register)


   Общий регистр для всех трех таймеров ATmega16, он содержит флаги разрешения прерываний. Таймер Т0 может вызывать прерывания при переполнении счетного регистра TCNT0 и при совпадении счетного регистра с регистром сравнения OCR0. Соответственно для таймера Т0 в регистре TIMSK зарезервированы два бита - это TOIE0 и OCIE0. Остальные биты относятся к другим таймерам.

TOIE0

- 0-е значение бита запрещает прерывание по событию переполнение, 1 - разрешает. 
OCIE0 - 0-е значение запрещает прерывания по событию совпадение, а 1 разрешает.

   Естественно прерывания будут вызываться, только если установлен бит глобального разрешения прерываний - бит I регистра SREG.

TIFR (Timer/Counter0 Interrupt Flag Register)


   Общий для всех трех таймеров-счетчиков регистр. Содержит статусные флаги, которые устанавливаются при возникновении событий. Для таймера Т0 - это переполнение счетного регистра TCNT0 и совпадение счетного регистра с регистром сравнения OCR0. 

Если в эти моменты в регистре TIMSK разрешены прерывания и установлен бит I, то микроконтроллер вызовет соответствующий обработчик.
   Флаги автоматически очищаются при запуске обработчика прерывания. Также это можно сделать программно, записав 1 в соответствующий флаг.

TOV0 - устанавливается в 1 при переполнении счетного регистра.
OCF0 - устанавливается в 1 при совпадении счетного регистра с регистром сравнения

SFIOR (Special Function IO Register)

   
    Начинающему про этот регистр в принципе можно и не знать, один из его разрядов сбросывает 10-ти разрядный двоичный счетчик, который делит входную частоту для таймера Т0 и таймера Т1. 

   Сброс осуществляется при установке бита PSR10 (Prescaler Reset Timer/Counter1 и Timer/Counter0) в единицу.

   Нудная часть закончена. Далее разберем как настроить таймер на определенную частоту, как таймер ведет себя в разных режимах, как генерировать ШИМ сигнал.

AVR. Описание работы Timer/Counter1




Email автора.

Copyright: Сухарев Евгений, 2005


Описание работы таймера/счётчика 1.
Прерывания от TC1


Таймер/счётчик 1 (TC1) представляет из себя 16-битный модуль, содержащий 10 8-битных регистров. Эти регистры фактически являются набором из 5 16-битных регистров. Счёт происходит в регистрах TCNT1H (Timer counter 1 High byte) и TCNT1L (Low byte), вместе составляющих 16-битный регистр TCNT1. ВНИМАНИЕ! Если использовать прямое чтение 8-битных регистров TCNT1H и TCNT1L, то нельзя быть уверенным, что эти регистры прочитались одновременно. Может произойти следующая ситуация: Счётчик содержал значение $01FF, Вы считали TCNT1H (содержащий значение 01 в какую-то переменную). За это время произошёл счётный импульс, и содержимое TCNT1L стало равно $00, а в TCNT1H записалось значение $02.

Теперь Вы читаете значение TCNT1L в другую переменную, получаете в этой переменной значение $00 (ведь таймер-счётчик уже произвёл счёт). 16-битное значение этих переменных получилось $0100, но на момент считывания старшего байта содержимое счётчика было $01FF, и младший байт у Вас должен был прочитаться как FF. Для предотвращения такой ситуации служит временный регистр, содержащийся в блоке таймера-счётчика. Этот регистр прозрачный, т.е. действует автоматически. При считывании значения регистра TCNT1L в переменную, содержимое TCNT1H попадает в этот регистр. Затем при чтении старшего байта в переменную, считывается значение временного регистра. Временный регистр абсолютно прозрачен для пользователя, но для его корректной работы необходимо соблюдать такую последовательность действий:
Для 16-битной операции записи, старший байт должен быть записан первым. Младший - вторым.
Для операции 16-битного чтения, младший байт должен быть прочитан первым, а содержимое старшего байта считывается вторым.
Регистр TCCR1A служит для задания режимов работы таймера/счётчика 1:

Биты COM1A1,COM1A0, COM1B1 и COM1B0 - контролируют поведение выводов OC1A и OC1B.
Биты FOC1A, FOC1B, WGM11 и WGM10 служат для задания работы ТС1 как широтно-импульсного модулятора.

Скорость счёта ТС1 можно установить в регистре TCCR1B:

Где биты ICNC1, ICES1, WGM13 и WGM12 также служат для PWM, а CS12, CS11 и CS10 настраивают скорость счёта следующим образом:

В случае, если в эти биты записаны значения 000, ТС0 остановлен. Если записано 001, то тактовая частота процессора подаётся через схему делителя без изменений, и на каждый такт процессора ТС1 увеличивает значение в регистре TCNT1. Соответственно, если в CSxx Записано 101, то увеличение значения в TCNT1 происходит на каждый 1024-ый такт процессора.

16-битные регистры OCR1A и OCR1Bслужат для задания значения, при достижении которого в режиме счёта, ТС1 генерирует соответствующие прерывания.

Обработка прерываний от TC1

ТС1 при переполнении значения TCNT1 посылает процессору сигнал Timer/Counter 1 Overflow. Также процессору посылается сигнал Timer/Counter 1 A или B Compare Match при совпадении значений в регистрах TCNT1 и OCR1A и OCR1B соответственно. Реакция процессора на эти сигналы (вызов соответствующих прерываний) зависит от значения регистров TIMSK и флага I в Status регистре процессора.
Для задания реакции на события TC1 в регистре TIMSK служат четыре бита:

Бит 2 - TOIE1 - Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует на сигнал переполнения ТС1 и вызывает прерывание по вектору $010 (OVF1addr).
Бит 3 - OCIE1B - Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует вызовом прерывания по вектору $00E (OC1Baddr) на событие совпадения счёта с константой в регистре OCR1B. Бит 4 - OCIE1A - Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует вызовом прерывания по вектору $00C (OC1Aaddr) на событие совпадения счёта с константой в регистре OCR1A. Бит 5 - TICIE1 - Если установлен этот бит и разрешены прерывания, разрешено прерывание захвата ТС1, расположенного по вектору $00A (ICP1addr).

AVR. Описание работы Timer/Counter0


Описание работы таймера/счётчика 0.
Прерывания от TC0


Таймер/счётчик 0 (TC0) представляет из себя 8-битный модуль, содержащий 3 регистра. В регистре TCNT0 происходит счёт импульсов. Регистр доступен как для чтения, так и для записи, т.е. можно задать некое начальное значение и ТС0 продолжит счёт от этого значения. Счёт идёт на увеличение. Скорость и режимы счёта можно задать с регистра TCCR0. Общий вид регистра TCCR0:

Тактовая частота процессора подаётся на вход схемы деления частоты ТС0. Делённая частота попадает на счётную схему. Режимы деления задаются в трёх младших битах регистра TCCR0:

Таким образом, если в эти три бита записаны 000, то ТС0 остановлен. Если 001, то ТС0 считает импульсы частоты процессора. И если один так процессора длится 1 мс, то в в TCNT0 значение будет увеличиваться каждую 1 мс. Если записано 101, то схема предделения будет тактовую частоту процессора делить на 1024, и один раз за 1024 такта процессора ТС0 будет увеличивать значение в TCNT0. External Clock Source - режим счёта внешних импульсов, поступающих на вывод T0.
Остальные биты позволяют устанавливать такие режимы счётчика, при которых он будет своё состояние показывать на выводe OC0.

Регистр OCR0 служит для задания значения, при достижении которого в режиме счёта, ТС0 генерирует прерывание.

Обработка прерываний от TC0

ТС0 при переполнении значения TCNT0 посылает процессору сигнал Timer/Counter 0 Overflow. Также процессору посылается сигнал Timer/Counter 0 Compare Match при совпадении значений в регистрах TCNT0 и OCR0. Реакция процессора на эти сигналы (вызов соответствующих прерываний) зависит от значения регистров TIMSK и флага I в Status регистре процессора.
Для задания реакции на события TC0 в регистре TIMSK служат два бита:

Бит 0 - TOIE0 - Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует на сигнал переполнения ТС0 и вызывает прерывание по вектору $012 (OVF0addr).
Бит 1 - OCIE0 - Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует вызовом прерывания по вектору $026 (OC0addr) на событие совпадения счёта с константой в регистре OCR0.

Микроконтроллеры AVR: Таймер/счетчик T1 (16 бит)

Характеристики таймера/счетчика T1 (16 бит):
  • Два независимых выхода по совпадению
  • Таймер сброса при совпадении
  • Один вход захвата
  • Блок шумоподавления входа захвата
  • Изменяемый период ШИМ сигнала
  • Фазовый корректор ШИМ сигнала
  • Изменяемый период ШИМ сигнала
  • Тактовый генератор
  • Три независимых источника прерывания

Регистры таймера/счетчика T1:

  • TCNT1 - счетный регистр таймера/счетчика T1 (16 бит)
  • OCR1A - регистр сравнения A (16 бит)
  • OCR1B - регистр сравнения B (16 бит)
  • TIMSK1 - регистр маски прерываний для таймера/счетчика T1
  • TIFR1 - регистр флагов прерываний для таймера/счетчика T1
  • TCCR1A - регистр управления A
  • TCCR1B - регистр управления B
  • TCCR1C - регистр управления C
  • ICR1 - регистр захвата (16 бит)
Источником тактового сигнала для таймера/счетчика T1 может быть как тактовый сигнал используемый для всего микроконтроллера с использованием предделителя, так и сигнал, поступающий на вход T1 (11 ножка). Если не выбрано ни одного источника тактового сигнала, то таймер/счетчик останавливается.

Регистр TCCR1A:

Режим работы таймера/счетчика T1 устанавливается регистрами TCCR1A и TCCR1B 

Биты COM1A1 (7) и COM1A0 (6) влияют на то, какой сигнал появится на выводе OC1A (15 ножка) при совпадении с A (совпадение значения счетного регистра TCNT1 со значением регистра сравнения OCR1A):

    1. Обычный режим

  • 00 - вывод OC1A не функционирует
  • 01 - изменение состояния вывода OC1A на противоположное при совпадении с A
  • 10 - сброс вывода OC1A в 0 при совпадении с A
  • 11 - установка вывода OC1A в 1 при совпадении с A
    2. Режим ШИМ
  • 00 - вывод OC1A не функционирует
  • 01 - если биты WGM13 - WGM10 установлены в (0000 - 1101), вывод OC1A не функционирует
  • 01 - если битыWGM13 - WGM10 установлены в 1110 или 1111, изменение состояния вывода OC0A на противоположное при совпадении с A
  • 10 - сброс вывода OC1A в 0 при совпадении с A, установка  вывода OC1A в 1 если регистр TCNT1 принимает значение 0x00 (неинверсный режим)
  • 11 - установка вывода OC1A в 1 при совпадении с A, установка  вывода OC1A в 0 если регистр TCNT1 принимает значение 0x00  (инверсный режим)

    3. Режим коррекции фазы ШИМ

  • 00 - вывод OC1A не функционирует
  • 01 - если биты WGM13 - WGM10 установлены в (0000 - 1100, 1010, 1100 - 1111), вывод OC1A не функционирует
  • 01 - если битыWGM13 - WGM10 установлены в 1101 или 1011, изменение состояния вывода OC1A на противоположное при совпадении с A
  • 10 - сброс вывода OC1A в 0 при совпадении с A во время увеличения значения счетчика, установка  вывода OC1A в 1  при совпадении с A во время уменьшения значения счетчика
  • 11 - установка вывода OC1A в 1 при совпадении с A во время увеличения значения счетчика, сброс  вывода OC1A в 0  при совпадении с A во время уменьшения значения счетчика

Биты COM1B1 (5) и COM1B0 (4) влияют на то, какой сигнал появится на выводе OC0B (12 ножка) при совпадении с B (совпадение значения счетного регистра TCNT1 со значением регистра сравнения OCR1B):

    1. Обычный режим

  • 00 - вывод OC1B не функционирует
  • 01 - изменение состояния вывода OC1B на противоположное при совпадении с B
  • 10 - сброс вывода OC1B в 0 при совпадении с B
  • 11 - установка вывода OC1B в 1 при совпадении с B
    2. Режим ШИМ
  • 00 - вывод OC1B не функционирует
  • 01 - вывод OC1B не функционирует
  • 10 - сброс вывода OC1B в 0 при совпадении с B, установка  вывода OC1B в 1 если регистр TCNT1 принимает значение 0x00 (неинверсный режим)
  • 11 - установка вывода OC1B в 1 при совпадении с B, установка  вывода OC1B в 0 если регистр TCNT1 принимает значение 0x00  (инверсный режим)

    3. Режим коррекции фазы ШИМ

  • 00 - вывод OC1B не функционирует
  • 01 - вывод OC1B не функционирует
  • 10 - сброс вывода OC1B в 0 при совпадении с B во время увеличения значения счетчика, установка  вывода OC1B в 1  при совпадении с B во время уменьшения значения счетчика
  • 11 - установка вывода OC1B в 1 при совпадении с B во время увеличения значения счетчика, сброс  вывода OC1B в 0  при совпадении с B во время уменьшения значения счетчика


Биты WGM13 (4) , WGM12 (3) регистра TCCR1B и биты WGM11 (1) , WGM10 (0) регистра TCCR1A устанавливают режим работы таймера/счетчика T1:

  • 0000 - обычный режим
  • 0001 - коррекция фазы PWM, 8-бит
  • 0010 - коррекция фазы PWM, 9-бит
  • 0011 - коррекция фазы PWM, 10-бит
  • 0100 - режим счета импульсов (OCR1A) (сброс при совпадении)
  • 0101 - PWM, 8-бит
  • 0110 - PWM, 9-бит
  • 0111 - PWM, 10-бит
  • 1000 - коррекция фазы и частоты PWM (ICR1)
  • 1001 - коррекция фазы и частоты PWM (OCR1A)
  • 1010 - коррекция фазы PWM (ICR1)
  • 1011 - коррекция фазы и частоты PWM (OCR1A)
  • 1100 - режим счета импульсов (ICR1) (сброс при совпадении)
  • 1101 - резерв
  • 1110 - PWM (ICR1)
  • 1111 - PWM (OCR1A)

Бит ICNC1 (7) регистра TCCR1B управляет схемой подавления помех блока захвата (0 - выключена / 1 - включена).
Бит ICES1 (6) регистра TCCR1B выбирает активный фронт регистра захвата (0 - по спадающему фронту сигнала / 1 - по нарастающему фронту сигнала).

Биты CS12 (2), CS11 (1), CS10 (0) регистра TCCR1B устанавливают режим тактирования и предделителя тактовой частоты таймера/счетчика T1:

  • 000 - таймер/счетчик T1 остановлен
  • 001 - тактовый генератор CLK
  • 010 - CLK/8
  • 011 - CLK/64
  • 100 - CLK/256
  • 101 - CLK/1024
  • 110 - внешний источник на выводе T1 (11 ножка) по спаду сигнала
  • 111 - внешний источник на выводе T1 (11 ножка) по возрастанию сигнала

Биты FOC1A (7) и FOC1B (6) регистра TCCR1С принудительно устанавливают значение на выводах OC1A и OC1B.

Регистр TIMSK1:

Управление прерываниями от таймера осуществляется в регистре TIMSK1.

Бит ICIE1 (5) разрешает прерывание по захвату, биты OCIE1B (2) и OCIE1A (1) разрешают прерывания при совпадении с A и B, бит TOIE1 (0) разрешает прерывание по переполнению при установке 1. Если в эти биты записать 0, прерывания от таймера/счетчика будут запрещены.

Также есть регистр флагов прерываний TIFR1, который показывает какое прерывание поступило от таймера/счетчика T0.

Регистр TIFR1:


Биты ICF1 (5), OCF1B (2), OCF1A (1) и TOV1 (0) устанавливаются в 1 в зависимости от того, какое прерывание поступило - захват, совпадение с A, B или переполнение.

Микроконтроллеры AVR: Таймер/счетчик T0 (8 бит)

Характеристики таймера/счетчика T0 (8 бит):
  • Два независимых выхода по совпадению
  • Таймер сброса при совпадении
  • Изменяемый период ШИМ сигнала
  • Фазовый корректор ШИМ сигнала
  • Тактовый генератор
  • Три независимых источника прерывания

Регистры таймера/счетчика T0:

  • TCNT0 - счетный регистр таймера/счетчика T0
  • OCR0A - регистр сравнения A
  • OCR0B - регистр сравнения B
  • TIMSK0 - регистр маски прерываний для таймера/счетчика T0
  • TIFR0 - регистр флагов прерываний для таймера/счетчика T0
  • TCCR0A - регистр управления A
  • TCCR0B - регистр управления B

Источником тактового сигнала для таймера/счетчика T0 может быть как тактовый сигнал используемый для всего микроконтроллера с использованием предделителя, так и сигнал, поступающий на вход T0 (6 ножка). Если не выбрано ни одного источника тактового сигнала, то таймер/счетчик останавливается. 

Режим работы таймера/счетчика T0 устанавливается регистрами TCCR0A и TCCR0B.

Регистр TCCR0A:


Биты COM0A1 (7) и COM0A0 (6) влияют на то, какой сигнал появится на выводе OC0A (12 ножка) при совпадении с A (совпадение значения счетного регистра TCNT0 со значением регистра сравнения OCR0A):

    1. Обычный режим

  • 00 - вывод OC0A не функционирует
  • 01 - изменение состояния вывода OC0A на противоположное при совпадении с A
  • 10 - сброс вывода OC0A в 0 при совпадении с A
  • 11 - установка вывода OC0A в 1 при совпадении с A
    2. Режим ШИМ
  • 00 - вывод OC0A не функционирует
  • 01 - если бит WGM02 регистра TCCR0B установлен в 0, вывод OC0A не функционирует
  • 01 - если бит WGM02 регистра TCCR0B установлен в 1, изменение состояния вывода OC0A на противоположное при совпадении с A
  • 10 - сброс вывода OC0A в 0 при совпадении с A, установка  вывода OC0A в 1 если регистр TCNT0 принимает значение 0x00 (неинверсный режим)
  • 11 - установка вывода OC0A в 1 при совпадении с A, установка  вывода OC0A в 0 если регистр TCNT0 принимает значение 0x00  (инверсный режим)

    3. Режим коррекции фазы ШИМ

  • 00 - вывод OC0A не функционирует
  • 01 - если бит WGM02 регистра TCCR0B установлен в 0, вывод OC0A не функционирует
  • 01 - если бит WGM02 регистра TCCR0B установлен в 0, изменение состояния вывода OC0A на противоположное
  • 10 - сброс вывода OC0A в 0 при совпадении с A во время увеличения значения счетчика, установка  вывода OC0A в 1  при совпадении с A во время уменьшения значения счетчика
  • 11 - установка вывода OC0A в 1 при совпадении с A во время увеличения значения счетчика, сброс  вывода OC0A в 0  при совпадении с A во время уменьшения значения счетчика

Биты COM0B1 (5) и COM0B0 (4) влияют на то, какой сигнал появится на выводе OC0B (11 ножка) при совпадении с B (совпадение значения счетного регистра TCNT0 со значением регистра сравнения OCR0B):

    1. Обычный режим

  • 00 - вывод OC0B не функционирует
  • 01 - изменение состояния вывода OC0B на противоположное при совпадении с B
  • 10 - сброс вывода OC0B в 0 при совпадении с B
  • 11 - установка вывода OC0B в 1 при совпадении с B
    2. Режим ШИМ
  • 00 - вывод OC0B не функционирует
  • 01 - резерв
  • 10 - сброс вывода OC0B в 0 при совпадении с B, установка  вывода OC0B в 1 если регистр TCNT0 принимает значение 0x00 (неинверсный режим)
  • 11 - установка вывода OC0B в 1 при совпадении с B, установка  вывода OC0B в 0 если регистр TCNT0 принимает значение 0x00  (инверсный режим)

    3. Режим коррекции фазы ШИМ

  • 00 - вывод OC0B не функционирует
  • 01 - резерв
  • 10 - сброс вывода OC0B в 0 при совпадении с B во время увеличения значения счетчика, установка  вывода OC0B в 1  при совпадении с B во время уменьшения значения счетчика
  • 11 - установка вывода OC0B в 1 при совпадении с B во время увеличения значения счетчика, сброс  вывода OC0B в 0  при совпадении с B во время уменьшения значения счетчика

Биты WGM01 (1) , WGM00 (0) регистра TCCR0A устанавливают режим работы таймера/счетчика T0:

  • 00 - обычный режим
  • 01 - режим коррекции фазы ШИМ
  • 10 - режим подсчета импульсов (сброс при совпадении)
  • 11 - режим ШИМ


Биты FOC0A (7) и FOC0B (6) регистра TCCR0B принудительно устанавливают значение на выводах OC0A и OC0B.

Биты CS02 (2), CS01 (1), CS00 (0) регистра TCCR0B устанавливают режим тактирования и предделителя тактовой частоты таймера/счетчика T0:

  • 000 - таймер/счетчик T0 остановлен
  • 001 - тактовый генератор CLK
  • 010 - CLK/8
  • 011 - CLK/64
  • 100 - CLK/256
  • 101 - CLK/1024
  • 110 - внешний источник на выводе T0 (6 ножка) по спаду сигнала
  • 111 - внешний источник на выводе T0 (6 ножка) по возрастанию сигнала
Управление прерываниями от таймера осуществляется в регистре TIMSK0.

Регистр TIMSK0:


Биты OCIE0B (2) и OCIE0A (1) разрешают прерывания при совпадении с A и B, а бит TOIE0 (0) разрешает прерывание по переполнению при установке 1. Если в эти биты записать 0, прерывания от таймера/счетчика будут запрещены.

Также есть регистр флагов прерываний TIFR0, который показывает какое прерывание поступило от таймера/счетчика T0.

Регистр TIFR0:


Биты OCF0B (2), OCF0A (1) и TOV0 (0) устанавливаются в 1 в зависимости от того, какое прерывание поступило - совпадение с A, B или переполнение.

Микроконтроллеры AVR: Таймер/счетчик T2 (8 бит)

Характеристики таймера/счетчика T2 (8 бит):
  • Два независимых выхода по совпадению 
  • Таймер сброса при совпадении
  • Изменяемый период ШИМ сигнала 
  • Фазовый корректор ШИМ сигнала
  • Тактовый генератор
  • Возможность работы от независимого внешнего часового тактового генератора 32 кГц
  • Три независимых источника прерывания
  • Делитель частоты 10-бит
  • Асинхронный режим

Регистры таймера/счетчика T2:

  • TCNT2 - счетный регистр таймера/счетчика T2
  • OCR2A - регистр сравнения A
  • OCR2B - регистр сравнения B
  • TIMSK2 - регистр маски прерываний для таймера/счетчика T2
  • TIFR2 - регистр флагов прерываний для таймера/счетчика T2
  • TCCR2A - регистр управления A
  • TCCR2B - регистр управления B
  • ASSR - регистр асинхронного режима 
  • GTCCR - главный регистр всех таймеров/счетчиков

Источником тактового сигнала для таймера/счетчика T2 может быть тактовый сигнал используемый для всего микроконтроллера с использованием предделителя. Если не выбран коэффициент деления, то таймер/счетчик останавливается. 

Режим работы таймера/счетчика T2 устанавливается регистрами TCCR2A и TCCR2B аналогично таймеру/счетчику T0.

Регистр TCCR2B:


Разница лишь в битах CS22 (2), CS21 (1), CS20 (0) регистра TCCR2B которые устанавливают режим тактирования.
  • 000 - таймер остановлен
  • 001 - CLK
  • 010 - CLK/8
  • 011 - CLK/32
  • 100 - CLK/64
  • 101 - CLK/128
  • 110 - CLK/256
  • 111 - CLK/1024
Также у таймера/счетчика есть асинхронный режим работы.

Регистр ASSR:


Бит EXCLK (6) регистра ASSR разрешает использование внешнего тактового сигнала от кварцевого резонатора 32 кГц при записи в него 1.

Бит  AS2 (5) регистра ASSR управляет способом тактирования (1 - от внешнего резонатора 32 кГц, подключенного к TOSC1 (9 ножка) / 0 - от внутреннего генератора CLK)/

Бит TCN2UB (4) регистра ASSR показывает доступен ли для записи регистр TCNT2 (1-недоступен / 0 - доступен).

Бит OCR2AUB (3) регистра ASSR показывает доступен ли для записи регистр OCR2A (1-недоступен / 0 - доступен).

Бит OCR2BUB (2) регистра ASSR показывает доступен ли для записи регистр OCR2B (1-недоступен / 0 - доступен).

Бит TCR2AUB (1) регистра ASSR показывает доступен ли для записи регистр TCCR2A (1-недоступен / 0 - доступен).

Бит TCR2BUB (0) регистра ASSR показывает доступен ли для записи регистр TCCR2B (1-недоступен / 0 - доступен).

Регистр GTCCR:

Бит PSRASY (1) регистра GTCCR сбрасывает предделитель таймера/счетчика T2 если установить в 1, после этого бит сбрасывается в 0  автоматически.

Бит PSRASYNC (0) регистра GTCCR сбрасывает предделитель таймера/счетчика T0 и T1 если установить в 1, после этого бит сбрасывается в 0  автоматически.

Бит TSM (0) регистра GTCCR запрещает автоматический сброс битов PSRASY и PSRASYNC регистра GTCCR.

ср. 8- AVR / 1 - TCCR1A

:

:


$ 2F (4F $)
COM1A1 COM1A0 COM1B1 COM1B0 ШИМ11 ШИМ10
TCCR1A
/
Ч / З Ч / З Ч / З Ч / З R R Ч / З Ч / З
  • Биты 7,6 - COM1A1, COM1A0: режим вывода сравнения 1A, биты 1 и 0 - 1A , 1 0
    COM1A1 COM1A0, / 1. OC1A (сравнение выхода A). Ввод / вывод, 1 (). 15.

15. 1

COM1X1 COM1X0
0 0 /1 OC1X
0 1 OC1X
1 0 OC1X ()
1 1 OC1X ()

: X = A B.

  • Биты 5,4 - COM1B1, COM1B0: режим вывода сравнения 1B, биты 1 и 0 - 1B , 1 0
    COM1B1 COM1B0, / 1. OC1B (сравнение выхода B). Ввод / вывод, 1 (). 15.
    . 19.
    COM1X1 / COM1X0 1 ТИМСК.
  • Биты 3..2 - Res: Зарезервированные биты -
    ATmega603 / 103 0.
  • Биты 1..0 - PWM11, PWM10: биты выбора широтно-импульсного модулятора -
    , 16. . / 1.

16.

ШИМ11 ШИМ10 Описание
0 0 /1
0 1 /1 8-
1 0 /1 9–
1 1 /1 10–



- - DOC - - - - - - -

Nissan Malaysia - Рассрочка

Корпоративный профиль

TC Capital Resources Sdn Bhd (TCCR) была зарегистрирована в 2004 году как дочерняя компания, полностью принадлежащая Tan Chong Motor Holdings Bhd (TCMH), компании, зарегистрированной на бирже Бурса Малайзия.Основными видами деятельности TCCR являются предоставление комплексных пакетов финансирования рассрочки платежа, особенно для автомобилей Nissan, лизинга и личного кредита.

Услуги

TCCR предлагает финансирование в рассрочку (HP) для легковых, грузовых автомобилей, оборудования или техники с конкурентоспособными ставками финансирования.

Индивидуальные пакеты автофинансирования предлагаются для автомобилей Nissan в Малайзии со следующими преимуществами:

  • Конкурентоспособные и часто самые низкие ставки финансирования для автомобилей Nissan на рынке
  • Беспроблемная подача заявки на финансирование и ее обработка для более быстрого утверждения

FAQ

Q1: Какова максимальная маржа по финансам и срокам владения ссудой?

TCCR предлагает максимум 90% финансирования на срок до 7 лет, и мы можем рассмотреть вопрос на 8 и 9 лет в каждом конкретном случае.

Q2: Могу ли я изменить сумму ежемесячного платежа, если у меня возникнут финансовые трудности?

TCCR готов и может организовать через Соглашение HP о переносе сроков погашения задолженности по счету меньший взнос и более длительный срок ссуды по запросу в письме. Это должно быть одобрено руководством, и обычно это относится к клиенту, производящему платежи за период минимум 1-2 года, а не к новому нанимателю.

Q3: Когда TCCR может вернуть мой автомобиль?

TCCR имеет право вступить во владение автомобилем, указанным в договоре рассрочки платежа, в случае двух последовательных невыполнений платежа или невыполнения обязательств по последнему платежу.TCCR направит нанимателю уведомление в письменной форме по форме, указанной в 4-м приложении к Закону о рассрочке покупки 1967 года, и срок, установленный в уведомлении, истек. Срок не может быть менее 21 дня после вручения уведомления. Короче говоря, TCCR будет действовать в соответствии с Законом HP, чтобы вернуть себе задолженность по счету через 2 месяца и 21 день.

Q4: Должен ли я платить ежемесячный взнос в случае кражи моего автомобиля?

Да. Это связано с тем, что ваша обязанность платить ежемесячные взносы не прекращается с потерей вашего автомобиля, и вам необходимо подать заявление в полицию и обратиться в страховую компанию с заявлением о страховании. Кстати, вы можете отказаться от ежемесячного платежа, если сумма страховых требований может покрыть все ваши невыплаченные платежи по ссуде HP + другие расходы (если таковые имеются).

Q5: Если я заплачу свой ежемесячный взнос после установленной даты, будет ли TCCR взимать проценты за просрочку?

Да. С вас будет взиматься процентная ставка в размере 8% годовых за количество дней, которое будет основано на конкретной ежемесячной сумме взноса, указанной в Законе о рассрочке покупки 1967 года.

Q6: Может ли иностранец подать заявку на ссуду HP?

TCCR готов рассмотреть заявки от иностранцев, и TCCR будет ограничиваться минимальным размером бюджета ниже 70%, и обычно требуется местный гарант. Окончательное решение еще предстоит пройти через обычный процесс кредитной оценки.

Q7: Может ли иностранец, одобренный по схеме My2ndHome, подать заявку на получение кредита HP?

Да и он похож на Q8. Требуется обычный документ, удостоверяющий личность с документальным подтверждением участия в программе My2ndHome.

Q8: Если я подам ссуду HP, а затем отклоню ее, могу ли я подать апелляцию?

Назначенный специалист по кредитной оценке / руководитель свяжется с вами и попытается получить дополнительные документы о доходах до отказа. Да, вы можете подать апелляцию в случае, если вы получили новые / дополнительные документы о доходах / личные сбережения, чтобы поддержать нашу повторную оценку.

Q9: Могу ли я профинансировать покупку автомобиля с помощью 100% кредита HP?

Нет, это запрещено действующим законом HP. Максимальный размер MOF составляет 90%, при этом необходим первоначальный взнос в размере 10%.

Q10: Может ли гарант ссуды HP быть неродственником, например. Друзья?

TCCR предпочитает членов семьи и квалифицированного поручителя. Не родственники и друзья не приветствуются, но могут рассматриваться.

Q11: Может ли владелец Red IC с PR-картой подать заявку на ссуду HP?

Держатель карты PR может заключить соглашение HP, и оно действительно, но не для держателя красной карты IC.

Q11: Может ли владелец Red IC с PR-картой подать заявку на ссуду HP?

IC является обязательным, но водительские права не требуются, но желательно. TCCR потребуется знать логику покупки автомобиля без водительских прав для этого конкретного клиента, что регулируется правилами и положениями J.P.J.

Узнать больше

Suche Меню Menue

IT Новости

  • Новый стикер
  • Разработчик Heise
  • Heise Netze
  • Heise с открытым исходным кодом
  • Heise Security

Интернет-журнал

  • Heise +
  • Telepolis
  • Heise Autos
  • TechStage
  • чаевые + хитрости

Журнал

  • c't
  • iX
  • Обзор технологий
  • c't Fotografie
  • Mac и я
  • Сделать
  • im Browser lesen и Artikel-Archiv

Сервисы

  • Работа в Stellenmarkt heise
  • Weiterbildung
  • heise Скачать
  • Preisvergleich
  • Технический документ / Интернет-трансляции
  • DSL-Vergleich
  • Netzwerk-Инструменты
  • Spielen bei Heise
  • Loseblattwerke
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *