Roma_ne 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Здравствуйте, все! Появилась проблема при работе с SPI на меге64. И не то, чтобы я неопытный, и проектов понаделал кучу, но вошел в ступор и никак не могу понять в чем проблема. Mega в MasterMode. Инициализация: void spi_init(void) { SPCR = 0x5С; //setup SPI SPSR = 0x00; //setup SPI } Передача данных: char spi_sendbyte(char byte) { SPDR = byte; // Start transmission while(!(SPSR & (1<<SPIF))); // Wait for transmission complete return (SPDR); } Код проверен, использовался не раз. При вызове spi_sendbyte контроллер намертво залипает, при этом ножки его (SCK, MOSI) так и не дергаются. Помогите разобраться в проблеме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Буян 0 7 марта, 2012 Опубликовано 7 марта, 2012 (изменено) · Жалоба Может SS настроен как вход и находится в низком уровне ? Изменено 7 марта, 2012 пользователем Юрий_СВ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Roma_ne 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба А чего -. Дополнение: Проблема чисто программная. Сижу и с ИАРом и с АВРСтудией. Симулятором наблюдаю следующее: при инициализации SPI при выполнении строки: SPSR = 0x00 снимается бит MSTR в SPCR. При этом SPSRстановится равным 0x80. И это мне вообще непонятно. Все, Спасибо Юрию. Действительно SS настроен на вход. Как говорится слона то я и не заметил Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться