Жаңа үлгіні жоғары үлгілеу жылдамдығын есептеу құралымен салыстыру

Мен sdFat кітапханасын аналогты бинт тіркеушісінің мысалы ретінде пайдаланамын,

Github: SdFat/SdFat/мысалдар/AnalogBinLogger /

The program is working fine and every thing but the thing is, this high speed datalogger uses interrupts and timers to make the ADC work at a pre-determined sampling frequency and it DOES NOT use the normal analogRead ()

Қандай да бір нәрсе, мысалы, кейбір аналогтық пиннің кірісі алдын-ала анықталған мәнге ие болса, кейбір цифрлық штыруға HIGH немесе LOW жазғым келеді, Менің сұрағым, жаңа үлгіні аналогтық бинмекші тіркелгісіндегі мысалды қалай салыстыруға болады?

if ( analogRead() < 256 ) {// do something}

бағдарламада analogRead() жоқ екенін білетіндіктен, ол таймерлер мен үзілістерді пайдаланады.

0

1 жауаптар

Функцияда

ISR(ADC_vect) {

айнымалы d ағымдағы үлгіден тұрады:

 //Read ADC data.
#if RECORD_EIGHT_BITS
  uint8_t d = ADCH;
#else //RECORD_EIGHT_BITS
 //This will access ADCL first.
  uint16_t d = ADC;
#endif //RECORD_EIGHT_BITS

Сондықтан d дегенге байланысты «нәрсе жасай» аласыз. Әрине, бұл таймердің үзілуі болғандықтан, сізде ештеңе жасауға уақытыңыз шектеулі болғандықтан, сіз не істейсіз, жылдам және тиімді екеніне көз жеткізіңіз - сондықтан сіз шынымен digitalWrite() орнына тікелей портқа кіруді пайдаланғыңыз келеді.

3
қосылды
@SabirMoglad adcindex бөлімін қарап көріңіз.
қосылды автор Majenko, көзі
бұл тамаша, рахмет, бірақ қаншалықты білуге ​​болады, қандай аналогтық штырь, бұл d мәні тиесілі, себебі бірнеше арналар пайдаланылады? @majenko
қосылды автор diegoaguilar, көзі