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