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

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

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

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

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

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

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

 
Опции темы
Непрочитано 20.05.2018, 13:10  
zev
Частый гость
 
Регистрация: 11.10.2006
Сообщений: 44
Сказал спасибо: 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
Сообщений: 44
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

Или эта команда только для побайтового вывода и считать-записать несколько байт за раз с помощью ее не предусмотрено?
zev вне форума  
Непрочитано 20.05.2018, 14:04  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,789
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
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
Сообщений: 44
Сказал спасибо: 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
Сообщений: 44
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 5 сообщении(ях)
zev на пути к лучшему
По умолчанию Re: CodevisionAVR помогите разобраться с управлением TWI

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

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

Сообщение от ForcePoint Посмотреть сообщение
Используйте тег CODE для повышения читаемости исходника.
Простите, сразу эту "кнопочку" не разглядел.
zev вне форума  
Непрочитано 20.05.2018, 19:15  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,789
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
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, время: 02:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot