Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
// Set SPI control register:
*AT91C_SPI_CR = AT91C_SPI_LASTXFER | // CS go hight when transfer has completed
AT91C_SPI_SPIDIS; // disable SPI
Delay(0xF);
// Set SPI mode register
*AT91C_SPI_MR =
(0x3<<0) |
(0x1<<4) |
(0xFB<<16)|
(0x0E<<24);
//------------------//
// //
// cs0 = R-VAR1 //
// cs1 = R-VAR2 //
// cs2 = DAC //
// cs3 = ADC //
// //
//------------------//
AT91C_BASE_SPI->SPI_CSR[0]= //9 bit
(0x2<<24) | // delay betwean two transfers
(0x5<<16) | // delay betwean CS and clock
(0x4<<8) | // baud rate is MCK/2
AT91C_SPI_BITS_9| // 9 bit per transfer
(0x0<<3) | // chip select rise after transfer
(0x0<<1) | // first change, then capture
(0x0<<0); // clock polarity is LOW
AT91C_BASE_SPI->SPI_CSR[1]= //9 bit
(0x2<<24) | // delay betwean two transfers
(0x5<<16) | // delay betwean CS and clock
(0x4<<8) | // baud rate is MCK/2
AT91C_SPI_BITS_9| // 9 bit per transfer
(0x0<<3) | // chip select rise after transfer
(0x0<<1) | // first change, then capture
(0x0<<0); // clock polarity is LOW
AT91C_BASE_SPI->SPI_CSR[2]= //16 bit
(0x2<<24) | // delay betwean two transfers
(0x5<<16) | // delay betwean CS and clock
(0x4<<8) | // baud rate is MCK/2
AT91C_SPI_BITS_16| // 16 bit per transfer
(0x0<<3) | // chip select rise after transfer
(0x0<<1) | // first change, then capture
(0x0<<0); // clock polarity is LOW
AT91C_BASE_SPI->SPI_CSR[3]= //16 bit
(0x3<<24) | // delay betwean two transfers
(0x1<<16) | // delay betwean CS and clock
(0x2<<8) | // baud rate is MCK/2
AT91C_SPI_BITS_16| // 16 bit per transfer
(0x0<<3) | // chip select rise after transfer
(0x0<<1) | // first change, then capture
(0x0<<0); // clock polarity is LOW
*AT91C_SPI_CR =
AT91C_SPI_LASTXFER | // CS go hight when transfer has completed
AT91C_SPI_SPIEN; // enable SPI
}
[/CODE]
P.S.: при передачк пишу в SPI_TDR не останавливая SPI.