AT24CM02
03.12.2018, 15:31
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: AT24CM02
Saleae Logic на алиэкспресс
__________________
Глаза боятся,а руки делают.
|
|
|
|
Сказали "Спасибо" CERGEI1982
|
|
|
04.12.2018, 13:16
|
|
|
Прописка
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: AT24CM02
Коллеги, не валяется у кого то код в МPLAB-е( XC8 ), для обращения с AT24CM02?
|
|
|
|
08.12.2018, 22:46
|
|
|
Прописка
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: AT24CM02
Решено.
Проблема была в том, что адрес в программе не совпадал с физическим адресом устройства. (В комментах то, что было)
//uint16_t EEPROM_DEVICE_ADDRESS = (0xA8 ›› 1); // if logical 1 on PIN3 of EEPROM device
uint16_t EEPROM_DEVICE_ADDRESS = (0xA0 ›› 1);
static void setDeviceAddress(uint8_t MSBAddress)
{
switch(MSBAddress)
{
// case 0x0:
// EEPROM_DEVICE_ADDRESS = (0xA8 ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// case 0x1:
// EEPROM_DEVICE_ADDRESS = (0xAA ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// case 0x2:
// EEPROM_DEVICE_ADDRESS = (0xAC ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// case 0x3:
// EEPROM_DEVICE_ADDRESS = (0xAE ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// default:
// break;
case 0x0:
EEPROM_DEVICE_ADDRESS = (0xA0 ›› 1);
break;
case 0x1:
EEPROM_DEVICE_ADDRESS = (0xA2 ›› 1);
break;
case 0x2:
EEPROM_DEVICE_ADDRESS = (0xA4 ›› 1);
break;
case 0x3:
EEPROM_DEVICE_ADDRESS = (0xA6 ›› 1);
break;
default:
break;
}
}
static void resetDeviceAddress()
{
switch(EEPROM_DEVICE_ADDRESS)
{
// case 0x54: // if logical 1 on PIN3 of EEPROM device
// EEPROM_DEVICE_ADDRESS = (0xAA ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// case 0x55: // if logical 1 on PIN3 of EEPROM device
// EEPROM_DEVICE_ADDRESS = (0xAC ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// case 0x56: // if logical 1 on PIN3 of EEPROM device
// EEPROM_DEVICE_ADDRESS = (0xAE ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// case 0x57: // if logical 1 on PIN3 of EEPROM device
// EEPROM_DEVICE_ADDRESS = (0xA8 ›› 1); // if logical 1 on PIN3 of EEPROM device
// break;
// default:
// break;
case 0x50:
EEPROM_DEVICE_ADDRESS = (0xA2 ›› 1);
break;
case 0x51:
EEPROM_DEVICE_ADDRESS = (0xA4 ›› 1);
break;
case 0x52:
EEPROM_DEVICE_ADDRESS = (0xA6 ›› 1);
break;
case 0x53:
EEPROM_DEVICE_ADDRESS = (0xA0 ›› 1);
break;
default:
break;
}
}
Последний раз редактировалось stubiflex; 08.12.2018 в 22:53.
|
|
|
|
08.12.2018, 22:51
|
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,293
Сказал спасибо: 11,862
Сказали Спасибо 4,160 раз(а) в 3,178 сообщении(ях)
|
Re: AT24CM02
stubiflex, таки константами сие надо в #define объявлять и потом не ползать по всему коду с правками при необходимости - только в заголовке. Заодно читабельность кода сильно улучшается.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:45.
|
|