ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
190743 Топик полностью
Argon (19.04.2010 17:15 - 17:20, просмотров: 97) ответил Андрей7777 на подскажите, как сконфигурировать SPI1.. по даташиту он идет как SPP, нужно запустить в режиме SPI...
вдруг поможет прямо сейчас объяснять некогда, по этому показываю "как есть". spi 16 бит, без прерываний. void SSP_Enable(void) { word SSPFREQ_Prescaler, SCR; //Инициализация SPI SCR = 0; SSPFREQ_Prescaler = 4; //CPSDVSR, предделитель частоты PCLK_Freq. //Возможные значения: четные 2...254. В режиме slave - мин значение 12. //Bit Frequency = PCLK_Freq/(SSPFREQ_Prescaler*(SCR+1)) //для PCLK_Freq = 55.296000 и SSPFREQ_Prescaler = 4: Bit Frequency = 13.824 МГц PCONP &= ~PSPI1_BIT; //превентивно отрубаем режим spi1 PCONP |= PSSP_BIT; //и врубаем режим ssp1 PINSEL1 |= BIT3 | BIT5; SSPCPSR = SSPFREQ_Prescaler; //Control Register 0. Selects the serial clock rate, bus type, and data size. //SSPCR0 = 0x0f | SSP_CPOL_BIT | SSP_CPHA_BIT | (((word)SCR) << 8); //SSPCR0 = 0x0f | SSP_CPOL_BIT | (((word)SCR) << 8); SSPCR0 = 0x0f | (((word)SCR) << 8); //SSPCR0 = 0x0f | SSP_CPHA_BIT | (((word)SCR) << 8); //Interrupt Mask Set and Clear Register SSPIMSC = 0x00; //Raw Interrupt Status Register SSPRIS = 0x00; //Masked Interrupt Status Register SSPMIS = 0x00; //Interrupt Clear Register SSPICR = 0x00; //Control Register 1. Selects master/slave and other modes. SSPCR1 = BIT1; // SSP включен SSP_RxFIFO_Clear(); }