rozdily v obsluze serialu 8051 vs 8052
Jaroslav Buchta
buchta@compelson.cz
Čtvrtek Červen 2 08:40:11 CEST 2005
Na prvni pohled mi chybi nastaveni TCON, ale to mozna nevadi
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
Další informace o konferenci Hw-list