реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> TWI в AVR32, не могу прочитать данные по TWI
voltAVR32
сообщение Aug 13 2009, 06:12
Сообщение #1





Группа: Участник
Сообщений: 4
Регистрация: 10-07-09
Пользователь №: 51 108



Подскажите пожалуйста!
UC3A отправляет адрес, и вроде как принимает байты которые ему посылает другое устройство (проверил осцилом),
вопрос в том как мне с этими данными работать?
Взял атмеловский пример для работы по TWI, данные как я понимаю должны быть в строке char data_received[];
но когда я вывожу строку на дисплей их там нет sad.gif.

Сообщение отредактировал voltAVR32 - Aug 13 2009, 06:16
Go to the top of the page
 
+Quote Post
vibro
сообщение Aug 13 2009, 06:39
Сообщение #2





Группа: Участник
Сообщений: 9
Регистрация: 28-04-09
Пользователь №: 48 380



Цитата(voltAVR32 @ Aug 13 2009, 09:12) *
Подскажите пожалуйста!
UC3A отправляет адрес, и вроде как принимает байты которые ему посылает другое устройство (проверил осцилом),
вопрос в том как мне с этими данными работать?
Взял атмеловский пример для работы по TWI, данные как я понимаю должны быть в строке char data_received[];
но когда я вывожу строку на дисплей их там нет sad.gif.

Я примерно так работаю с TWI:
Код
        uint8_t TWIRead;
        twi_options_t opt;
        twi_package_t packet;

        static const gpio_map_t TWI_GPIO_MAP = {
                    {AVR32_TWI_SDA_0_0_PIN, AVR32_TWI_SDA_0_0_FUNCTION},
                    {AVR32_TWI_SCL_0_0_PIN, AVR32_TWI_SCL_0_0_FUNCTION}
         };

        gpio_enable_module(TWI_GPIO_MAP, sizeof(TWI_GPIO_MAP) / sizeof(TWI_GPIO_MAP[0]));

        opt.pba_hz = FOSC0;
        opt.speed = 50000;
        opt.chip = 0x20;

        twi_master_init(&AVR32_TWI, &opt);

        packet.chip = 0x20;
        packet.addr = 0;
        packet.addr_length = 0;
        packet.buffer = (void*) &TWIRead;
        packet.length = 1;
        twi_master_read(&AVR32_TWI, &packet);


--------------------
Go to the top of the page
 
+Quote Post
voltAVR32
сообщение Aug 13 2009, 07:06
Сообщение #3





Группа: Участник
Сообщений: 4
Регистрация: 10-07-09
Пользователь №: 51 108



а как использовать данные вот например если ты решишь вывести на дисплей
код будет примерно таким:
int tmp1 = TWIRead[0];
dip204_set_cursor_position(11,1);
dip204_write_data(tmp1);
или как то ещё?
Go to the top of the page
 
+Quote Post
vibro
сообщение Aug 13 2009, 09:34
Сообщение #4





Группа: Участник
Сообщений: 9
Регистрация: 28-04-09
Пользователь №: 48 380



Для начала можно так:

sprintf(string, "%d", TWIRead[0]);
dip204_write_data(string);


--------------------
Go to the top of the page
 
+Quote Post
voltAVR32
сообщение Aug 13 2009, 12:12
Сообщение #5





Группа: Участник
Сообщений: 4
Регистрация: 10-07-09
Пользователь №: 51 108



всё равно не работает, а можешь показать код для функции twi_master_read(&AVR32_TWI, &packet);
в примере он в twi.c
Go to the top of the page
 
+Quote Post
voltAVR32
сообщение Aug 14 2009, 05:32
Сообщение #6





Группа: Участник
Сообщений: 4
Регистрация: 10-07-09
Пользователь №: 51 108



Проблему решил, просто взял другой пример и он заработал. Спасибо за помощь!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 14:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016