Asynchronní CCS-C programování pro PIC

Y

yuenkit

Guest
Ahoj,

Potřebuji pomoc, aby kód Asynchronní přenosový protokol v CCS-C.

Já jsem za použití jednoho IO pin.Tak jsem cann't použít "# použití RS-232" (což používat jednu XMIT a jeden RCV pin).

Někdo mi řekl, PPL obvykle používají ASM kódu Async protokolu, místo C, kvůli napjaté načasování.

1.Jak se kód pomocí C?Vím že je to možné, ale nevím, jak vypočítat zpoždění a načasování.

2.Pokud budu mít k použití ASM, budu inklinují k použití # ASM, která mix s kódem C.Problém je v tom, to by mohlo zkazit můj kód, protože C a ASM mohou používat stejné umístění v paměti, a já nevím dopředu, kde C bude používat k ukládání dat.

Díky za vyřešení mého problému.

 
V mikroprocesory, všechno je synchronní s hodinami.Máte na mysli protokol s proměnnou zpoždění mezi bity?Pokud ano, jaké zpoždění jste očekával?

 
Například, bit zpoždění je 104 nám.
Nicméně, kromě 104 nás, pro vedení samo vytváří zpoždění, shift_left vytváří zpoždění, a každá instrukce také způsobit zpoždění.

Spočítejte ty zpoždění by mohlo trvat až několik úsilí.
Kód:

Kód:# Define BIT_DELAY 104;neplatné RS232_xmit (BYTE data)

(

int i;output_low (RS232_XMIT);

delay_us (BIT_DELAY);

pro (i = 8; i! = 0; i -)

(

output_bit (RS232_XMIT, shift_left (& data, 1, 0));

delay_us (BIT_DELAY);

)

output_high (RS232_XMIT);

delay_us (BIT_DELAY);

)

 
104us je docela těsný.Pro takové striktní časování, budete to muset udělat v ASM.Víš, jak vypočítat dealys zprava ASM?Používáte-li CCS, můžete se podívat na soubor LST.

 

Welcome to EDABoard.com

Sponsor

Back
Top