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

 
 
> XMega TWI, Не могу запустить TIC154
Getmanov
сообщение Jul 20 2010, 19:05
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507



Не могу понять почему не идёт обмен с дисплеем. Возможно all поможет. Мой код:

Работа с TWI:
Код
#include <ioavr.h>
#include <intrinsics.h>



#pragma vector = TWIC_TWIM_vect                                             // Прерывание по приёму.
__interrupt void TWIC_TWIM_foo(void)
{
    TWIC.MASTER.STATUS = TWI_MASTER_WIF_bm;
}

void TWI_MasterInit(TWI_t *twi, unsigned char baudRateRegisterSetting)
{
    twi->MASTER.CTRLA = TWI_MASTER_INTLVL_LO_gc | TWI_MASTER_WIEN_bm | TWI_MASTER_ENABLE_bm;    // Низкий уровень пркрываний | Разрешено прерывание по передаче | Разрешение работы
    twi->MASTER.BAUD = baudRateRegisterSetting;                                                 // Скорость передачи
    twi->MASTER.STATUS = TWI_MASTER_BUSSTATE_IDLE_gc;                                           // Шинf в IDLE
}

void TWI_Send_Start(TWI_t *twi, unsigned char Address)
{
    while ((twi->MASTER.STATUS & TWI_MASTER_BUSSTATE_IDLE_gc) == 0);        // Ждём освобождения шигы
    twi->MASTER.ADDR = Address;                                             // Передать СТАРТ и АДРЕС
}

void TWI_Send_Stop(TWI_t *twi)
{
    twi->MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc;                             // Передать СТОП
}

void TWI_Write(TWI_t *twi, unsigned char data)
{
    if (twi->MASTER.STATUS & TWI_MASTER_WIF_bm)                             // Проверка флага прерывание по приёму
        twi->MASTER.STATUS = TWI_MASTER_WIF_bm;                                 // если надо очистка
    twi->MASTER.DATA = data;                                                // Запись данных
}


Использование:

Код
TWI_MasterInit(&TWIC, 5);    // Инициализация


TWI_Send_Start(&TWIC, TIC13364_ADDR);

TWI_Write(&TWIC, 0x40);

/* Запись настроек и .... */

TWI_Send_Stop(&TWIC);


Изменение скорости никак не влияет.

При этом железо точно в порядке, так как с программным I2C дисплей работает.

Заранее огромное спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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