মেকফাইল-সামঞ্জস্যপূর্ণ স্কেচগুলি কীভাবে লিখবেন?


9

আমি আমার স্কেচগুলি লিখতে চাই যাতে আমি আরডুইনো আইডিই ব্যবহার করে সেগুলি তৈরি করতে / আপলোড করতে পারি, বা বিকল্পভাবে জিসিসি এবং একটি মেকফিল ব্যবহার করে ile

আমি শীর্ষে ফাংশন ঘোষণাগুলি অন্তর্ভুক্ত করার বিষয়ে জানি তবে আমার স্কাইলটি আমার সংকলক দ্বারা বৈধ সি ++ হিসাবে বিবেচিত হওয়ার জন্য আরও কিছু করার আছে?

আপডেট 1

আর্দুইনো আইডিই .ino এবং .pde ফাইলগুলিতে কী করে তা বোঝা ভাল, তবে আমার প্রশ্নের বহিরাগত, সুতরাং এটি কোনও সদৃশ নয়। আমি যা জানতে চাই তা হ'ল "আমি কীভাবে কোনও প্রোগ্রাম লিখি যা এটি আরডুইনো আইডিই এবং জি ++ উভয়ই বৈধ বলে বিবেচিত হয় ।

এখানে উপলভ্য অফিসিয়াল (?) মেকফাইল আইডিই এর পরিবর্তে মেকফিল ব্যবহার করলে কী করবেন তা ব্যাখ্যা করে :

# The Arduino environment does preliminary processing on a sketch before
# compiling it.  If you're using this makefile instead, you'll need to do
# a few things differently:
#
#   - Give your program's file a .cpp extension (e.g. foo.cpp).
#
#   - Put this line at top of your code: #include <WProgram.h>
#
#   - Write prototypes for all your functions (or define them before you
#     call them).  A prototype declares the types of parameters a
#     function will take and what type of value it will return.  This
#     means that you can have a call to a function before the definition
#     of the function.  A function prototype looks like the first line of
#     the function, with a semi-colon at the end.  For example:
#     int digitalRead(int pin);

... তবে এটি আইডিই এবং একটি মেকফাইল উভয় কীভাবে ব্যবহার করে তা ব্যাখ্যা করে না ।

আপডেট 2

আমি সম্প্রতি প্ল্যাটফর্মআইও খুঁজে পেয়েছি যা সরাসরি এই প্রশ্নের উত্তর দেয় না, তবে প্রচুর প্রক্রিয়াটি স্বয়ংক্রিয় করে তোলে (আপনার জন্য স্কোন ফাইলগুলি উত্পন্ন করে) এবং এখনও পর্যন্ত আমি আরডুইনো আইডিই এবং উত্স + মেকফাইল উভয় পদ্ধতির উপরই ওয়ার্কফ্লো পছন্দ করি। লেখকদের পাশাপাশি ভাল সমর্থন।


সুতরাং প্রশ্নটি আমার জ্ঞানের বাইরে, তবে কিছু বিষয় যা আপনার বিবেচনা করতে হবে তা হ'ল আড়ডিনোহ ফাইলের অন্তর্ভুক্ত। বুটলোডার অন্তর্ভুক্ত; এবং অন্য যাই হোক না কেন। আমি এই প্রশ্নটি অনুসরণ করব :)
মাদ্রিদ

আমি আপনাকে আরডিনো-সিএমকে ( github.com/queezythegreat/arduino-cmake ) একবার দেখে নেওয়ার পরামর্শ দিই
jfpoil ব্যাখ্যা


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

1
সংযুক্ত মেকফিলের মন্তব্যে, আমার উত্তর এখানে পেয়েছি ।
hoosierEE

উত্তর:


1

Gcc / g ++ দ্বারা আমার মনে হয় আপনি বিশেষত AVR-gcc / avr-g ++ উল্লেখ করছেন। আপনার আরডুইনো কোডটি সম্ভবত বৈধ সি / সি ++ কোড হিসাবে বিবেচিত হবে না কারণ জিসিসি আপনার পিসির সাথে লক্ষ্য সিস্টেম হিসাবে সংকলন করার চেষ্টা করবে। "ডাব্লুপ্রগ্রামগ্রাম" এর অনেকগুলি ম্যাক্রো আপনার টার্গেট সিস্টেমে অ্যাক্সেসযোগ্য মেমরির উল্লেখ করবে।

