Sunday, December 1, 2024

Data Direction Register (DDR)? (sinhala)

 

Data Direction Register (DDR)?
දත්ත දිශා ලේඛන
-
අරමුණ:

දත්ත දිශා ලේඛනයක් මඟින් GPIO පින් එකක් ආදානයක් හෝ ප්‍රතිදානයක් ලෙස වින්‍යාස කර තිබේද යන්න තීරණය කරයි. -

ආදානය: PIN වලට සංවේදක වැනි බාහිර උපාංගවලින් දත්ත ලැබේ.

ප්‍රතිදානය: PIN එක LED, relays, or motors වැනි බාහිර උපාංග වෙත දත්ත යවයි.

-

එය ක්රියා කරන ආකාරය:

DDR හි සෑම බිට් එකක්ම GPIO වරායේ නිශ්චිත පින් එකකට අනුරූප වේ:

1: පින් එක ප්‍රතිදානයක් ලෙස වින්‍යාස කරයි.

0: පින් එක ආදානයක් ලෙස වින්‍යාස කරයි.

-

උදාහරණ වශයෙන්:

DDR = 0b00001111 (හෝ 0x0F) යනු:

Pins 0-3 ප්‍රතිදානය ලෙස වින්‍යාස කර ඇත.

Pins 4-7 ආදානය ලෙස වින්‍යාස කර ඇත.

-

MCU වල දත්ත දිශානති ලේඛනයක් ඇත්තේ ඇයි?

නම්‍යශීලී බව:

GPIO පින් බහුකාර්ය වේ. යෙදුම මත පදනම්ව ඒවාට යෙදවුම් හෝ ප්‍රතිදාන ලෙස ක්‍රියා කළ හැක.

DDR සමඟින්, ඔබට වැඩසටහන් ක්‍රියාත්මක කිරීමේදී එක් එක් පින් එකෙහි දිශාව ගතිකව වින්‍යාසගත කළ හැක. -

සම්පත් ප්‍රශස්තකරණය:

තනි පින් එකකට වින්‍යාසය මත පදනම්ව විවිධ භූමිකාවන් ඉටු කළ හැකි අතර, විශේෂිත කාර්යයන් සඳහා අවශ්‍ය කැප වූ අල්ෙපෙනති ගණන අඩු කරයි.

දත්ත ප්රවාහ පාලනය:

ආදාන මාදිලියේදී, MCU අහම්බෙන් බාහිර පරිපථ ධාවනය කිරීමෙන් පින් ආරක්ෂා කරයි.

ප්‍රතිදාන මාදිලියේදී, MCU එය පින් මත සංඥාව ක්‍රියාකාරීව ධාවනය කරන බව සහතික කරයි.
-
ආරක්ෂාව:

භාවිතයට නොගත් අල්ෙපෙනති පුල්-අප්/පහළට ප්‍රතිරෝධක සමඟ යෙදවුම් ලෙස වින්‍යාස කිරීම, පාවෙන අල්ෙපෙනති වළක්වා ගැනීමට, බල පරිභෝජනය සහ ශබ්දය අඩු කිරීමට උපකාරී වේ.
-
දත්ත දිශා ලේඛනයේ භාවිතයන්

නිමැවුම් වින්‍යාස කිරීම:

LED, buzzers, motors, සහ displays වැනි ධාවන උපාංග.

උදාහරණ: ප්‍රතිදානයක් ලෙස සකසා ඉහළ සංඥාවක් යැවීමෙන් පින් එකකට සම්බන්ධ LED එකක් සක්‍රිය කරන්න.
-
ආදාන වින්‍යාස කිරීම:

සංවේදක, බොත්තම් හෝ ස්විච වලින් සංඥා කියවීම.

උදාහරණය: පින් එක ආදානයක් ලෙස සකසා එහි තත්ත්‍වය කියවීමෙන් බොත්තම එබීමක් හඳුනා ගන්න.
-
ගතික භූමිකාවේ වෙනස්කම්:

සමහර යෙදුම් වලට ගතිකව ආදාන සහ ප්‍රතිදාන මාතයන් අතර මාරු වීමට පින් එකක් අවශ්‍ය වේ.
-
උදාහරණයක් වශයෙන්:

අර්ධ ද්විත්ව සන්නිවේදනයේ (උදා: RS-485), දත්ත සම්ප්‍රේෂණය සහ ලැබීම අතර තනි පින් එකක් විකල්ප වේ.

