Счетчик таймера Arduino DUE ATSAM3X8E

Я надеюсь, что кто-то может помочь мне.

Я пытаюсь сделать простой счетчик импульсов с Arduino DUE, и потому что мне нужно быть уверенным, чтобы у меня были точные показания, я хочу сделать это с одним из таймерных счетчиков SAM.

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

Прежде всего, я настроил вывод PB26 на линии B, поэтому:

REG_PIOB_WPMR = 0x50494F00;    //disable the protection on the registers
REG_PIOB_ABSR |= 0x04000000;
REG_PIOB_WPMR = 0x50494F00; // enable again the write-protection

Затем я попытался настроить TC0 следующим образом:

REG_TC0_WPMR = 0x54494D00;
REG_TC0_CMR0 = 0x0405;
REG_TC0_CCR0 = 0x0001;
REG_TC0_BMR = 0x0;
REG_TC0_WPMR = 0x54494D01;

Затем я попытался ввести прямоугольную волну с частотой 3 Гц в 10 Гц на TCLK0, но REG_TC0_CV0 остается равным 0.

Я не могу понять, где я не прав. Я впервые пытаюсь записать регистры SAM3X8E напрямую.

Я читал, что я должен включить часы в PMC, но, читая таблицу, я не понимаю, как (а также, я думаю, что это необходимо для внутренних часов). Также я прочитал, что прерывание PID27 должно быть включено, может быть проблема в этом?

Спасибо за ответы. С уважением

0 ответов

Другие вопросы по тегам