Перейти к содержанию
    

Input capture

Нужно сделать захват таймера по изменнию состояния входа (PF4).

Текст программы:

 

#include "avr_compiler.h"
#include "port_driver.h"
#include "event_system_driver.h"



void main(void)
{
    /* Configure PF4 as input, sense on both edges. */
    PORTF.PIN4CTRL |= PORT_ISC_BOTHEDGES_gc;
    PORTF.DIRCLR = 0x10;

    /* Select PF4 as event channel 0 multiplexer input. */
    EVSYS_SetEventSource( 0, EVSYS_CHMUX_PORTF_PIN4_gc );

    /*  Select event channel 0 as event source for TCC0 and input
    *  capture as event action.
    */
    TCC0.CTRLD = (uint8_t) TC_EVSEL_CH0_gc | TC_EVACT_CAPT_gc;

    /* Enable TCC0 "Compare or Capture" Channel A. */
    TCC0.CTRLB |= TC0_CCAEN_bm;

    /* Configure TCC0 with the desired frequency and period. */
    TCC0.PER = 0xFFFF;
    TCC0.CTRLA = TC_CLKSEL_DIV1_gc;

    while (1) {
        if ( TCC0.INTFLAGS & TC0_CCAIF_bm ) {
            /*  Clear interrupt flag when new value is captured.
            *  The last capture value is now available
            *  in the CCA register.
            */
            TCC0.INTFLAGS |= TC0_CCAIF_bm;
        }
    }
}

 

При изменении уровня на входе PF4 захвата не происходит.

CPU: ATxmega256A3.

Используется таймер TCC0.

Что неправильно?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну ты даёшь, дружище! хоть бы отписал типа привет мужики, всех поздравляю, прошу помощи итп . и потом , ты привёл кусок кода не пойми чего. я хоть сам не профи, но вижу что без хедеров хрен чего поймёшь тут. надо както поподробнее. щас сам трахаюсь с таймером , но правда с 16 битным, вернее со связкой из 3 таймеров. думаю, если ты напряжёшь мозк , то разберёшься довольно бысто и сам , с 8 битниками должно быть всё просто. хотя судя по коду-ты его гдето спёр)) и сам не знаешь что тебе нужно от него. я бы на твоём месте углубился в литературу для начала для того,что бы потять как всё это работает, сам принцип,потом понять что же нужно на самом деле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну код то наверно генератором сделан.. что-нить типа CVAVR ..

 

на глаз вроде все верно, хотя я на сях не пишу нынче..

 

попробуй от 0-вого ивента сначала что-нить другое сделать, а не захват.. чтоб проверить у тебя на ивент то сам срабатывает или нет ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...