Passing sbit adresu jako parametry funkcí na 8051

X

x_zoli

Guest
Zdravím všechny

Může mi někdo říct, jak předávat sbit a / nebo SFR adresy jako funkční parametry il * Ke, takže později mohu přiřadit hodnoty těchto sbits nebo sfrs (konkrétně port piny, nebo celý port).
Snažím se psát sadu funkcí LCD (HD44780 kompatibilní) a udělat z ní knihovny.Použití jako knihovna, musím je flexibilní na úrovni, která data port a ovládání pinů může být specifikována pomocí knihovny funkcí.To je místo, kde můj problém začíná.

Díky

 
Ahoj,

Použijte znak proměnné pro SFR, a použití a / nebo k manipulaci s bity

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsměv" border="0" />Na zdraví!

 
SFR adresy a bity nejsou možné, jak params v Keil
Viz také C51 manuál

usbman

 
Ahoj

Zde je způsob přístupu k SFR použití je adresa jazyk C

/ / Nastavení PTR na adresu - je-li SFR ležel na adrese 99h:

# Define sfr_test 0x099 / / 0x099 je SFR adresu

neplatné ChangeSfr (unsigned char * SfrData)
(
/ / Nastaví hodnotu SFR na 55H
SfrData = 0x55;

)/ / Funkce volání
ChangeSfr ((unsigned char *) sfr_test);Nemyslím si, že můžete použít tento METHODE pro přístup jediný kousek!
jde o

Bobi

 
složit kousky jako parametry funkce definovat bit jako sbit na začátku programu, a pak použít stejnou definici jako parametr funkce
např.: -
sbit ACC_0 = 0xE0;
neplatné a_func (ACC_0)
(
)
To funguje tak dlouho, dokud funkce volání je správně definována
To byla vyzkoušena a otestována v Keil (uvision 2)
ayan

 
žádný z výše uvedených soulutions bude fungovat
params jsou předávána v registrech!v Keil

Zkontrolujte prosím, zda ASM výstup

usbman

 

Welcome to EDABoard.com

Sponsor

Back
Top