[an error occurred while processing this directive]
|
Инициализация и запуск передач
SPICCR &= 0x007F; // only RESET SPI
SPICCR = 0x0047;
SPICTL = 0x0007;
SPICCR |= 0x0080; // Set SPI
wait_SCLK_passive (); // требуется небольшая задержка, пока не установится SCLK->1
// требуется около полпериода SCLK
PEDATDIR &= 0xFFF7; // -CS -> 0
SPITXBUF = ...; // первый байт, остальные в прерывании
Для пассивного SCLK == 0 задержка почему-то не нужна. При высоких частотах SCLK
может быть и не потребуется задержки, поскольку время до установления -CS -> 0
может оказаться более полпериода, но это не проверял. Испытано при CLK=10/20 MHz
SPIBRR = 9; // CLK:10 = 1000/2000 kHz - для всех устройств
E-mail: info@telesys.ru