а у тебя есть наработки, чтобы и SOFT SPI можно было использовать?
У меня нету. Посмотри в этой библиотеке, там как раз софтовый
void LedControl::spiTransfer(int addr, volatile byte opcode, volatile byte data) {
//Create an array with the data to shift out
int offset=addr*2;
int maxbytes=maxDevices*2;
for(int i=0;i<maxbytes;i++)
spidata[i]=(byte)0;
//put our device data into the array
spidata[offset+1]=opcode;
spidata[offset]=data;
//enable the line
digitalWrite(SPI_CS,LOW);
//Now shift out the data
for(int i=maxbytes;i>0;i--)
shiftOut(SPI_MOSI,SPI_CLK,MSBFIRST,spidata[i-1]);
//latch the data onto the display
digitalWrite(SPI_CS,HIGH);
}
щас спрошу дикую дичь, ссаными тряпками не кидаться…
Вот у нас есть объект SPI, библиотеке он требуется, а библиотек может быть белее чем одна, то-есть…КАЖДАЯ БИБЛИОТЕКА ЧТОБЫ НЕ БЫЛО КОНФЛИКТА должна использовать свой экземпляр этой библиотеки, со своими свойствами этого экземпляра…вот ни разу не вижу как это обеспечивается в моём поделии, что-то тут явно у меня косяк…
вопрос - как это правильно делается???
Я ничего не понял.
Объект - это экземпляр класса. Ни больше, ни меньше.
Речь наверное о возможности подключения, например нескольких дисплеев, библиотечным способом?
не только, вот у меня в скетче используется несколько устройств работающих по SPI, при этом SPI настраивается в разных режимах, библиотека должна обеспечивать каждое устройство своим экземпляром SPI я так понимаю, со своими настройками и каждое устройство должно обрабатываться своим экземпляром SPI
Если SPI железный и физически один, то он один на всех
я об экземпляре обработчика, должен жеж быть свой,а вот как они не конфликтуют в борьбе за железо - ума не приложу
Речь наверное идёт о переключении скоростей при переходе между потребителями?
Скорее всего по очереди идут
Никому не должен, объект SPI - глобальный.
Чего им конфликтовать, если пин CS у каждого свой.
А дальше все в руках программиста
а остальные, одному экземпляру пины дата и синхронизации требую 4 мегагерца, другому 50 килогерц, и режимы разные от 0 до 2… а если экземпляр вызван через прерывание…
Ну так перенастраивать при подключении другого элемента и так каждый раз… А вот вас не смущает, что в библиотеках CS передёргивают при каждом байте, а по идее должны при переходе от уст-ва к устройству?
Остальные пины - общие
А это проблемы разработчика устройства ))
А время на обработку полученного устройству давать не нужно? ))
Конечно нет. Такого он сказать не мог. Это Леонид Ильич.
Это не политика, это история
Ускорение, ускорение и ещё раз ускорение чтобы через 6 лет Союз кирдыкнулся. Это Горбачёв.
Через механизм транзакций, который поддерживает библиотека SPI. А вот если Ваши библиотеки его не используют, то сами себе злобные буратины.
Можно пример?