Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SPI и ATmega64
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
РоманО
Здравствуйте, все!

Появилась проблема при работе с 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) так и не дергаются.

Помогите разобраться в проблеме.
Юрий_СВ
Может SS настроен как вход и находится в низком уровне ?
РоманО
А чего -.

Дополнение: Проблема чисто программная. Сижу и с ИАРом и с АВРСтудией. Симулятором наблюдаю следующее: при инициализации SPI при выполнении строки: SPSR = 0x00 снимается бит MSTR в SPCR. При этом SPSRстановится равным 0x80. И это мне вообще непонятно.

Все, Спасибо Юрию. Действительно SS настроен на вход. Как говорится слона то я и не заметил
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.