rozdily v obsluze serialu 8051 vs 8052

Prichy prichy@volny.cz
Čtvrtek Červen 2 11:52:59 CEST 2005


jo, ted me to napadlo, bude to asi jedinna moznost.

Problem bude urcite nekde tam, navic ten programek jsem
psal cca 1 rok na pokracovani (2radky tam, 3 sem :-) )
a je tam spousta modifikaci. A jak rikas, nejlepsi bude zacit
od piky.
Hned vecer se do toho pustim.


Diky vsem za reakce a preji hezky den

Prichy

Milan napsal(a):

>Neviem aku mas metodiku testovania.
>Ale ja by som nastavil BeakPoint /resp nieco jednoznacne, napr. rozsvietenie 
>LED/ priamo na vektor prerusenia od UARTu /miesto volania obsluznej rutiny/, 
>inicializoval UART a cakal donekonecna (while(1);). Prelozil, skontroloval 
>ci vygenerovany ASM robi to co chcem, napalil, spustil a potom RX pin na IO 
>skrtol o zem. Podla vysledku by som sa rozhodol bud vymenit IO alebo hladat 
>chybu v SW.
>Ak vymenis IO a prerusenie sa stale neaktivuje, tak sa mozes utesit 
>myslienkou ze nie si jediny blbec lebo pricinu nevieme viaceri a najlepsie 
>bude precitat si DataSheet daneho cipu.
>
>Milan
>
>
>----- Original Message ----- 
>From: "Prichy" <prichy@volny.cz>
>To: "HW-news" <hw-list@hw.cz>
>Sent: Thursday, June 02, 2005 10:57 AM
>Subject: Re: rozdily v obsluze serialu 8051 vs 8052
>
>
>prehazel jsem to jak to mate vy - > bohuzel nepomaha
>
> diky za nazor
>
>Milan napsal(a):
>
>  
>
>>Niekde to pouzivam takto:
>> SCON = 0x50;        //en.Rx;8-b UART variable baud rate
>> TMOD = 0x21;           //8-b autoreload TIMER 1, 16-b TIMER 0
>> TH1 =  0xf5;        //serial baudrate = 10MHz/(384*(256-TH1)) = 2367Bd
>> TL0 = (unsigned char)Tcnt;
>> TH0 = (unsigned char)Tcnt>>8;
>> TCON = 0x50;        //TIMER 0,1 run
>> IEN0 = 0x92;        //ser.p.INT enable, TIMER 0 INT enable
>> IP0 = 0x10;
>> EAL = 1;         //INT enable
>>
>>void SERIAL_INT (void)  interrupt 4
>>{
>> if (RI)         //data received
>> {
>>    if (fifoM<SizeFIFObuff-1) {fifoM++;}
>>    else {fifoM = 0;}
>>    BuffIn[fifoM] = SBUF;
>>    RI = 0;
>> }
>> if (TI)                                   //data transmited
>> {
>>    ti_en = 0;
>>    TI = 0;
>> }
>>}
>>
>>Timer 0 riesi nieco ine, ale inak to cele funguje. Nic ma nenapada, skus
>>zmenit poradie pri inicializacii /mozno to chce naskor pustit hodiny pre
>>UART a az potom povolit prerusenie/ alebo vymen obvod.
>>
>>Mila
>>
>>
>>
>>n
>>----- Original Message ----- 
>>From: "Prichy" <prichy@volny.cz>
>>To: "HW-news" <hw-list@hw.cz>
>>Sent: Thursday, June 02, 2005 8:28 AM
>>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
>>
>>
>>
>>
>>
>>__________ Informacia od NOD32 1.1014 (20050301) __________
>>
>>Tato sprava bola preverena antivirusovym systemom NOD32.
>>http://www.eset.sk
>>
>>
>>_______________________________________________
>>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
>
>
>
>
>__________ Informacia od NOD32 1.1014 (20050301) __________
>
>Tato sprava bola preverena antivirusovym systemom NOD32.
>http://www.eset.sk
>
>
>_______________________________________________
>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