Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Вопрос по апноте AVR311 - TWI Slave Implementation, точнее по исходнику от туда.
Отправлено
Dikoy 24 марта 2008 г. 09:45
Есть там прерывание __interrupt void TWI_ISR( void ), в котором разгребаются все события TWI. Чтение данных идёт в буфер:
TWI_buf[TWI_bufPtr]
Из него же они отправлояются.
Вопрос такой - из текста апноты я понял, что в буфере, в итоге, будет сидеть не только само сообщение, но и адрес получателя первым байтом...
Так ли это, может кто разяснить?
Ибо мне он нахрен не нужен в буфере...
Ну и второй вопрос.
С трудом понял, как задаётся собственный адрес получателя. Есть строчки:
<code>
#define TWI_ADR_BITS 1 // Bit position for LSB of the slave address bits in the init byte.
// Own TWI slave address
TWI_slaveAddress = (0x10<<TWI_ADR_BITS);
TWI_slaveAddress2 = (0x11<<TWI_ADR_BITS); // Alternativ slave address to respond to.
TWI_slaveAddressMask = TWI_slaveAddress ^ TWI_slaveAddress2; // XOR the addresses to get the address mask.
</code>
Для чего нужен TWI_slaveAddress2?.. И вообще, механизм задания адреса тут мне непонятен... Обычно, дал ему число от 1 до 127, он и радуется. Ноль - общий адрес. А почему тут так?..
Составить ответ | Вернуться на конференцию
Ответы