হ্যাঁ, আপনি উত্স কোডে ম্যানুয়ালি EEPROM এ ডিফল্ট ডেটা লিখতে পারেন। প্রথমে, এভিআর: ডিনের এভিআর ইপ্রোম টিউটোরিয়াল দিয়ে ইপ্রোমের এই দুর্দান্ত নির্দেশিকাটি দেখুন । এছাড়াও, আমার যুক্ত করা উচিত যে মেকফিল ব্যবহার করে EEPROM ডেটাযুক্ত একটি। ডিপ ফাইল তৈরি করা ভাল is ধারণা যা উত্স কোডের সাথে ডিভাইসে প্রোগ্রাম করা হবে। তবে, আপনি যদি বিভিন্ন মেকফিল এবং লিঙ্কার অপারেশন সম্পর্কে অপরিচিত হন তবে এটি এখনও আপনার উত্স কোড ফাইলের মধ্যে থেকে করা যেতে পারে - সার্কিটটি চালিত হওয়ার সাথে সাথে এটি ঘটবে, প্রাথমিক প্রোগ্রাম অপারেশনটি থামিয়ে দেবে।
প্রোগ্রামের শুরুতে (কোনও মূল লুপের আগে) আপনি এরকম কিছু করতে পারেন:
#include <avr/eeprom.h>
#define ADDRESS_1 46 // This could be anything from 0 to the highest EEPROM address
#define ADDRESS_2 52 // This could be anything from 0 to the highest EEPROM address
#define ADDRESS_3 68 // This could be anything from 0 to the highest EEPROM address
uint8_t dataByte1 = 0x7F; // Data for address 1
uint8_t dataByte2 = 0x33; // Data for address 2
uint8_t dataByte3 = 0xCE; // Data for address 3
eeprom_update_byte((uint8_t*)ADDRESS_1, dataByte1);
eeprom_update_byte((uint8_t*)ADDRESS_2, dataByte2);
eeprom_update_byte((uint8_t*)ADDRESS_3, dataByte3);
"আপডেট" ফাংশনটি EEPROM জীবনকাল সংরক্ষণ করে অপ্রয়োজনীয় লেখাগুলিতে সংরক্ষণ করার জন্য সেই মানটি ইতিমধ্যে আছে কিনা তা পরীক্ষা করে দেখুন। তবে খুব বেশি লোকেশনের জন্য এটি করতে বেশ সময় নিতে পারে take একক অবস্থান যাচাই করা ভাল। যদি এটি পছন্দসই মান হয়, তবে বাকি আপডেটগুলি সম্পূর্ণভাবে এড়ানো যায়। উদাহরণ স্বরূপ:
if(eeprom_read_byte((uint8_t*)SOME_LOCATION) != DESIRED_VALUE){
eeprom_write_byte((uint8_t*)SOME_LOCATION, DESIRED_VALUE);
eeprom_update_byte((uint8_t*)ADDRESS_1, dataByte1);
eeprom_update_byte((uint8_t*)ADDRESS_2, dataByte2);
eeprom_update_byte((uint8_t*)ADDRESS_3, dataByte3);
}
আপনি যদি প্রচুর পরিমাণে ডেটা আপডেট করতে চান, তবে অন্যান্য ফাংশনগুলি ব্যবহার করে দেখুন eeprom_update_block(...)
। এবং অবশ্যই এই টিউটোরিয়ালটি পড়ুন; এটা ভাল লেখা আছে।
আপনি EEPROM আপডেটের সমস্ত বিবৃতি একক প্রিপ্রসেসর শর্তাধীন বিবৃতিতে রাখতে পারেন। এটি করা খুব সহজ:
#if defined _UPDATE_EEPROM_
#define ADDRESS_1 46 // This could be anything from 0 to the highest EEPROM address
uint8_t dataByte = 0x7F; // Data for address 1
eeprom_update_byte((uint8_t*)ADDRESS_1, dataByte1);
#endif // _UPDATE_EEPROM_
আপনি যদি নিম্নলিখিতটি না করেন তবে এই বিট কোডটিও সংকলিত হবে না:
#define _UPDATE_EEPROM_
আপনি এটি একটি মন্তব্য হিসাবে সেখানে রেখে যেতে পারেন, তারপরে আপনার যদি ডিফল্ট EEPROM মান পরিবর্তন করতে হয় তবে কোনও অসুবিধা হবে না। সি প্রিপ্রসেসর সম্পর্কিত আরও তথ্যের জন্য, এই অনলাইন ম্যানুয়ালটি পরীক্ষা করে দেখুন । আমি মনে করি আপনি ম্যাক্রোগুলি এবং শর্তাধীন বিবৃতিতে বিভাগগুলিতে সবচেয়ে আগ্রহী হতে পারেন।