PCF8570 (dynamické přidělování) rozhraní pro AT89C52

P

Pomoc

Guest
Ahoj,

Každý, kdo mi může pomoci?

Nyní má data skoro ~ 200.V budoucnu, po i realizovat nějaký kód, který jsem
čelit tomuto problému přetečení.Tak jsem třeba přidat XRAM pro mé uController, který je pomocí PCF8570.Vzhledem k tomu, jsem to dost portů.

Takže, Máte nějakou představu nebo vzorek PCF8570 design na kód C.

Děkujeme.

 
Možná můžete zkusit ASM subs vložit do svého kódu C ..

# ASM
...
# Endasm

Zde jsou všechny potřebné subs:
http://www.ustr.net/files/i2cbits.asm

S pozdravem,
IanP

 
Ahoj,

Nechť tedy máme tento příklad níže:

Kód:

patří <reg52.h># Define countNum P0

xdata unsigned char [250] = (0); / / *** Omlouváme se, odstranit xdataneplatné Deley (unsigned int Dly)

(

int i, j, k;

pro (i = 0; i <255; i )

(

pro (j = 0; j <Dly; j )

(

pro (k = 0; k <1, k );

)

)

)neplatné Run (void)

(

unsigned char počítat;if (hrabě <16)

(

countNum = count;

[Počet] = 0xaa;

Počet ;

)

if (počítat> 15)

(

count = 0;

)

)neplatné Port_Init (void)

(

countNum = 0x00;

)void main ()

(

Port_Init ();while (1)

(

Run ();

Deley (100);

)

návrat;

)
 
Nápověda,

Obávám se, že jste stále ještě nechápou, jak funguje 8051.

Pokud nemáte fyzicky xdata paměť, kterou nelze použít i když váš kompilátor nemusí stěžovat.

Přidáte-li I2C ram jako PCF8570 nemůžete použít jako xdata.Mohli byste napsat rutinu, která čte / zapisuje byte X přes I2C, ale takhle daleko složitější pak pomocí postavena v datových typů, jako je xdata.

Pokud jste všechny porty (jako máte), nemůžete přidávat xdata paměť, protože to potřebuje alespoň port 0 pro adress / data, ale můžete řešit pouze 256 bytů s touto metodou.

Mohli byste zkusit 8051 derivátu, který má (trochu) xdata paměti uvnitř jako Philips typy 89C51RX například, ale už jsem napsal tento v jiných vlákno.

S pozdravem

 
Hi, C-Man

Promiň, já zapomněl odstranit xdata na prohlášení pole.

C-Man wrote:

Mohli byste zkusit 8051 derivátu, který má (trochu) xdata paměti uvnitř jako Philips typy 89C51RX například, ale už jsem napsal tento v jiných vlákno.
 
Nemůžete použít I2C ram jako postaven v paměti a nelze použít prohlášení jako test [256], protože I2C ram je přístupná pouze byte na byte.

Pokud chcete použít I2C paměti budete potřebovat napsat I2C bus rutin (nebo použijte již rutin) a bude také Loos dva port čepy pro hardware interface (SDA a SCL).

Takže pokud chcete udělat něco jako test [128] = 10; byste museli volat rutinu, která píše od 10 do 128 adresa vaší paměti I2C.

doufám, že to pomůže

 
Ahoj,

Ano, to pomůže hodně.

and the test[] example that you given.

Alespoň vím, ram I2C je přístupná pouze byte na byte
a test [] například, že jste daný.

Je v pořádku.Mám čas se budu snažit psát rutiny pro I2C paměti.Pak se můžeme snažit, aby kód C pro PCF8570.

Nejsem si jistá, že moje programátor může podporovat 89C51RX!

Děkujeme za vaši podporu.

 

Welcome to EDABoard.com

Sponsor

Back
Top