Внутренний генератор, частотой 8 МГц, не достаточно стабилен и в зависимости от партии микроконтроллеров его частота может изменяться от 7.3 до 8.1 МГц. Для его подстройки в микроконтроллере есть специальный регистр OSCCAL (8 бит). С увеличением значения, записанного в этот регистр увеличивается и тактовая частота в обозначенных выше пределах.
Также микроконтроллер ATmega328 имеет внутренний предделитель. Управление предделителем осуществляется через регистр CLKPR:
Бит CLKPCE (7) управляет изменением значения предделителя. Для изменения значения предделителя сначала в него необходимо записать 1, при этом стоит учесть, что в остальные биты данного регистра должно быть записано значение 0. После этого в течении четырех машинных циклов необходимо изменить значение предделителя записью соответствующих битов. По прошествии четырех машинных циклов бит CLKPCE сбрасывается в 0.
Биты CLKPS3 - CLKPS0 (3 - 0) устанавливают значение деления тактовой частоты предделителем:
Также микроконтроллер ATmega328 имеет внутренний предделитель. Управление предделителем осуществляется через регистр CLKPR:
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
CLKPCE
|
-
|
-
|
-
|
CLKPS3
|
CLKPS2
|
CLKPS1
|
CLKPS0
|
Бит CLKPCE (7) управляет изменением значения предделителя. Для изменения значения предделителя сначала в него необходимо записать 1, при этом стоит учесть, что в остальные биты данного регистра должно быть записано значение 0. После этого в течении четырех машинных циклов необходимо изменить значение предделителя записью соответствующих битов. По прошествии четырех машинных циклов бит CLKPCE сбрасывается в 0.
Биты CLKPS3 - CLKPS0 (3 - 0) устанавливают значение деления тактовой частоты предделителем:
- 0000 - тактовая частота без изменений
- 0001 - CLK/2
- 0010 - CLK/4
- 0011 - CLK/8
- 0100 - CLK/16
- 0101 - CLK/32
- 0110 - CLK/64
- 0111 - CLK/128
- 1000 - CLK/256
- 1001 - 1111 - резерв
Комментариев нет:
Отправить комментарий