আপনাকে "WProgram.h" শিরোনাম ফাইল অন্তর্ভুক্ত করে এবং আপনি উপরের আরডুইনো মেকফিল দিয়ে আপনার কোডটি তৈরি করেন (যা avr-g ++ জি ++ ব্যবহার করে না), আপনার সিপিপি ফাইলগুলি সংকলন করে সঠিকভাবে লিঙ্ক করা উচিত। তেমনি, আপনি IDE এর মধ্যে আপনার আরডুইনো কোডটি খুলতে এবং সেখানে আপনার কোড যাচাই করতে সক্ষম হবেন। আইডিই আপনার জন্য "ডাব্লুপ্রগ্রামগ্রাম" ফাইলটিতে রাখে, তাই প্রযুক্তিগতভাবে এটি দুটিবার অন্তর্ভুক্ত হবে। যাইহোক, অন্তর্ভুক্ত রক্ষীরা কোনও সদৃশ কোড সংকলন হতে বাধা দেবে।


1

সাধারণত আপনাকে রাষ্ট্র setup()এবং loop()ফাংশনগুলি বর্ণনা করতে হবে, এগুলি কেবল আইডিই এর মোড়ক:

void setup() {}
void loop() {}

int main() {
  setup();
  while (1)
    loop();

  return 0; // never reached
}

এটি আইডিই এবং কমান্ড লাইনে উভয়ই কাজ করে। আপনি যেমন আইডিইতে বোর্ড এবং সিরিয়ালপার্ট নির্দিষ্ট করেছেন, আপনাকে মেকফাইলে উভয়টি নির্দিষ্ট করতে হবে। সুতরাং আপনি দুটি কনফিগারেশন শেষ হবে।

অনেকে পৃথক সম্পাদক ব্যবহার করতে পছন্দ করেন বা সংকলক এবং লিঙ্কার সুইচ সেট করে আরও কনফিগারেশন বিকল্প রয়েছে বলে অনেকে আইডিই ছেড়ে দেয় leave

এটি সত্যিই সহজ করার জন্য, আপনি আরডুইনো মেকফিল ব্যবহার করতে পারেন । আজ 347 দিয়ে অভিনয় করেছেন।

এখানে মেকফিল একটি উদাহরণ:

# try: make help
#
include /usr/share/arduino/Arduino.mk
ARDUINO_DIR = /usr/share/arduino
# list boards with: make show_boards
BOARD_TAG = promicro16
ARDUINO_LIBS = EEPROM 
# MONITOR_CMD = picocom -b 9600
MONITOR_CMD = moni -config ACM0-9600.cfg
ARDUINO_PORT = /dev/serial/by-id/usb-Arduino_LLC_Arduino_Leonardo-if00
# ARDUINO_PORT = /dev/ttyACM0
# ARDUINO_PORT = /dev/ttyUSB0
OPTIMIZATION_FLAGS = -Os -fexpensive-optimizations -fstrength-reduce
#

'* .Ino' ফাইলগুলি পরিবর্তন করার দরকার নেই এবং Makefileফাইলটি একই ডিরেক্টরিতে স্থাপন করা উচিত।

এদিকে আমি উপায়টিকে পছন্দ করি Makefileতবে আমি এখনও ছোট প্রকল্পগুলির জন্য আইডিই ব্যবহার করি।


1

আমি যা জানতে চাই তা হ'ল "আমি কীভাবে কোনও প্রোগ্রাম লিখি যা এটি আরডুইনো আইডিই এবং জি ++ উভয়ই বৈধ বলে বিবেচিত হয়।

দেখুন: কীভাবে আইডিই স্কেচ ফাইলের প্রাক-প্রিপ্রোসেসিংয়ের তাত্পর্য এড়ানো যায়

মেকফাইলটি দেখতে কেমন লাগবে এই মুহুর্তটিকে উপেক্ষা করে উপরের লিঙ্কে আলোচিত আপনার প্রশ্নের সহজ উত্তর হ'ল আইডিইতে সমস্ত কিছু .cpp এবং .h ট্যাবগুলিতে স্থাপন করা এবং মূল "স্কেচ" (.ino) রেখে যাওয়া ফাইল) ফাঁকা। এটি এখনও আইডিই এর অধীনে সংকলন করবে এবং তাই সাধারণ সি ++ হবে।

আপনি নিজের .cpp ফাইলগুলি এর সাথে শুরু করেছেন তা নিশ্চিত করুন:

#include <Arduino.h>

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

এছাড়াও আমার উত্তরটি এখানে দেখুন: শ্রেণি এবং অবজেক্টস: আসলে আমি কতগুলি এবং কোন ধরণের ফাইল ব্যবহার করতে পারি?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.