سلام
آقا برنامه رو به صورت زیر نوشتم میکرو هم PIC18f452 هست
آقا با سرعت 9600 که حساب کردم مقدار SPBRG با فرکانس ورودی 4 مگاهرتز در مد HSPLL شد 5 تا اینجا درست هست؟
روی کامپیوتر اینها رو دریافت دارم
توی میکرو AVR هر وقت سرعت ها یکی نبود اینجوری دریافت می کردم حالا مشکل اینجا چی می تونه باشه؟
آقا برنامه رو به صورت زیر نوشتم میکرو هم PIC18f452 هست
void main(void)
{
unsigned int i;
ADCON1=6;
/////timers
TRISAbits.RA0=1;
TRISAbits.RA1=1;
TRISAbits.RA2=1;
TRISAbits.RA3=1;
TRISAbits.RA4=1;
TRISCbits.RC0=1;
///// Outputs
TRISB=0;
TRISAbits.RA3=0;
TRISAbits.RA5=0;
TRISEbits.RE0=0;
TRISEbits.RE1=0;
TRISEbits.RE2=0;
TRISCbits.RC3=0;
TXSTA=0x20;
SPBRG=5;
TXSTAbits.TXEN=1;
RCSTAbits.SPEN=1;
d1=0;
d2=0;
d3=0;
d4=0;
d5=0;
d6=0;
lcdinit();
i=0;
sprintf(i1,"%d",strlen(" IDLE"
);
lcdprint(i1);
//////////////////////////
while(1)
{
cls();
if(in3==1){
d2=0;
d1=1;
sprintf(i1,"Hello Man"
;
}
else
{
d1=0;
d2=1;
sprintf(i1,"Hello Iran"
;}
lcdprint(i1);
TXREG='S';
Delay10KTCYx(100);
}
}
{
unsigned int i;
ADCON1=6;
/////timers
TRISAbits.RA0=1;
TRISAbits.RA1=1;
TRISAbits.RA2=1;
TRISAbits.RA3=1;
TRISAbits.RA4=1;
TRISCbits.RC0=1;
///// Outputs
TRISB=0;
TRISAbits.RA3=0;
TRISAbits.RA5=0;
TRISEbits.RE0=0;
TRISEbits.RE1=0;
TRISEbits.RE2=0;
TRISCbits.RC3=0;
TXSTA=0x20;
SPBRG=5;
TXSTAbits.TXEN=1;
RCSTAbits.SPEN=1;
d1=0;
d2=0;
d3=0;
d4=0;
d5=0;
d6=0;
lcdinit();
i=0;
sprintf(i1,"%d",strlen(" IDLE"

lcdprint(i1);
//////////////////////////
while(1)
{
cls();
if(in3==1){
d2=0;
d1=1;
sprintf(i1,"Hello Man"

}
else
{
d1=0;
d2=1;
sprintf(i1,"Hello Iran"

lcdprint(i1);
TXREG='S';
Delay10KTCYx(100);
}
}
روی کامپیوتر اینها رو دریافت دارم
توی میکرو AVR هر وقت سرعت ها یکی نبود اینجوری دریافت می کردم حالا مشکل اینجا چی می تونه باشه؟

دیدگاه