سلام دوستان
امیدوارم حالتون خوب باشه
من می خوام spi میکرو at91sam7x256رو راه اندازی کنم ولی هر کاری می کنم سیگنالی رو پایه های مربوط به spi میکرو دریافت نمی کنم.با لوپ داخلی خود میکرو تست میکنم جواب میده ولی وقتی تو مد master تنظیمش می کنم اسکوپ هیچ سیگنالی رو نشون نمیده.اگر کمکم کنید ممنون میشم.کدی که نوشتم رو در زیر میارم:
امیدوارم حالتون خوب باشه
من می خوام spi میکرو at91sam7x256رو راه اندازی کنم ولی هر کاری می کنم سیگنالی رو پایه های مربوط به spi میکرو دریافت نمی کنم.با لوپ داخلی خود میکرو تست میکنم جواب میده ولی وقتی تو مد master تنظیمش می کنم اسکوپ هیچ سیگنالی رو نشون نمیده.اگر کمکم کنید ممنون میشم.کدی که نوشتم رو در زیر میارم:
#include <Atmel/ioat91sam7x256.h>
void main ()
{
//--------------------start up--------------------------
AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; //AT91C_WDTC_WDDIS=(1<<15)
AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
//--------------------speed up--------------------------
AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC;
AT91C_BASE_PMC->PMC_MCKR = 0x3;
AT91C_BASE_PMC->PMC_SCER = 0x1;
//-----------------------------------------------------
AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_PIOA );
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_SPI0);
-----------------------------------------------------
AT91C_BASE_PIOA->PIO_PDR = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_PIOA->PIO_MDER = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_PIOA->PIO_ASR = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_PIOA->PIO_PPUER = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_SPI0->SPI_CR = 0x80;
AT91C_BASE_SPI0->SPI_MR = 0x0F000013;
AT91C_BASE_SPI0->SPI_CSR[0] = 0x0F0FFF02;
AT91C_BASE_SPI0->SPI_CR = 0x1;
while (1) {
while (!(AT91C_BASE_SPI0->SPI_SR&0x200));
AT91C_BASE_SPI0->SPI_TDR = 0x55;
while (!(AT91C_BASE_SPI0->SPI_SR&0x2));
}
}
void main ()
{
//--------------------start up--------------------------
AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; //AT91C_WDTC_WDDIS=(1<<15)
AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
//--------------------speed up--------------------------
AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC;
AT91C_BASE_PMC->PMC_MCKR = 0x3;
AT91C_BASE_PMC->PMC_SCER = 0x1;
//-----------------------------------------------------
AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_PIOA );
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_SPI0);
-----------------------------------------------------
AT91C_BASE_PIOA->PIO_PDR = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_PIOA->PIO_MDER = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_PIOA->PIO_ASR = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_PIOA->PIO_PPUER = (1<<12|1<<16|1<<17|1<<18) ;
AT91C_BASE_SPI0->SPI_CR = 0x80;
AT91C_BASE_SPI0->SPI_MR = 0x0F000013;
AT91C_BASE_SPI0->SPI_CSR[0] = 0x0F0FFF02;
AT91C_BASE_SPI0->SPI_CR = 0x1;
while (1) {
while (!(AT91C_BASE_SPI0->SPI_SR&0x200));
AT91C_BASE_SPI0->SPI_TDR = 0x55;
while (!(AT91C_BASE_SPI0->SPI_SR&0x2));
}
}
دیدگاه