এটি ভুলে যেতে সহজ, তবে Arduino সি ++ ব্যবহার করে। সাধারণত, সি ++ অংশ লাইব্রেরি এবং সেইসাথে ফ্রেমওয়ার্কের পাশাপাশি অনেক লোক কেবল সি-ভাষা এক্সটেনশানগুলির মতো লাইব্রেরী বস্তুগুলি ব্যবহার করে একটি সি-শৈলী ব্যবহার করে তাদের প্রধান প্রোগ্রামগুলি কোড করতে থাকে। [FREDLLLE] সম্প্রতি একটি ডিজাইন টেমপ্লেট লাইব্রেরি তৈরি করার জন্য Arduino I / O এর পাশাপাশি তিনি GitHub এ ভাগ করে নিয়েছিলেন।
আপনি যদি Arduino এর সাথে কোনও বড় কিছু করেন তবে আপনি সম্ভবত বুঝতে পারছেন যে ডিজিটালওয়্রিাইটটি সহজ কিনা, এটি দৃশ্যের পিছনে একটি দুর্দান্ত কাজ করে যা নিশ্চিত করে PIN কনফিগারেশন হয় এবং এটি প্রতিটি কলের উপর ওভারহেড যোগ করে। [Fredllll] ডিজাইন টেমপ্লেট সংস্করণ দুটি চক্র একটি পিন এর উল্লেখ করতে পারেন। আপনি সঠিক একই পোর্টে অন্যান্য পিনের নির্দিষ্ট করার বিষয়ে বিরক্ত মনে রাখবেন না যদি আপনি অর্ধেক কাটা করতে পারেন।
আপনি একটি পিন চালু করতে একটি ধ্রুবক ব্যবহার করতে পারেন, এই মত:
সুইচন <1> ();
আপনি যদি ম্যাজিক নম্বরগুলি ব্যবহার করতে চান না (এবং এটির স্মার্ট) আপনি একটি ধ্রুবক সংজ্ঞায়িত করতে পারেন:
CONTS UINT8_T LEDPIN = 1;
সুইচন
কারণ আপনি সম্ভবত কিছু মার্জিত সময় করতে চান, একইভাবে একটি NOP ডিজাইন টেমপ্লেটটি রয়েছে যা আপনাকে একটি সেট নম্বর চক্রগুলি বিলম্ব করতে দেয়। এখানে Reddit থেকে কিছু পরীক্ষা কোড যা একটি 1.3 মেগাহার্টজ স্কয়ার ওয়েভ তৈরি করে, উদাহরণস্বরূপ:
Constr uint8_t MyPin = 5;
অকার্যকর লুপ () {
cli (); // তারা টাইম আপ স্ক্রু হবে হিসাবে interrupts নিষ্ক্রিয়
{
SwitchonexClusive
nop <5> (); // 5 সাইকেল
SwitchoffPortOfPin
NOP <3> (); // 3 সাইকেল
} যখন (1) // ফিরে যান ফিরে 2 চক্র
}
স্পষ্টতই, এটি সর্বাধিক নয়, কারণ লুপে আটটি বিলম্বের চক্র রয়েছে।
আপনি এই লাইব্রেরিটি ব্যবহার করার জন্য টেমপ্লেট সম্পর্কে অনেক কিছু বোঝার প্রয়োজন নেই, তবে আপনি যদি আরো বুঝতে চান তবে আমরা অতীতে তাদের আচ্ছাদিত করেছি। আমরা আগে উল্লেখ করেছি যে ডিজিটালব্রাইটটি সরাসরি পোর্ট অ্যাক্সেসের চেয়ে প্রায় পঞ্চাশ গুণ ধীর, পাশাপাশি অন্য আমি / o ক্রিয়াকলাপগুলি অনেক ভাল নয়। টেমপ্লেটগুলি অন্যান্য অপারেশনগুলি আরও কার্যকর করতে পারে কিনা তা পরীক্ষা করার জন্য এটি চিত্তাকর্ষক হবে।