پاسخ : عملکرد PMC_PCER
ممنون میشم اگه این مشکل منو حل کنین .
من یه مداری دارم که از پایه 4 تا 11 ال ای دی وصل کردم و از پایه 12 تا 20 هم همین کلید ها .(به قول شما سوئیچ)
پایه 0 برای Receive و پایه 1 برای Transmit هست . می خوام هر چی از پورت سریال ورودی اومد تو ال ای دی ها نشون بدم و با کلید ها هم به پورت سریال اطلاعات بفرستم .
حالا من برا اینکه این مدارو تست کنم پایه 0 و 1 رو به هم وصل کردم (یعنی Receive و Transmit ) . ولی مدارم کار نمی کنه .
این هم کد بنده هست . اگه مشکلی تو کد هست بفرمایید :
نوشته اصلی توسط حامد پور آزاد
ممنون میشم اگه این مشکل منو حل کنین .
من یه مداری دارم که از پایه 4 تا 11 ال ای دی وصل کردم و از پایه 12 تا 20 هم همین کلید ها .(به قول شما سوئیچ)
پایه 0 برای Receive و پایه 1 برای Transmit هست . می خوام هر چی از پورت سریال ورودی اومد تو ال ای دی ها نشون بدم و با کلید ها هم به پورت سریال اطلاعات بفرستم .
حالا من برا اینکه این مدارو تست کنم پایه 0 و 1 رو به هم وصل کردم (یعنی Receive و Transmit ) . ولی مدارم کار نمی کنه .
این هم کد بنده هست . اگه مشکلی تو کد هست بفرمایید :
کد:
#include <at91sam7s64.h>
int main()
{
*AT91C_PIOA_PER = 0x1FFFF0;
*AT91C_PIOA_OER = 0xFF0;
*AT91C_PMC_PCER = 1 << 6 | 1 << 2;
*AT91C_PIOA_PDR = 0x3;
*AT91C_PIOA_ASR = 0x3;
*AT91C_US0_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS;
*AT91C_US0_MR = 0x808D0;
*AT91C_US0_BRGR = 0x139;
while( 1 )
{
int a;
if( *AT91C_US0_CSR & 1 )
{
*AT91C_US0_CR = AT91C_US_RXEN;
a = *AT91C_US0_RHR;
*AT91C_PIOA_CODR = 0xFF0;
*AT91C_PIOA_CODR = a << 4;
}
*AT91C_US0_CR = AT91C_US_RXDIS;
if( *AT91C_US0_CSR & 2 )
{
*AT91C_US0_CR = AT91C_US_TXEN;
while( *AT91C_PIOA_PDSR & (1 << 20) );
a = (~*AT91C_PIOA_PDSR) & (0xFF000);
*AT91C_US0_THR = a >> 12;
}
*AT91C_US0_CR = AT91C_US_TXDIS;
}
}




دیدگاه