ද්විපාර්ශ්වික දත්ත බස් සඳහා, ප්‍රොටෝකෝලයේ වත්මන් අවධිය අනුව පින් එකක් ආදානයක් හෝ ප්‍රතිදානයක් ලෙස ක්‍රියා කළ හැක.

-

අඩු බල ප්‍රකාරය:

භාවිතයට නොගත් පින් ආදාන ලෙස වින්‍යාස කිරීම (පුල්-අප් හෝ පුල්-ඩවුන් ප්‍රතිරෝධක සහිත) පාවෙන තත්වයන් වළක්වයි, බලශක්ති පරිභෝජනය අඩු කරයි.
-
උදාහරණය: AVR හි දත්ත දිශා ලේඛනය (Arduino UNO)
-

ATmega328P සඳහා (Arduino UNO හි භාවිතා වේ), දත්ත දිශා ලේඛන DDRx ලේඛන වේ:

DDRB, DDRC, DDRD GPIO ports B, C, සහ D වලට අනුරූප වේ.
-
උදාහරණ කේතය:
-

void setup() {

// Configure pin 13 as output (Port B, Pin 5)

DDRB |= (1 << 5); // Set bit 5 of DDRB to 1

// Configure pin 2 as input (Port D, Pin 2)

DDRD &= ~(1 << 2); // Clear bit 2 of DDRD to 0

}

void loop() {

// Set pin 13 HIGH

PORTB |= (1 << 5); // Turn on the LED on pin 13

delay(1000);

// Set pin 13 LOW

PORTB &= ~(1 << 5); // Turn off the LED on pin 13

delay(1000);

}


-
DDR මඟ හැර pinMode() භාවිතා නොකරන්නේ මන්ද?

Arduino හි pinMode() වැනි ඉහළ මට්ටමේ ශ්‍රිත DDRs අභ්‍යන්තරව හසුරුවන වියුක්තයන් වේ.
-
DDR සෘජුවම භාවිතා කිරීම:

පුස්තකාල ඇමතුම් වැලැක්වීමෙන් වඩා හොඳ කාර්ය සාධනයක් ලබා දෙයි. -

PIN හැසිරවීම මගින් වැඩි පාලනයක් සපයයි.

උසස් යෙදුම් සඳහා සහ වියුක්ත ස්ථරවලින් පිටත වැඩ කරන විට (උදා: bare-metal ක්‍රමලේඛනය) අත්‍යවශ්‍ය වේ.

-
ගාස්තු කුටි සාදෘශ්‍යය (Toll Booth) :

ගාස්තු කුටිය = GPIO පින්

සෑම ගාස්තු කුටියක්ම ක්ෂුද්‍ර පාලකයේ GPIO පින් එකක් නියෝජනය කරයි. -

දිශා පාලනය = DDR

ගාස්තු කුටියේ ලීවරයක් හෝ බොත්තමක් ඇති අතර එය පැමිණෙන මෝටර් රථ (ආදාන) හෝ පිටතට යන මෝටර් රථවලට (ප්‍රතිදානය) ඉඩ දෙන ලෙස කුටිය සකසා තිබේද යන්න පාලනය කිරීමට ක්‍රියාකරුට භාවිත කළ හැකිය. -

ඒ හා සමානව, DDR විසින් එක් එක් GPIO පින් එකෙහි දිශාව ආදානය හෝ ප්‍රතිදානය වෙත සකසයි.
-
ආදාන මාදිලිය (මෝටර් රථ ඇතුළු වීම):

කුටිය මෝටර් රථ ලැබීමට (ආදාන මාදිලිය) සකසා ඇති විට, එය මුදල් එකතු කිරීමට හෝ වාහන දත්ත කියවීමට බලා සිටී. පින් කුටියේ ඇති මෝටර් රථය පරීක්ෂා කිරීම වැනි සංඥා කියවයි
-
(උදා: බොත්තම් එබීම හෝ සංවේදක ආදාන).
-

ප්‍රතිදාන මාදිලිය (මෝටර් රථ පිට වීම):

කුටිය මෝටර් රථ යැවීමට (ප්‍රතිදාන මාදිලිය) සකසා ඇති විට, ගේට්ටුව විවෘත වන අතර, මෝටර් රථ (දත්ත සංඥා) ඔවුන්ගේ ගමනාන්තයට පිටතට ගලා යයි. pin මඟින් LED සක්‍රිය කිරීම හෝ මෝටර් වෙත විධාන යැවීම වැනි සංඥා ධාවනය කරයි. -

