реклама на сайте
подробности

 
 
> Input capture
_Артём_
сообщение Jan 4 2011, 15:02
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Нужно сделать захват таймера по изменнию состояния входа (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.
Что неправильно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
carmaster
сообщение Jan 6 2011, 20:05
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 49
Регистрация: 22-07-04
Из: Москва
Пользователь №: 355



ну ты даёшь, дружище! хоть бы отписал типа привет мужики, всех поздравляю, прошу помощи итп . и потом , ты привёл кусок кода не пойми чего. я хоть сам не профи, но вижу что без хедеров хрен чего поймёшь тут. надо както поподробнее. щас сам трахаюсь с таймером , но правда с 16 битным, вернее со связкой из 3 таймеров. думаю, если ты напряжёшь мозк , то разберёшься довольно бысто и сам , с 8 битниками должно быть всё просто. хотя судя по коду-ты его гдето спёр)) и сам не знаешь что тебе нужно от него. я бы на твоём месте углубился в литературу для начала для того,что бы потять как всё это работает, сам принцип,потом понять что же нужно на самом деле.
Go to the top of the page
 
+Quote Post
Duhas
сообщение Jan 7 2011, 05:24
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 13-04-07
Пользователь №: 27 018



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

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

попробуй от 0-вого ивента сначала что-нить другое сделать, а не захват.. чтоб проверить у тебя на ивент то сам срабатывает или нет ...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01352 секунд с 7
ELECTRONIX ©2004-2016