ايران ويج

نسخه‌ی کامل: مشکل در کد ویژن
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
آقا من میخوام یه پورتی رو با یک اسم بنویسم
مثلا:
کد:
A=PINA.0
چی کار باید کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟Whistle
کد php:
A Alias Pina.0 





Alias


از اين دستور براي تغير نام متغير استفاده مي شود .

مانند:

کد php:
Config PORTB.1 Output
Led Alias PORTB.1
Set Led 

حال شما مي توانيد در برنامه، بجاي PORTB.1 از نام LED استفاده نماييد .
آخ
حواسم نبود !
فکر کردم تو بسکام رو می خواین !!


فکر کنم تو کدویژن با دستور DEFINE هستش :

کد php:
#define A PINA.0 

البته دستوران Flash و Const هم هستش که کاربردش فرق داره !
با define نشد.
با const هم error میده! نمیدونم چرا؟!؟!؟!
منظورت از FLASH چی بود؟؟؟؟
defineو flashو constهمشون برای تعریف ثابت ازشون استفاده میشن
flashفقط مال کدویژنه و همون constحساب میشه

فکر نکنم بتونی توی کدویژن استفاده کنی
اما شاید بشه یه رجیستر رو نامشو عوض کنی
نه یه بیت از رجیستر
کد:
sfrb آدرس رجیستر=نام رجیستر;

مثلا:
کد:
sfrb PORTA=0x1b;
یا
sfrb LED=0x1b;

اینجا نامLED به رجیستر پورت آ در رجیستر های IOاختصاص داده شده
از این به بعد میتونی توی برنامه به جای PORT A از LED استفاده کنی

ولی این تغییر نامو باید توی فایل سرآمد هر میکرو هست
منظورم اینه مثلا: mega32.h
کافیه بری توش و به جای اسم رجیستر مورد نظرت اسم مورد نظر خودتو بذاری

به این کار میکن :اعلان رجیستر


در کل به نظر من این کارو نکنی بهتره

هم کتابخونت به هم میریزه
هم روز به روز ساختمان میکرو از یادت میره
اینجوری به صورت یخت افزاری به سیتم هم واقفی
مبل خودته
چه مشکلی پیش میاد اگه این کارو بکنم چی میشه که میگی نکنی بهتره؟!؟!؟!
شرمنده علی جون ببخشید
همین الآن دیدم
حرفمو پس میگیرم و در ملا عام ازت معذرت میخوامBiggrin
کد:
To improve the readability of the program you may wish to #define symbolic names to the bits in I/O registers:


sfrb PINA=0x19;
#define alarm_input PINA.2
void main(void)
{
/* test bit 2 input of Port A */
if (alarm_input) { /* place some code here */ };
/* ....... */
}
در ضمن لازم به ذکره:
کد:
It is important to note that bit selector access to I/O registers located in internal RAM above address 5Fh (like PORTF for the ATmega128 for example) will not work, because the CBI, SBI, SBIC and SBIS instructions can’t be used for SRAM access.