AN592 Frequency Counter есть вопрос

Поклонники продукции Microchip Technology Inc тусуются тут.
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: AN592 Frequency Counter есть вопрос

Сообщение veso74 »

Martian, и с функция PPS (Peripheral Pin Select) рабочий метод получился :).
Mощная функция! Что ж, заимствую еще один вывод :). Только идея важна в случае :beer:.
timer0 на PIN_A2, считаем, изм период заканчивается, PPS, timer0 на PIN_C3, CLC LC1POL в 0/1 и получили досчета.
А меньшим делителем, даже не мерцает +/-. И вижу температурьные изменения генераторов ... :)

Код: Выделить всё

#bit LC1POL = 0xF11.7
...
void main() {
  LC1POL = 1;

  setup_clc1(CLC_ENABLED | CLC_OUTPUT_INVERTED);
  ...
  while (TRUE) {
    t0_pre = 256;

    uint8_t tmp = get_timer0();

    pin_select("T0CKI", PIN_C3);

    while (tmp == get_timer0()) {
      LC1POL = 0;
      output_bit(PIN_C3, LC1OUT);

      LC1POL = 1;
      output_bit(PIN_C3, LC1OUT);

      t0_pre--;
    }

    pin_select("T0CKI", PIN_A2);

    freq = ((uint32_t)t0_hi * 256 + (uint32_t)t0_lo) * 256 + (uint32_t)t0_pre;  // prescaler = 256
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AN592 Frequency Counter есть вопрос

Сообщение Martian »

меня только смущает умножение на 256 - я бы сделал сдвиг влево на 8
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: AN592 Frequency Counter есть вопрос

Сообщение veso74 »

Компилятор оптимизирует :). Со << память больше. Я пробовал некоторое время назад на маленьких PICах. Даже не пытаюсь писать "коротко и правильнее, ближе к машине" :). А и чип: "большой".

PIC16F18326, MAX7219 8x LED дисплей (для теста).

Код: Выделить всё

* 256 в двух местах: ROM used: 943/16384 (6%), RAM used: 29/2048 (1%) at main() level, 85/2048 (4%) worst case
<< 8 в двух местах: ROM used: 959/16384 (6%), RAM used: 31/2048 (2%) at main() level, 85/2048 (4%) worst case
Даже есть функция x =_mul(val1, val2);

Код: Выделить всё

Performs an optimized multiplication. By accepting a different type than it returns, this function avoids the overhead of converting the parameters to a larger type.
Если бы это было только так: "калибрую" простым умножением с число плавающей запятой (не анализируя время задержки пока). Позже вероятно будет иначе, но и та работает :)) .
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6178
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: AN592 Frequency Counter есть вопрос

Сообщение Asmodey »

Я немного не понял, что это было? Досчет делителя без подачи импульсов на вход предделителя счетчика извне? Периодическим переключением состояния како-то периферии?
Астролябия-сама меряет, было бы что мерять!!!
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AN592 Frequency Counter есть вопрос

Сообщение Martian »

да, именно так. экономия ножки корпуса
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6178
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: AN592 Frequency Counter есть вопрос

Сообщение Asmodey »

Понятно. Меня тоже напрягала необходимость дергать одной ногой за другую. veso74 нашел красивое решение.
Астролябия-сама меряет, было бы что мерять!!!
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: AN592 Frequency Counter есть вопрос

Сообщение veso74 »

Скорее просмотр из любопытства :) (см. первые сообщения). сообщ.
До сих пор к старым чипам использовал T0SE (TMR0SE) во многих конструкциях снова без использования какого-либо другого вывода для досчета (tnx botchin). В новом: напр. PIC16F18326, нет T0SE (TMR0SE), а ставили мультиплексор (с некоторыми минусами как видели, для нашего пользования в честотмере).
Margo
Открыл глаза
Сообщения: 68
Зарегистрирован: Сб апр 02, 2016 07:08:34

Re: AN592 Frequency Counter есть вопрос

Сообщение Margo »

Метод досчета немножко устарел, потому что на низких частотах дает большую погрешность измерения. Сейчас применяется метод обратного счета, который обеспечивает погрешность измерения на частоте 1Гц порядка 0,0001%.
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: AN592 Frequency Counter есть вопрос

Сообщение veso74 »

Привестите пример, пожалуйста. Если можно: ваш пример с кодом PIC-a на C.
Margo
Открыл глаза
Сообщения: 68
Зарегистрирован: Сб апр 02, 2016 07:08:34

Re: AN592 Frequency Counter есть вопрос

Сообщение Margo »

Журнал "Радио" №12 за 2021 год - частотомер на PIC18F252.
Ответить

Вернуться в «PIC»