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

 
 
> Счетчик частоты на SAM7S64
abit
сообщение Jul 26 2011, 13:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 26-07-11
Пользователь №: 66 426



Здравствуйте.
Мне нужно было собрать измеритель частоты (от 1 до 4МГц) на SAM7S64 и передавать по usb в компьютер эту частоту... программирую в IAR...
встретился с проблемой - хотя там пишут про частоты в 47МГц...
реально например написана такая программа:
Код
do {counter++;} while (dataready!=0)

и стоит счетчик c прерыванием ровно на 1 секунду, который выставляет dataready...
программа успевает насчитать в counter до порядка 2 800 000... а мне ведь еще частоту в 4 000 000 мерить, а не просто счетчик пускать...
это можно как-то ускорить? может я неправильно что-то тактирую...
я просто впервые столкнулся с подобного рода программированием, подскажите пожалуйста в чем проблема...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
abit
сообщение Jul 26 2011, 14:29
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 26-07-11
Пользователь №: 66 426



kovigor, aaarrr
Спасибо за ответы.
И оптимизм что это вообще теоретически возможно... а то я уж хотел забить и программировать ПЛИСку...
Я подозревал что код работает на бешеной 47МГц частоте и уж команда ADD (я так понял INC нету) выполнится по крайней мере 10Млн раз должна... а тут такой облом...

Книжка есть, но там даташиты с X256, распиновка не та.... а о программировании на ярких примерах - вообще не слова толком... просто перечисление регистров и битов... вообще запутался с теми таймерами что там за связи от TCLK0/1/2 к TIOA1/2 и TIOB1/2 и далее к XC0/XC1/XC2...
Я верно понял что сигнал надо вешать на TCLK0? чтобы его считать (мне нужно оба фронта)...

Где то можно найти готовый пример как переконфигурировать PA28 на TCLK, настроить на режим захвата по обоим фронтам и потом из таймера вынуть число что он насчитал там?

p.s. извините за дотошность... я никогда не программил МК до этого... просто пока я пытался запустить USB я потратил много времени (из-за того что у меня старая версия программатора и старая версия IAR (4) ни один готовый пример с usb не компилился... а с новыми IAR 5/6 программатор отказывался работать)... в итоге - USB в CDC режиме заработал... а тут встретил такое досадное быстродействие... и уж думал все убитое время - под хвост...

Сообщение отредактировал abit - Jul 26 2011, 14:30
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 26 2011, 15:22
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(abit @ Jul 26 2011, 18:29) *
Я подозревал что код работает на бешеной 47МГц частоте и уж команда ADD (я так понял INC нету) выполнится по крайней мере 10Млн раз должна... а тут такой облом...

Код, положим, так и работает (если из RAM), только
Код
do {counter++;} while (dataready!=0)

- это отнюдь не одна команда инкремента.

Цитата(abit @ Jul 26 2011, 18:29) *
Я верно понял что сигнал надо вешать на TCLK0? чтобы его считать (мне нужно оба фронта)...

Для захвата - на TIOA, для счета - на TCLK.

Цитата(abit @ Jul 26 2011, 18:29) *
Где то можно найти готовый пример как переконфигурировать PA28 на TCLK, настроить на режим захвата по обоим фронтам и потом из таймера вынуть число что он насчитал там?

Если на вход подать 4MHz, то при 48MHz MCK между фронтами таймер успеет досчитать только до трех в лучшем случае. Устроит такая разрешающая способность?
Режим захвата можно использовать на низких частотах, если нужно измерить относительно высокую, то остается только считать число тактов за определенное время, то есть сигнал подать на тактовый вход таймера.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- abit   Счетчик частоты на SAM7S64   Jul 26 2011, 13:01
- - kovigor   Цитата(abit @ Jul 26 2011, 16:01) подскаж...   Jul 26 2011, 13:23
- - aaarrr   Так таймером считать надо. На тактовый вход ему по...   Jul 26 2011, 13:23
|- - kovigor   Цитата(abit @ Jul 26 2011, 17:29) kovigor...   Jul 26 2011, 15:03
- - abit   kovigor Я на этой страничке уже все скачивал, сам ...   Jul 26 2011, 17:42
|- - aaarrr   Цитата(abit @ Jul 26 2011, 21:42) кстати ...   Jul 26 2011, 20:31
- - prottoss   Если поможет - вот полное описание по микроконтрол...   Jul 26 2011, 18:28
- - abit   aaarrr Компилятор IARа с оптимизацией почему-то та...   Jul 27 2011, 07:51
- - kovigor   Цитата(abit @ Jul 27 2011, 10:51) просто ...   Jul 27 2011, 08:06
- - aaarrr   Цитата(abit @ Jul 27 2011, 11:51) работае...   Jul 27 2011, 09:21
- - abit   Цитата(aaarrr @ Jul 27 2011, 13:21) Не бы...   Jul 27 2011, 10:42
- - aaarrr   Цитата(abit @ Jul 27 2011, 14:42) почему ...   Jul 27 2011, 12:09
- - abit   Цитата(aaarrr @ Jul 27 2011, 16:09) Потом...   Jul 27 2011, 13:58
- - aaarrr   Цитата(abit @ Jul 27 2011, 17:58) хотя ес...   Jul 27 2011, 14:26
- - abit   Цитата(aaarrr @ Jul 27 2011, 18:26) А clo...   Jul 28 2011, 10:40
- - aaarrr   Цитата(abit @ Jul 28 2011, 14:40) Я прост...   Jul 28 2011, 10:51
- - abit   Цитата(aaarrr @ Jul 28 2011, 14:51) Это т...   Jul 28 2011, 19:59
- - aaarrr   Цитата(abit @ Jul 28 2011, 23:59) и я уже...   Jul 28 2011, 21:55
- - abit   Цитата(aaarrr @ Jul 29 2011, 01:55) Стоп....   Jul 29 2011, 20:37
- - aaarrr   Цитата(abit @ Jul 30 2011, 00:37) 1) Квар...   Jul 29 2011, 21:00


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

 


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


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