Доступ E2PROM на Atmel 89S8252 від мови C

B

bobcat1

Guest
Доступ E2PROM на Atmel 89S8252 від мови C
Цей приклад написаний на А * ЕМС компілятор Cпс завантажити тільки один файл другого виріс loadded по Містек

користуватисяБобі
Вибачте, але Ви повинні увійти, щоб переглянути це вкладення

 
Інші функції:

/************************************************* ***************************/
/ * EEpromWrite (адреса, значення) * /
/************************************************* ***************************/
непідписані символ EEpromWrite (непідписані адресу INT, беззнаковое значення INT)
(
непідписані символ помилятися, LSB, MSB;
непідписаних b_addr хпЬ;

b_addr = адреса * 2;

помилятися = FALSE;

якщо (адреса> 0x03FF) Err = TRUE; / * адреса з діапазону * /
ще
(
TR0 = 0 / * TR0: зупинити лічильник Т0 * /
EA = 0 / * Вимкнути всі Interrups * /

WMCON | = EEMEN / * * дозволити доступ EEPROM /
WMCON | = EEMWE / * дозволить EEPROM пише * /

LSB = значення% 256 / * Розрахунок LSB байт * /
XBYTE [b_addr] = LSB / * Створити LSB байт * /
а (! (WMCON і WDTRST)); / * Почекайте до закінчення запису EEPROM * /

MSB = значення / 256 / * Розрахунок MSB байт * /
XBYTE [b_addr 1] = MSB / * Створити MSB байт * /
а (! (WMCON і WDTRST)); / * Почекайте до закінчення запису EEPROM * /

якщо (LSB! = XBYTE [b_addr]) помилятися = TRUE; / * Порівняйте дані * /
якщо (MSB! = XBYTE [b_addr 1]) помилятися = TRUE; / * Порівняйте дані * /

WMCON = EEMWE / * відключити EEPROM пише * /
WMCON = EEMEN / * відключити доступ * EEPROM /

END_SAMP = 0 / * Seted після Nsamples читання * /
sample_count = 0; / * Clear зразків лічильника * /

EA = 1 / * Включити всі Interrups * /
TR0 = 1 / * TR0: Запуск лічильника Т0 * /
)

прибутковості (ERR);
)

/************************************************* ***************************/
/ * EEpromRead (адреса) - читання 2 байтів з EEPROM * Internaal /
/ * Вхід: непідписаних Int адреса - адреса першого байта читати * /
/ * Висновок: непідписаних Int значення - значення MSB = * 256 LSB *;
/************************************************* ***************************/
непідписаних Int EEpromRead (непідписані адресу INT)
(
b_addr непідписаних Int, вартість;

b_addr = адреса * 2;

EA = 0x00; / * Вимкнути всі Interrups * /

WMCON | = EEMEN / * * дозволити доступ EEPROM /

значення = XBYTE [b_addr 1];
Значення *= 256;
значення = XBYTE [b_addr];

WMCON = EEMEN / * відключити доступ * EEPROM /

EA = 0x01; / * Включити всі Interrups * /

повертається значення;
)

 
Ці додати корисні, спасибі, хлопці.

Ескімосів, Я новачок у C, але should'nt EEpromWrite бути непідписаних Int, якщо ви пишете 16 біт?.

Крім того, ця вимога зупинити лічильник 0.Що робити, якщо RTOS використовує це?.

 

Welcome to EDABoard.com

Sponsor

Back
Top