[an error occurred while processing this directive]
|
Пытаюсь связать по i2c mega128 и attyny2313.
Для mega128 код беру из апнота AVR315(мастер), B attyny2313 - AVR312 без изменений.
если не подключать слэйв, то при вызове передачи на линиях SCL и SDA пробегают импульсы; SCL почему-то после первй передачи
E-mail:
info@telesys.ru
МАСТЕР:
кварц 14,318МГц
#define TWI_TWBR 0x40
...
TWI_Master_Initialise();
__enable_interrupt();
...
if(...)
{
// Send a Address Call, sending a command and data to the Slave
unsigned char messageBuf[4];
unsigned char TWI_targetSlaveAddress= 0x10;
messageBuf[0] = (TWI_targetSlaveAddress<
messageBuf[1] = TWI_CMD_MASTER_WRITE;// The first byte is used for commands.
messageBuf[2] = data;// The second byte is used for the data.
TWI_Start_Transceiver_With_Data( messageBuf, 3 );
}
падает в "0". С подключенным слейвом на SCL устанавливается генерация импульсов около 63кГц до ресета; при повторной передаче мега виснет.
Что не так делаю?
Почему странная частота SCL ? По формуле и таблице должна быть 100кГц: 14318/(16+ 2*64) = 99,4
и почему в AVR315 TWI_TWPS не определен?:
// Not used defines!
//#define TWI_TWPS 0x00 // This driver presumes prescaler = 00
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание