rozdily v obsluze serialu 8051 vs 8052
Prichy
prichy@volny.cz
Čtvrtek Červen 2 08:28:46 CEST 2005
Zdravim.
Nefunguje mi prijem od serialu na 8052.
SCON = 0x50; /*inicializace serialu 9600 baud pri 11.059MHz*/
TMOD |= 0x21; //nastaveni modu casovace 0 a 1
TH1 = 0xFD;
TR0 = 1; // start timer 0
ET0 = 1; // enable timer 0 interrupt
ES = 1; // enable serial interrupt
PS = 0; // set serial interrupts to
hi priority
EA = 1; // global interrupt enable
TR1 = 1; // start timer 1
zde je inicializace, pouzivam casovac 1,
pri krokovani v simulatoru (u*V*i*s*i*o*n) vse funguje
na HW neprima nic ze serialu (asi, nemam emulator, abych
zjistil presne co se tam deje) (REN mam nahozeny)
Pokud ovsem nahodi TI prijme vse celkem v pohode. (TI nesmim vynulovat)
Z toho usuzuji, ze vubec nedojde k preruseni od prijmu.
v PC mam seriak nastaven na 9600 1sb. bez parity.
Jsem si vedom, ze je to dotaz typu UB (uplne blby),
ale uz se v tom tak nejak placam a tocim v uzavrenem
kruhu,
static void com_isr (void) interrupt 4 using 2
{
if (RI != 0)
{
RI = 0;
buf[buf_count] = SBUF;
if (buf[buf_count]=='\r'){ ES=0;} // zastaveni serioveho kanalu
buf_count++;
serial_count= 20;}
}
pro uplnost obsluha preruseni (na vysilani nepouzivam)
dekuji za pripadne rady a stydim se :-)
Prichy
PS: neni to rozdilem mezi 8051 a 8052, docetl jsem se, ze
casovac 2 muze byt pouzit ke generovani prenosove rychlosti
ale nemusi, tak jsem vse nechal jako na 8051
Další informace o konferenci Hw-list