Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Unsigned int offset, char data);

Int Show5DigitLedWithDot(int pos,int data) | Int TimerClose (void); | Unsigned long count); |


Читайте также:
  1. Unsigned long count);

Входные параметры функции:

seg – указывает сектор флзш-памяти и может принимать такие же значения, что и функция FlashErase.

offset - задает смещение внутри сектора. Может принимать значения от 0 до 65535.

data – определяет записываемый байт (от 0 до 255).

При успешной записи функция возвращает 0.

Как было сказано, значение бита флэш-памяти может быть изменен только от 1 на 0. Таким образом, если значение байта равен 0xFF, то можно записать в этот байт любые данные. Однако, если значение байт а равен 0х01, то вы можете изменить его только на 0х00.

Функция FlashWrite не контролирует запись. Но если вы изменяете бит от 0 на 1, то эта функция возвращает ошибку TimeOut (-5). После вызова функции FlashErase вы опять можете записывать любые данные.

 

Чтение данных из флэш-памяти

Для чтения данных из флэш-памяти следует вызывать функцию:

int FlashRead (unsigned int seg, unsigned int offset)

Первый параметр указывает номер сегмента, а второй параметр смещение внутри сегмента. Функция возвращает значение указанного байта.

Для прямой адресации байта (Сегмент:Смещение) можно использовать дальний указатель адреса ячейки памяти. Для этого следует использовать макроподстановку MK_FP. Например,

char far *ByteData, databyte;
int far *IntData, dataint;
long far *LongData, datalong;

ByteData=(char far *)MK_FP(segment, offset);
databyte=*ByteData;


IntData=(int far *)MK_FP(segment, offset);
dataint=*IntData;


LongData=(long far *)MK_FP(segment, offset);
datalong=*LongData;

 

Пример. Запись числа типа integer на флэш-память на сегмент D000 со смещением 0х1234.

int data = 0xAA55, data2;

char *dataptr;

int *dataptr2;

dataptr = (char*) &data;

//Записываем побайтно

FlashWrite(0xd000, 0x1234, *dataptr++);

FlashWrite(0xd000, 0х1235, *dataptr);

//Чтение данных из флэш памяти

dataptr = (char*) &data2;

*dataptr = FlashRead (0xd000, 0x1234);

*(dataptr+1) = FlashRead(0xd000, 0x1235);

//Чтение данных путем прямой адресации

dataptr2 = (int far*) _MK_FP(0xd000, 01234);

data2 = *dataptr2;

 


Дата добавления: 2015-08-03; просмотров: 55 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Void main(void)| января 1995г.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)