Память программ, память данных, EEPROM

Документация

Память данных

Память данных предназначена для работы с данными (чтение и запись данных), которые используются в программе-прошивке  микроконтроллера  ATmega8. Память данных является  энергозависимой. Это значит, что  при отключении питания микроконтроллера все данные в ней будут потеряны. Ниже изображена структура  памяти данных.

Область статической памяти SRAM (Static Random Access Memory) начинается с адреса 0x060. Более подробно о SRAM можно прочитать . В микроконтроллерах ATmega8 размер  статической памяти составляет 1 kb, но  при необходимости он может  быть увеличен до 64kb с помощью внешних блоков памяти (порты A и  С при этом окажутся занятыми -  они будут применяться для передачи данных и  адресов). Для этого необходимо установить сельмой разряд регистра MCUCR в лог 1. SRAM используется для  хранения данных, которые не уместились в рабочих регистрах, а  также для организации программного стека (особой области памяти, используемой процессором для хранения адресов возврата из подпрограмм, промежуточных вычисление  и т.д)

Область регистров общего назначения (рабочих регистров) используется для хранения переменных  и указателей. В микроконтроллере mega8  область рабочих регистров состоит из 32-х восьмиразрядных  регистров (диапазон адресов 0x000-0x01F). Если прошивка микроконтроллера пишется на языке С, то обращаться к этим регистрам обычно не требуется (хотя к ним можно обратиться при помощи ассемблерных вставок  в С-программу).

Регистры ввода/вывода микроконтроллера mega8  включают в  себя  64 регистра, которые используются для управления переферийными устройствами, а также для хранения данных переферийных устройств. К этим регистрам можно обращаться по имени (самый распространённый вариант в при разработке на языке C), по адресу ввода/вывода, по адресу  в SRAM.

Имя регистра Адрес ввода/вывода Адрес SRAM Описание
ACSR     Регист управления и состояния аналогового компоратора
UBRR     Регист скорости передачи данных через UART
UCR     Регистр управления приёмопередатчиком UART
USR      Регистр состояния приёмопередатчиком UART
UDR      Регистр данных приёмопередатчиком UART
SPCR      Регистр управления интерфейсом SPI
SPSR      Регистр  состояния интерфейса SPI
SPDR      Регистр ввода/вывода данных интерфейса SPI
PIND      Состояние выводов порта D
DDRD      Регистр направления передачи данных порта D
PORTD      Регистр данных порта D
PINC      Состояние выводов порта С
DDRC       Регистр направления передачи данных порта C
PORTC      Регистр данных порта С
PINB      Состояние выводов порта B
DDRB       Регистр направления передачи данных порта B
PORTB       Регистр данных порта B
PINA      Состояние выводов порта А
DDRA       Регистр направления передачи данных порта A
PORTA       Регистр данных порта A
EECR      Регистр управления памяти EEPROM
EEDR      Регистр данных  памяти EEPROM
EEARL      Регистр адреса  памяти EEPROM (младший байт)
EEARH       Регистр адреса  памяти EEPROM (старший байт)
WDTCR      Регистр управления сторожевым таймером
ICR1L      Регистр захвата таймера/счётчика T/C1 (младший байт)
ICR1H      Регистр захвата таймера/счётчика T/C1 (старший байт)
OCR1BL      Регистр сравнения B таймера T/C1 (младший байт)
OCR1BH      Регистр сравнения B таймера T/C1 (старший байт)
OCR1AL       Регистр сравнения A таймера T/C1 (младший байт)
OCR1AH      Регистр сравнения A таймера T/C1 (старший байт)
TCNT1L      Счётный регистр таймера/счётчика T/C1 (младший байт)
TCNT1H      Счётный регистр таймера/счётчика T/C1 (старший байт)
TCCR1B       Регистр управления B  таймера/счётчика T/C1
TCCR1A      Регистр управления А   таймера/счётчика T/C1
TCNT0      Счётный регистр  таймера/счётчика T/C0
TCCR0      Регистр управления таймера/счётчика T/C0
MCUCR      Регист управления микроконтроллером
TIFR      Регистр  флагов прерывания от таймеров/счётчиков
TIMSK      Регист маскирования прерываний от таймеров
GIFR      Общий регистр флагов прерываний
GIMSK      Общий регистр маскирования прерываний
SPL      Указатель стека (младший байт)
SPH      Указатель стека (старший байт)
SREG      Регистр состояния

Если у вас есть какие-то замечания по этому документу или что-то осталось непонятно, то вы можете оставить свой отзыв или вопрос

Комментарии (Ваш комментарий будет первым! :))

Анонимная отправка сообщений запрещена! Пожалуйста зарегистрируйтесь