QuadMan 0 20 июня, 2006 Опубликовано 20 июня, 2006 (изменено) · Жалоба Пишу SPI master для ATTINY26, делаю, прямо как написано в примере из даташита: void write_spi(unsigned char data) { unsigned char tmp; USIDR = data; USISR |= 0x40; // clear interrupt flag tmp = USICR | (1 << USITC) | (1 << USICLK) | (1 << USIOIE); while ((USISR & 0x40) != 0x40) { USICR = tmp; } } SLK вижу, а DO - всякая фигня не соответствующая действительности. вернее, если data = 1 или 5, то ворде как нормально, а все остальное - прыгает и скачет как хочет. в чем проблема? USICR изначально сконфигурен так: // Universal Serial Interface initialization // Mode: Three Wire (SPI) // Clock source: Register & Counter=USICLK // USI Counter Overflow Interrupt: Off USICR=0x12; Изменено 20 июня, 2006 пользователем QuadMan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться