Минавайки sbit адрес, като функция на параметрите 8051

X

x_zoli

Guest
Здравейте всички

Може ли някой да ми каже как да предадат sbit и / или SFR адреси като функция параметри в Ке * IL, така че по-късно мога да присвоите стойности на тези sbits или sfrs (по-конкретно пристанище пина, или цялото пристанище).
Аз се опитвам да пиша набор от функции, LCD (HD44780 съвместим) и го превръщат в библиотеката.Използвайки го като библиотека, аз трябва да е гъвкава, за нивото, че данните, пристанището и игли за контрол може да бъде определен чрез средствата на библиотечни функции.Това е мястото, където мой проблем започва.

Благодарности

 
Здрасти,

Използвайте Чар променлива за SFR, и използването и / или да се справят с бита

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />Наздравици!

 
SFR адреси и бита не са възможни, както params в Кайл
Виж също C51 употреба

usbman

 
Привет

Ето как за достъп до SFR, които го използват адрес на езика C

/ / Задаване на PTR на адрес - ако SFR 99H се на адрес:

# определят sfr_test 0x099 / / 0x099 е SFR адрес

нищожен ChangeSfr (грозен Char * SfrData)
(
/ / Задаване на стойността на SFR да 55H
SfrData = 0x55;

)/ / Извикване на функция
ChangeSfr ((грозен Чар *) sfr_test);Аз не мисля, че можете да използвате тази Methode да имат достъп до едно малко!
с уважение

Боби

 
да премине бита като функция параметри определят малко като sbit в началото на програмата и след това използва същата дефиниция на функция параметър
например: --
sbit ACC_0 = 0xE0;
нищожен a_func (ACC_0)
(
)
Това работи толкова дълго, колкото функция призовава се определи точно,
Това е изпитана и проверена в Кайл (uvision 2)
Аян

 
нито един от по-горе soulutions ще работи
params са преминали в регистрите!в Кайл

Моля, проверете продукция ASM

usbman

 

Welcome to EDABoard.com

Sponsor

Back
Top