Обращение к переменной по интерфейсу SPI (TWI),создание типа
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Обращение к переменной по интерфейсу SPI (TWI),создание типа
[Всем большое спасибо. ТЕМА ЗАКРЫТА!]
Здравствуйте! Как создать тип переменной в CVAVR2, чтобы при обращении к переменной этого типа, находящейся в микросхеме памяти, по интерфейсу SPI (или TWI), компилятор сам "понимал", что переменная не в его ОЗУ или Flash? То есть при компиляции, встречая в тексте программы переменную этого типа, компилятор должен использовать соответственно команды чтения/записи по SPI (TWI). Как прописать такой тип?
Здравствуйте! Как создать тип переменной в CVAVR2, чтобы при обращении к переменной этого типа, находящейся в микросхеме памяти, по интерфейсу SPI (или TWI), компилятор сам "понимал", что переменная не в его ОЗУ или Flash? То есть при компиляции, встречая в тексте программы переменную этого типа, компилятор должен использовать соответственно команды чтения/записи по SPI (TWI). Как прописать такой тип?
Последний раз редактировалось kotbimigot Чт сен 29, 2011 17:38:00, всего редактировалось 1 раз.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Такое невозможно.
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
если мы чего-то не знаем - не значит, что этого не существует
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Можно через __declspec, если компилятор это поддерживает. Сомневаюсь.
Или через классы и "operator". В конструкторе задаются параметры переменной. Реализации обращений к SPI TWI нужно дописать.
Что то типа такого:
Подобное работает в IAR-е. Для CV не проверялось
Или через классы и "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 не проверялось
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
а CV уже С++ поддерживает?!
битва с дураками проиграна, победители торжествуют. слава победителям!
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
про IAR нагуглилось, да
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
а вообще где можно почитать как работать с внешней еепром памятью??
KIT
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
kotbimigot писал(а):если мы чего-то не знаем - не значит, что этого не существует
Ещё раз: такое невозможно. Память, подключаемая через SPI или TWI (I2C), с точки зрения процессора является не памятью, а внешним устройством. К ячейкам такой памяти он обращаться не умеет в принципе, поскольку этих ячеек с точки зрения процессора попросту не существует. Кроме того, у разных типов памяти, подключаемых по одному интерфейсу, могут быть разные принципы работы (например, к SPI можно подключить и микросхему DataFlash, и SD-карту, однако программно работа с ними выполняется совершенно по-разному). Наконец, встроенные в один тип МК контроллеры SPI и I2C могут отличаться от таковых у другого типа МК даже одного производителя (а уж разных производителей -- и подавно, что в полной мере проявляется у ARMов), и учесть все эти нюансы в компиляторе попросту невозможно.
Единственный способ сымитировать работу с такими устройствами -- это создать класс, который благодаря перегрузке операторов может "прикидываться" массивом, и объявить переменную такого типа. Однако это -- отнюдь не простая задача, не говоря уже о том, что это -- извращение.
В общем, лучше хорошенько изучите, что такое SPI и I2C, как работают с их контроллерами (напрямую, а не через созданные кем-то библиотеки), что из себя представляют микросхемы памяти, подключаемые через эти интерфейсы, ну а в первую очередь -- ассемблер. Не разобравшись с этими вещами, Вы просто не будете понимать, как в действительности работает "железо" и какая связь между программой, написанной на языке высокого уровня (например, на Си), и реальным кодом, выполняемым процессором.
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
SII писал(а):лучше хорошенько изучите, что такое SPI и I2C, как работают с их контроллерами (напрямую, а не через созданные кем-то библиотеки), что из себя представляют микросхемы памяти, подключаемые через эти интерфейсы, ну а в первую очередь -- ассемблер. Не разобравшись с этими вещами, Вы просто не будете понимать, как в действительности работает "железо" и какая связь между программой, написанной на языке высокого уровня (например, на Си), и реальным кодом, выполняемым процессором.
ах, спасибо, хорошо, положите на комод
что-то вы мне в протеусе посимулить не посоветовали, тоже пониманию хорошо помогает
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
kotbimigot, я бы на Вашем месте тон подопустил немного и прислушался бы к тому, что Вам говорят.ах, спасибо, хорошо, положите на комод
Уверены в том, что это реально - факты в студию. А слова типа - "это возможно и идите все на ...", оставьте при себе.
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Всем спасибо
Уже курю даташит на предмет подключения External SRAM
Уже курю даташит на предмет подключения External SRAM
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
Аlex писал(а): идите все на ..."
сорри, не моё!
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
А ты наблюдательный )kotbimigot писал(а):про IAR нагуглилось, да
Ну гугли, пиздобол неблагодарный.
Найдёшь подобное - изменю мнение.
-
kotbimigot
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт июл 01, 2010 19:48:52
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
asteroid7 писал(а): пиздобол неблагодарный.
обалдеть просто, зачем столько агрессии
Re: Обращение к переменной по интерфейсу SPI (TWI),создание
kotbimigot писал(а):обалдеть просто, зачем столько агрессии
Опа!
А на какую реакцию ты рассчитывал, съязвив, что гугл - наше всё?