আমি ব্যাটারি চালানোর জন্য এটিটিইনি 85 পাওয়ার চেষ্টা করছি। আমি এটি 16.384 মেগাহার্টজ স্ফটিক থেকে ডিভাইড-বাই -8 ফিউজ সেট সহ এসেছি। ভিসি 3.3 ভোল্ট। ডাটাশিটে 22-7 চিত্র বলেছে যে অলস ( set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode();
) এ এটি 300 ডিগ্রি এ। প্রকৃতপক্ষে, আমি এটি 850 likeA এর মতো আরও আঁকতে দেখছি। আমি কেন বিদ্যুৎ খরচ দ্বিগুণ আশা করা যায় তা বুঝতে পারি না। টাইমার0 ব্যতীত আমি PRR তে সমস্ত কিছুই বন্ধ করে দিয়েছি, যা আমি প্রতি 25 এমএসে বাধা দেওয়ার জন্য কনফিগার করেছি। সুতরাং এটির বেশিরভাগ সময় অলস অবস্থায় ব্যয় করা উচিত, যা আমি এখনও টাইমারদের গণনা করতে চাই the
ফিউজগুলি 0x7f, 0xdf, 0xff।
এই পরীক্ষার জন্য কোডটি এখানে চলছে:
#include <Arduino.h>
#include <EEPROM.h>
#include <avr/sleep.h>
#include <avr/power.h>
#define P0 0
#define P1 1
#define P_UNUSED 2
ISR(TIMER0_COMPA_vect) {
// do nothing - just wake up
}
void setup() {
power_adc_disable();
power_usi_disable();
power_timer1_disable();
//PRR = _BV(PRADC) | _BV(PRTIM1) | _BV(PRUSI); // everything off but timer 0.
TCCR0A = _BV(WGM01); // mode 2 - CTC
TCCR0B = _BV(CS02) | _BV(CS00); // prescale = 1024
// xtal freq = 16.384 MHz.
// CPU freq = 16.384 MHz / 8 = 2.048 MHz
// count freq = 2.048 MHz / 1024 = 2000 Hz
OCR0A = 50; // 25 msec per irq
TIMSK = _BV(OCIE0A); // OCR0A interrupt only.
set_sleep_mode(SLEEP_MODE_IDLE);
pinMode(P_UNUSED, INPUT_PULLUP);
pinMode(P0, OUTPUT);
pinMode(P1, OUTPUT);
digitalWrite(P0, LOW);
digitalWrite(P1, LOW);
while(1) { sleep_mode(); }
}
void loop() {}