Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

CodevisionAVR помогите разобраться с управлением TWI

Непрочитано 20.05.2018, 13:10  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию CodevisionAVR помогите разобраться с управлением TWI

Встала передо мной задачка связать Амегу с 24с08.
Записывать и считывать несколько байт.
Хочется сделать это по TWI интерфейсу.
Написать программу путем обращения к его регистрам, не проблема.
Мне хочется разобраться именно с командой Кодевижна
Цитата:
bool twi_master_trans(
unsigned char slave_addr,
unsigned char *tx_data,[CODE]
unsigned char tx_count,
unsigned char *rx_data,
unsigned char rx_count)
Есть пример с хелпом, но там описан побайтный ввод-вывод.
Мне хочется записывать-считывать ну скажем 8 цифр подряд.
В хелпе пример для АЕ25с512 у нее 2 байта адреса.
Пример использования функции таков:-

Цитата:
struct
{
struct
{
unsigned char msb;
unsigned char lsb;
} addr;
unsigned char data;
} twi_eeprom;


unsigned char eeprom_rd_data;


/* the TWI master for SCL bit rate of 100 kHz */
twi_master_init(100);


/* globally enable interrupts */
#asm("sei")


/* write the byte 0x55 to the AT24C16B EEPROM address 0x210 */
twi_eeprom.addr.msb=0x02;
twi_eeprom.addr.lsb=0x10;
twi_eeprom.data=0x55;
twi_master_trans(EEPROM_TWI_BUS_ADDRESS,(unsigned char *) &twi_eeprom,3,0,0);


/* 10ms delay to complete the write operation */
delay_ms(10);


/* read the byte back into the eeprom_rd_data variable */
twi_master_trans(EEPROM_TWI_BUS_ADDRESS,(unsigned char *) &twi_eeprom,2,&eeprom_rd_data,1);
вопрос 1: Как я понял,
Для переделки кода под микросжему 24с08 примера из структуры надо будет убрать unsigned char msb, а в команде записи в память:-
twi_master_trans(EEPROM_TWI_BUS_ADDRESS,(unsigned char *) &twi_eeprom,3,0,0);
Цифру 3 заменить на 2.
А при чтении 2 заменить на 1.
Не поскажите, какие надо внести изменения, чтобы последовательно записывать-читать несколько байт подряд из массива? Ну кроме объявления самого массива, ес-но?
Если че, то пож-ста на мою чайниковость сильно не ругайтесь...
Реклама:
zev вне форума  
Непрочитано 20.05.2018, 13:19  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Или эта команда только для побайтового вывода и считать-записать несколько байт за раз с помощью ее не предусмотрено?
zev вне форума  
Непрочитано 20.05.2018, 14:04  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,458
Сказал спасибо: 3,227
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Используйте тег CODE для повышения читаемости исходника.

Сообщение от zev Посмотреть сообщение
Цифру 3 заменить на 2.
А при чтении 2 заменить на 1.
Думаю - да.

Сообщение от zev Посмотреть сообщение
Или эта команда только для побайтового вывода и считать-записать несколько байт за раз с помощью ее не предусмотрено?
Сколько данных заложить в структуру twi_eeprom - столько и будет, КМК. Глвное, что-бы это было не больше страницы EEPROM ("лишние" данные сверх размера страницы будут затирать данные в "голове").
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Непрочитано 20.05.2018, 15:08  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Сообщение от ForcePoint Посмотреть сообщение
Сколько данных заложить в структуру twi_eeprom - столько и будет, КМК. Глвное, что-бы это было не больше страницы EEPROM ("лишние" данные сверх размера страницы будут затирать данные в "голове").
Мне бы простой кусок кода с разжевыванием, в силу моей тугодумости(обусловленой крайне малой практикой, ибо раз в несколько лет кустарю иногда девайсы для личного потребления, элементарные вещи вспоминать приходится ) в этом вопросе, ну по типу как в хелпе кодевижна написано было, но чуток подробнее.
Типа байт несколько, как записать-прочитать. И что, куда ставить.
Был бы премного благодарен.

Последний раз редактировалось zev; 20.05.2018 в 15:19. Причина: дополнение
zev вне форума  
Непрочитано 20.05.2018, 15:32  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Сообщение от ForcePoint Посмотреть сообщение
Используйте тег CODE для повышения
Сколько данных заложить в структуру twi_eeprom - столько и будет, КМК. .
Вопрос в том, как их заложить. и в коде оформить.
Ибо чайник я. А прогу хочется именно с применением этой функции составить, хотя и "ногодрыга" для работы с памятью по заглаза хватило бы.
Но это как говорится- пройденый этап.
Хочется разобраться в этом, новом лично для меня вопросе, а практики не хватает...
Надеюсь на помощь сочувствующих.
zev вне форума  
Непрочитано 20.05.2018, 15:47  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Сообщение от ForcePoint Посмотреть сообщение
Сколько данных заложить в структуру twi_eeprom - столько и будет, КМК.
Вот, вот. В том, как оформить это заложение конкретно в виде кода вопрос и состоит.
zev вне форума  
Непрочитано 20.05.2018, 15:48  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Сообщение от ForcePoint Посмотреть сообщение
Используйте тег CODE для повышения читаемости исходника.
Простите, сразу эту "кнопочку" не разглядел.
zev вне форума  
Непрочитано 20.05.2018, 19:15  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,458
Сказал спасибо: 3,227
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Не великий спец в Си... Можно зарезервировать в структуре место для всей страницы памяти. Использовать можем сколько понадобится, при соблюдении условия tx_count ‹= pagesize.
Код:
const	pagesize = NNN	// NNN = 16 для 24xC08
struct	{
	struct	{
		unsigned char msb;
		unsigned char lsb;
	} addr;
	unsigned char data[pagesize];
} twi_eeprom;
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с микроконтроллером igor140329 Микроконтроллеры, АЦП, память и т.д 7 07.03.2011 03:27
Немецкая схемотехника. Помогите разобраться Luzkov TTL и CMOS логика 23 05.01.2011 11:13
[Решено] Помогите разобраться barbuss Proteus 2 26.10.2010 23:45
Помогите разобраться ,АЦП Тину 13, что то не так... Botan Микроконтроллеры, АЦП, память и т.д 2 14.09.2010 18:31
Помогите разобраться с транзисторами в Proteus`е EsterniTY Proteus 2 05.08.2004 00:18


Часовой пояс GMT +4, время: 15:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.