Eruman писал(а):
И еще почему
#include "../Wire/Wire.h"
Какая-то другая библиотека wire.h используется?
roboforum.ruТехнический форум по робототехнике. |
|
|
|
Eruman писал(а):
Реклама | ||||
|
|
|||
Eruman писал(а):Пример рабочий 100%. Ошибки могут возникать при несовместимости библиотек, например, из-за разных версий. IDE 1.6.9 Скопировал из текстового поля в сообщении forum86/topic16626-30.html#p357516
Все собралось корректно.
А первая версия, без EEPROM, собирается?
Реклама | ||||
|
|
|||
//#define needEEPROM 1 // подключать ли внешнюю ППЗУ? (1 - внешняя, 0 - ПЗУ МК)
//#define sizeROM_over16 1 // ППЗУ>2K? ( 1 для 24с64, 0 для 24с16)
//...
#ifdef needEEPROM
#include <Wire.h>
#else
#include <EEPROM.h>
#endif
void writeEEPROM(unsigned int eeaddress, byte data )
{
#ifdef needEEPROM
Wire.beginTransmission(disk1);
#ifdef sizeROM_over16
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
#else
Wire.write((int)(eeaddress));
#endif
Wire.write(data);
Wire.endTransmission();
//delay(15);
#else
EEPROM.write((int)eeaddress,(byte)data);
#endif
}
byte readEEPROM(unsigned int eeaddress )
{
byte rdata = 0xFF;
#ifdef needEEPROM
Wire.beginTransmission(disk1);
#ifdef sizeROM_over16
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
#else
Wire.write((int)(eeaddress));
#endif
Wire.endTransmission();
Wire.requestFrom(disk1, 1);
// if (Wire.read()) rdata = Wire.read();
rdata = Wire.read();
#else
rdata = EEPROM.read( (int)(eeaddress) );
#endif
return rdata;
}
Eruman писал(а):Действительно, вспомнил, я правил в либе эти строки.
В программе обращения настроены на две функции работы с ППЗУ
Eruman писал(а):Запустил Бейсик на stm32f103.
Вернуться в Arduino и другие Xduino
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0