භාවිතයට නොගත් කුටි (භාවිතා නොකළ PIN):
භාවිතයට නොගත් කුටි වසා තැබිය හැක (පුල්-අප්/පුල්-ඩවුන් ප්‍රතිරෝධක සහිත ආදාන ලෙස වින්‍යාස කර ඇත) කිසිදු මෝටර් රථයක් වැරදි දිශාවට ගමන් නොගන්නා බව සහතික කරයි. මෙය ව්යාකූලත්වය (පාවෙන තත්වයන්) මග හැරේ.
-

මෙය ප්රයෝජනවත් වන්නේ ඇයි?
-

නම්‍යශීලී බව:
ගාස්තු කුටියකට පැමිණෙන සහ පිටතට යන ගමනාගමනය අතර මාරු විය හැකි සේම, GPIO පින්වලට ඔබේ යෙදුමේ අවශ්‍යතා මත පදනම්ව ගතිකව භූමිකාවන් මාරු කළ හැකිය.

-

කාර්යක්ෂමතාව:
ආදානය හෝ ප්‍රතිදානය සඳහා අවශ්‍ය කුටි (PIN) පමණක් වින්‍යාස කිරීමෙන්, ඔබ ටෝල් Booth හි ක්‍රියාකාරිත්වය (ක්ෂුද්‍ර පාලක සම්පත්) ප්‍රශස්ත කරයි.
-

පාලනය:
DDR ක්‍රියාකරු ලෙස ක්‍රියා කරයි, ප්‍රදර්ශන කුටිය (PIN) නිවැරදිව හැසිරෙන බව සහතික කරයි, මාර්ග තදබදය (කෙටි පරිපථ හෝ නිර්වචනය නොකළ තත්වයන්) මග හැරේ.
-

Toll Booth Analogy සමඟ Arduino උදාහරණය:
-

කේතය:
-
void setup() {

// Pin 13: Toll booth allowing outgoing cars (output mode)

DDRB |= (1 << 5); // Pin 13 as output (Port B, Pin 5)

// Pin 2: Toll booth receiving incoming cars (input mode)

DDRD &= ~(1 << 2); // Pin 2 as input (Port D, Pin 2)

}

void loop() {

// Open the gate (output HIGH)

PORTB |= (1 << 5); // Set pin 13 HIGH

delay(1000); // Wait for 1 second

// Close the gate (output LOW)

PORTB &= ~(1 << 5); // Set pin 13 LOW

delay(1000); // Wait for 1 second

}

-

ප්රධාන කරුණු:
-

තීරණ ගන්නා ලෙස DDR: ගාස්තු කුටියට (පින්) එක වරකට කළ හැක්කේ එක් දෙයක් පමණි—එක්කෝ මෝටර් රථවලට ඇතුළු වීමට ඉඩ දෙන්න (ආදානය) හෝ මෝටර් රථවලට පිටතට යාමට ඉඩ දෙන්න (ප්‍රතිදානය). DDR, මඟින් PIN වල ඔබ බලාපොරොත්තු වන හැසිරීම සහතික කරයි.
-
ගතික භූමිකාවේ වෙනස්කම්: ගාස්තු කුටියක් දවසේ විවිධ වේලාවන් සඳහා දිශාවන් මාරු කළ හැකි සේම, පින් එකකට යෙදුම මත පදනම්ව ආදානය සහ ප්‍රතිදානය අතර ගතිකව මාරු විය හැක.
-
සාරාංශය

දත්ත දිශා ලේඛනය PIN එකක් ආදානයක්ද ප්‍රතිදානයක්ද යන්න පාලනය කරයි. -

එය නම්‍යශීලී බව, සම්පත් ප්‍රශස්තකරණය සහ ආරක්ෂාව සඳහා මූලික ලක්ෂණයකි. -

එය සංවේදක වලින් දත්ත කියවීමේ සිට actuators ධාවනය කිරීම සහ ඉහළ සන්නිවේදන ප්‍රොටෝකෝලවල භාවිතාවන PIN වල භූමිකාවන් ගතිකව වෙනස් කිරීම දක්වා විහිදේ. - තාමත් අපේ group එකේ නැත්තන් group එකට සෙට් වෙන්න :⁣

https://www.facebook.com/groups/paperclipx

මේ group එකේ දාන දේවල් හොඳයි කියල හිතෙනවනම් ඕගොල්ලොන් ගේ යාලුවන්වත් group එකට එකතු කරන්න !⁣

No comments:

Post a Comment