আরডুইনো: ডিজিটাল্রিড () এবং ডিজিটাল রাইট () এর দ্রুত বিকল্প?


13

আরডুইনো ফাংশনগুলি কল করার দ্রুততম বিকল্পগুলি কী digitalread()এবং digitalwrite()? এভিআর-নির্দিষ্ট বা চিপ-নির্দিষ্ট সমাধানগুলি গ্রহণযোগ্য।


3
এটি এবং আপনার শেষ প্রশ্নটি পড়ে মনে হচ্ছে আপনি খুব দ্রুত কিছু করতে চান। আমি মনে করি এটি কী এবং কীভাবে দ্রুত কার্যকর হতে পারে সে সম্পর্কে বিশদ দেওয়া।
অলি গ্লেজার

@ অলি, ভাল ধারণা, ধন্যবাদ বর্তমান প্রকল্প আরসি ট্রান্সমিটারগুলির জন্য একটি টিউনিং সিস্টেম। এটি ভালভাবে কাজ করে, তবে আমি আরসি পিডাব্লুএম সিগন্যাল ডিকোডিংকে দক্ষ করে তুলতে চাই যাতে আমি অন্যান্য প্রকল্পের জন্য একই কাঠামোটি ব্যবহার করতে পারি। আমার এখন অবধি যা আছে সে সম্পর্কে এখানে একটি লিখনআপ দেওয়া হয়েছে
মার্ক হ্যারিসন

উত্তর:


18

সরাসরি ডিজিটাল বন্দরগুলি অ্যাক্সেস করুন!

আমি পরীক্ষা 3 পদ্ধতি ছিল

  • ডিজিটাল রাইট (পিন, কম); ডিজিটাল রাইট (পিন, উচ্চ);
  • সিএলআর (পোর্টটিবি, 0); সেট (পোর্টটিবি, 0);
  • পোর্টটিবি | = _বিভি (0); পোর্টটিবি & = ~ (_বিভি (0));

[...]

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন, ডিজিটাল রাইটটি সম্পূর্ণ হতে প্রায় 56 চক্র নেয়, যখন সরাসরি পোর্ট অ্যাড্রেসিংয়ে 2 চক্র লাগে। আইও অপারেশনগুলির প্রচুর প্রোগ্রামগুলির জন্য এটি সময়ের চেয়ে বড় পার্থক্য!



2

উপরে প্রস্তাবিত হিসাবে, সরাসরি ডিজিটাল পোর্টগুলি অ্যাক্সেস করুন। কিন্তু স্টাইল দিয়ে!

হার্ডওয়্যার রেজিস্টারগুলিতে সরাসরি হার্ড-কোডেড মানগুলি লিখে, আপনি পঠনযোগ্যতা এবং বহনযোগ্যতা .িলা করেন।

আমি গিথুবকে এমন একটি সরঞ্জাম প্রকাশ করেছি যাতে আমি এইচডাব্লুএ বলেছিলাম যা আপনাকে হার্ডওয়্যারটিতে একটি অবজেক্ট-ভিত্তিক ইন্টারফেস ব্যবহার করতে দেয় যার জন্য সি ++ সংকলক প্রয়োজন হয় না এবং উচ্চ দক্ষতার বাইনারি কোড তৈরি করে।

এইচডব্লিউএ আছে: https://github.com/duparq/hwa


1
"উচ্চ দক্ষতার বাইনারি কোড" প্রকৃত পরিমাপের সাথে আরও অনেক প্রামাণিক মনে হবে।
দিমিত্রি গ্রিগরিয়েভ

2

আরডুইনোএসই-র লোকেরা ইতিমধ্যে এটি নিয়ে আলোচনা এবং পরীক্ষা করেছে। এটি দেখা যাচ্ছে যে digitalWriteFast()নিয়মিত তুলনায় উন্নতি খুব বেশি নয় digitalWrite()। ডাইরেক্ট পোর্ট অ্যাক্সেস তবে এর চেয়ে প্রায় 35-40 গুণ বেশি দ্রুত digitalWrite()


0

চিপকিট আনো 32 ব্যবহার করুন এটি এভিআর ভিত্তিক আরডুইনোসের চেয়ে অনেক দ্রুত। এটি আপনার সময় সংক্রান্ত সমস্যাগুলিও মোকাবেলা করবে।


1
আমি মনে করি না দ্রুততম হার্ডওয়্যার কেনা এখানে সেরা উত্তর, যতক্ষণ না আপনি নিজের বর্তমান হার্ডওয়্যারের সীমানায় পৌঁছে গিয়েছেন এবং সিদ্ধান্ত নিয়েছেন যে আপনার আরও দ্রুত কিছু প্রয়োজন need
জন এল

1
ডাউনভোটস কেন? তিনি চেয়েছিলেন দ্রুত সমাধান না, কেবল একটি দ্রুত সমাধান, যা আমি সরবরাহ করেছি। যে কেউ দ্রুত আরডুইনো-ভিত্তিক সমাধানের পরামর্শ দিতে পারে?
লিওন হেলার

12
কারণ চিপকিট একটি আরডুইনো নয়, একটি আরডুইনো সামঞ্জস্যপূর্ণ প্ল্যাটফর্ম। এর অর্থ হ'ল পোর্ট স্যুইচিং দ্রুত হলেও কিছু গ্রন্থাগারের পুনর্লিখনের বড় সম্ভাবনা রয়েছে। ইথারনেট, এক্সবি, এসডি কার্ড গ্রন্থাগারগুলি বাক্সের বাইরে মোটেও কাজ করতে পারে না। তদ্ব্যতীত, মার্ক বিশেষভাবে নতুন প্ল্যাটফর্মের (দোহ) জন্য নয়, ডিজিটালরিড / রাইটের বিকল্প ফাংশন কলগুলির জন্য অনুরোধ করে।
হ্যান্স

2
হার্ডওয়্যার পরিবর্তন করা কখনই ভাল সমাধান নয়। খুব কমপক্ষে আপনি কিছু ভাল শিক্ষার হাতছাড়া করেছেন এবং হার্ডওয়্যারটির দক্ষ ব্যবহার কী হবে তা কখনই শিখবেন না।
রিক_2047

1
@ রিক_২০47৪ আমি "কখনই" বলব না - যদি প্রয়োজনীয়তাটি নতুন বা প্রসারিত হয় বা পরিমাণ বৃদ্ধি পায় তবে বিকল্পগুলি দেখার পক্ষে এটি বোধগম্য হতে পারে। তবে আমি একমত যে স্থূল সফ্টওয়্যার অদক্ষতার উপর অন্ধভাবে হার্ডওয়্যার নিক্ষেপ করা অসম্পূর্ণ - এটি উচ্চতর পারফরম্যান্স সিস্টেমগুলি নিজের ওভারহেড যুক্ত করতে পারে এবং কখনও কখনও কিছু কাজের জন্য সহজগুলির চেয়ে ধীর গতিতে শেষ করতে পারে তাই এটি কাজ করে না। আপনি যে প্ল্যাটফর্মটি ব্যবহার করেন বা ব্যবহার করে চিন্তা করেন সে সম্পর্কে শিখার কোনও বিকল্প নেই।
ক্রিস স্ট্রাটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.