rozdily v obsluze serialu 8051 vs 8052

Jan Waclawek wek@evona.sk
Čtvrtek Červen 2 10:07:11 CEST 2005


Jaroslav Buchta wrote:
> Na prvni pohled mi chybi nastaveni TCON, ale to mozna nevadi
TCON je nastaveny cez jeho bity:
 >>   TR0 = 1;                               // start timer 0
 >>   TR1 = 1;                               // start timer 1

Ale ja osobne by som skusil vyhodit OR z nasledovneho:
 >>   TMOD |= 0x21;    //nastaveni modu casovace 0 a 1

Pripadne by som skusil vyslat nieco ako 0x55 a pokukat osciloskopom, co 
vylezie.

wek



> Pak bych se podival,jestli jsou inicializovane promenne, zvlaste buf_count,
> v simulatoru asi implicitne jo, v procesoru urcite ne.
> 
> -----Original Message-----
> From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz]On
> Behalf Of Prichy
> Sent: Thursday, June 02, 2005 8:29 AM
> To: HW-news
> Subject: rozdily v obsluze serialu 8051 vs 8052
> 
> 
> 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
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 




Další informace o konferenci Hw-list