Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Глава 3. Подключение EEPROM к MSP430 с помощью интерфейса PC



2. Исходный код для MSP430

Этот пример программы показывает использование аппаратного модуля 12С микроконтроллера MSP430F169 для работы с EEPROM памятью по шине I2C. В зависимости от объёма микросхемы памяти EEPROM адресация может видоизменяться. Существуют разновидности микросхем памяти EEPROM, ко­торые используют только один байт для адресации (объём памяти 256 Байт или менее). В приведенном ниже примере для адресации используется два байта. Показаны примеры на языке С и на ассемблере, функции их идентичны. Под­робное описание модуля I2C микроконтроллеров MSP430 приведено в [2].

Файлы "l2Croutines.c" и "l2Croutines.s43" могут быть использованы в ка­честве библиотек. Они содержат следующие функции:

• lnitl2C()

Инициализация аппаратного модуля I2C микроконтроллера MSP430.

• EEPROM_ByteWrite(<address>, <data>)

Выполнение команды Запись Байта (Byte Write). Перед запуском указы­вается адрес и данные, которые следует записать.

• EEPROM_AckPolling();

Опрос Подтверждения (Acknowledge Polling) используется для опреде­ления окончания процесса записи в EEPROM. Функцию следует вызы­вать после записи данных в EEPROM.

• Result = EEPROM_RandomRead(<address>)

Команда Чтение по Произвольному Адресу (Random Read) позволяет чи­тать содержимое ячейки памяти EEPROM с указанным адресом.

• Result = EEPROM_CurrentAddressRead()

Чтение по Текущему Адресу (Current Address Read), используется внут­ренний указатель адреса EEPROM. После выполнения операций чтения и записи внутренний указатель автоматически инкрементируется.

В данном примере показано использование функций из файлов "l2Croutines.c" и "l2Croutines.s43":

#include <msp430xl6x.h>

/*--- внешние функции файла «I2Croutines.c» ---- */

extern void InitI2C(void);

extern void EEPROM_ByteWrite(unsigned int Address,

unsigned char Data);

extern unsigned char EEPROM_RandomRead(unsigned int

Address);

extern unsigned char EEPROM CurrentAddressRead(void);

Библиотека Компэла 43


InsitojmInts /. Общие вопросы

extern void EEPROM_AckPolling(void);

/*------ тело программы-------------------------- */

void main(void)

{... // Инициализация

InitI2C(); // Инициализация модуля 12С

EINT(); // Разрешение прерываний

EEPROM_ByteWrite(0x0000, 0x12);

EEPROM AckPolling(); // Ожидание завершения

// цикла записи EEPROM EEPROM_ByteWrite(0x0001, 0x34); EEPROM_AckPolling(); // Ожидание завершения

// цикла записи EEPROM EEPROM_ByteWrite(0x0002, 0x56); EEPROM_AckPolling(); // Ожидание завершения

// цикла записи EEPROM

Data[0] = EEPROM_RandomRead(0x0000); // Чтение

// по адресу 0x0000

Data[l] = EEPROM_CurrentAddressRead(); // Чтение

// по адресу 0x0001

Data[2] = EEPROM_CurrentAddressRead(); // Чтение

// по адресу 0x0002





Дата публикования: 2014-11-18; Прочитано: 804 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...