۱۳۹۶-۱۲-۵, ۱۲:۲۶ عصر
خيلي از اوقات شما نياز به استفاده از آدرس دهي عير مستقيم داريد. به عنوان مثال زماني كه مي خواهيد مقادير يك سنسور آنالوگ را در طول زمان مثلا 24 ساعت و با تناوب 1 دقيقه بخوانيد و دخيره نماييد. براي همين مثال اگر بخواهيد از آدرس دهي مستقيم استفاده كنيد نياز به نوشتن برنامه براي 24*60= 1440 حافظه داريد كه خوب كار غير عملي مي باشد. در ادامه به شرح استفاده از اين نوع آدرس دهي مي پردازيم.
در آدرس دهي معمولي شما براي ريختن يك مقدار در يك حافظه مثلا D0 به صورت زير برنامه مي نويسيد:
ولي هنگامي كه بخواهيد از آدرس دهي غير مستقيم استفاده نماييد برنامه را به صورت زير خواهيد نوشت:
در واقع همانند ساير زبانهاي برنامه نويسي مانند ++C از يك * استفاده مي كنيد. در خط بالا شما عدد 5 را در حافظه D0 نريخته ايد بلكه عدد 5 را به آدرسي ريخته ايد كه حافظه D0 نشان مي دهد.
بنابراين براي نوشتن يك برنامه اي كه هر يك دقيقه يكبار اطلاعات يك ورودي آنالوگ را مي خواند و ذخيره مي كند كافي است يك تايمر 1 دقيقه اي بگذاريم كه هر بار مقدار D0 را يكي افزايش دهد. بنابراين اولين مقدار در D100، دومين مقدار در D101 و ... ريخته خواهد شد.
برنامه كامل به صورت زير مي شود:
در آدرس دهي معمولي شما براي ريختن يك مقدار در يك حافظه مثلا D0 به صورت زير برنامه مي نويسيد:
بنابراين براي نوشتن يك برنامه اي كه هر يك دقيقه يكبار اطلاعات يك ورودي آنالوگ را مي خواند و ذخيره مي كند كافي است يك تايمر 1 دقيقه اي بگذاريم كه هر بار مقدار D0 را يكي افزايش دهد. بنابراين اولين مقدار در D100، دومين مقدار در D101 و ... ريخته خواهد شد.
برنامه كامل به صورت زير مي شود: