Страница 1 из 1
Обращение к переменной по интерфейсу SPI (TWI),создание типа
Добавлено: Ср сен 28, 2011 03:35:40
kotbimigot
[Всем большое спасибо. ТЕМА ЗАКРЫТА!]
Здравствуйте! Как создать тип переменной в CVAVR2, чтобы при обращении к переменной этого типа, находящейся в микросхеме памяти, по интерфейсу SPI (или TWI), компилятор сам "понимал", что переменная не в его ОЗУ или Flash? То есть при компиляции, встречая в тексте программы переменную этого типа, компилятор должен использовать соответственно команды чтения/записи по SPI (TWI). Как прописать такой тип?
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 03:36:46
SII
Такое невозможно.
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 05:50:32
kotbimigot
если мы чего-то не знаем - не значит, что этого не существует
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 07:22:28
asteroid7
Можно через __declspec, если компилятор это поддерживает. Сомневаюсь.
Или через классы и "operator". В конструкторе задаются параметры переменной. Реализации обращений к SPI TWI нужно дописать.
Что то типа такого:
Код: Выделить всё
class MySpi
{
private:
int address;
public:
//write
void operator = ( char data )
{
//...
SPDR = address;
//...
SPDR = data;
}
//read
operator char ()
{
//...
SPDR = address;
//...
return SPDR;
}
public:
MySpi( int adr ) { address = adr; }
~MySpi() { /* тут, например, остановить SPI TWI */ }
};
void main( void )
{
MySpi var( 50 );
var = 5;
PORTB = var;
}
Подобное работает в IAR-е. Для CV не проверялось

Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 07:41:30
Мастер Ломастер
а CV уже С++ поддерживает?!
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 15:37:33
kotbimigot
про IAR нагуглилось, да
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 16:23:54
O-LED
а вообще где можно почитать как работать с внешней еепром памятью??
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 16:34:30
SII
kotbimigot писал(а):если мы чего-то не знаем - не значит, что этого не существует
Ещё раз: такое невозможно. Память, подключаемая через SPI или TWI (I2C), с точки зрения процессора является не памятью, а внешним устройством. К ячейкам такой памяти он обращаться не умеет в принципе, поскольку этих ячеек с точки зрения процессора попросту не существует. Кроме того, у разных типов памяти, подключаемых по одному интерфейсу, могут быть разные принципы работы (например, к SPI можно подключить и микросхему DataFlash, и SD-карту, однако программно работа с ними выполняется совершенно по-разному). Наконец, встроенные в один тип МК контроллеры SPI и I2C могут отличаться от таковых у другого типа МК даже одного производителя (а уж разных производителей -- и подавно, что в полной мере проявляется у ARMов), и учесть все эти нюансы в компиляторе попросту невозможно.
Единственный способ сымитировать работу с такими устройствами -- это создать класс, который благодаря перегрузке операторов может "прикидываться" массивом, и объявить переменную такого типа. Однако это -- отнюдь не простая задача, не говоря уже о том, что это -- извращение.
В общем, лучше хорошенько изучите, что такое SPI и I2C, как работают с их контроллерами (напрямую, а не через созданные кем-то библиотеки), что из себя представляют микросхемы памяти, подключаемые через эти интерфейсы, ну а в первую очередь -- ассемблер. Не разобравшись с этими вещами, Вы просто не будете понимать, как в действительности работает "железо" и какая связь между программой, написанной на языке высокого уровня (например, на Си), и реальным кодом, выполняемым процессором.
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 17:48:28
kotbimigot
SII писал(а):лучше хорошенько изучите, что такое SPI и I2C, как работают с их контроллерами (напрямую, а не через созданные кем-то библиотеки), что из себя представляют микросхемы памяти, подключаемые через эти интерфейсы, ну а в первую очередь -- ассемблер. Не разобравшись с этими вещами, Вы просто не будете понимать, как в действительности работает "железо" и какая связь между программой, написанной на языке высокого уровня (например, на Си), и реальным кодом, выполняемым процессором.
ах, спасибо, хорошо, положите на комод
что-то вы мне в протеусе посимулить не посоветовали, тоже пониманию хорошо помогает
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 18:06:31
Аlex
ах, спасибо, хорошо, положите на комод
kotbimigot, я бы на Вашем месте тон подопустил немного и прислушался бы к тому, что Вам говорят.
Уверены в том, что это реально - факты в студию. А слова типа - "это возможно и идите все на ...", оставьте при себе.
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 18:15:43
kotbimigot
Всем спасибо
Уже курю даташит на предмет подключения External SRAM
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Ср сен 28, 2011 18:17:20
kotbimigot
Аlex писал(а): идите все на ..."
сорри, не моё!
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Чт сен 29, 2011 07:15:51
asteroid7
kotbimigot писал(а):про IAR нагуглилось, да
А ты наблюдательный )
Ну гугли, пиздобол неблагодарный.
Найдёшь подобное - изменю мнение.
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Чт сен 29, 2011 17:36:56
kotbimigot
asteroid7 писал(а): пиздобол неблагодарный.
обалдеть просто, зачем столько агрессии
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Добавлено: Чт сен 29, 2011 20:50:37
asteroid7
kotbimigot писал(а):обалдеть просто, зачем столько агрессии
Опа!
А на какую реакцию ты рассчитывал, съязвив, что гугл - наше всё?