АЦП много тактов

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

АЦП много тактов

Сообщение inkHunter »

Написал прог. АЦП

#include <mega8.h>

interrupt [15] void ocs (void)
{
//breakpoint
ADCSR.6=1;

}

void main (void)
{
ADCSR=0b10001111;
ADMUX=0;
ADCSR.6=1;
#asm("sei");
while (1)
{

}

}

Запустил её у avrstudio не пойму почему так много тактов происходит ??? 1673 Ведь АЦП должно за 13 тактов + прерывание пару тактов. Проверяю так запустил нажимаю START DEBUGGIN поставил breakpoint и проганяю от breakpoint до breakpoint и в итоге получаеться 1673 тактов ??? помогите пожалуйста :idea:
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: АЦП много тактов

Сообщение md5sum »

Потому как:
A normal conversion takes 13 ADC clock cycles.
И Division Factor установлен 128 (ADCSR=0b10001111;)
Получим 13*128=1664, плюс переходы
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

Re: АЦП много тактов

Сообщение inkHunter »

md5sum писал(а):Потому как:
A normal conversion takes 13 ADC clock cycles.
И Division Factor установлен 128 (ADCSR=0b10001111;)
Получим 13*128=1664, плюс переходы
все понял завтыкал 10001000 нужно ... Спасибо
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: АЦП много тактов

Сообщение md5sum »

Victor Gordienko писал(а):все понял завтыкал 10001000 нужно ... Спасибо
А частота МК какая, а то:
the successive approximation circuitry requires an input clock frequency between 50
kHz and 200 kHz
to get maximum resolution

тоже надо учитывать, иначе доверять измерениям смысла нет....
Подели частоту МК на 200000 и получишь минимальный коэфф. делителя.
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
Эиком - электронные компоненты и радиодетали
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

Re: АЦП много тактов

Сообщение inkHunter »

md5sum писал(а):
Victor Gordienko писал(а):все понял завтыкал 10001000 нужно ... Спасибо
А частота МК какая, а то:
the successive approximation circuitry requires an input clock frequency between 50
kHz and 200 kHz
to get maximum resolution

тоже надо учитывать, иначе доверять измерениям смысла нет....
Подели частоту МК на 200000 и получишь минимальный коэфф. делителя.
да я хочу осц сделать, читал что можно разогнать и до 40 MHz мегу ...

прерывание 28 тактов
{
i++; 12 тактов
n=ADCW; 16 тактов
ADCSR|=0x40; 2 такты
}
в итоге 48 тактов и еще нужно сдледить за массивом ... много что то получаеться (((( ...
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: АЦП много тактов

Сообщение md5sum »

Ну, если приходится считать каждый такт, то прямая дорога в ассемблер :)
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

Re: АЦП много тактов

Сообщение inkHunter »

md5sum писал(а):Ну, если приходится считать каждый такт, то прямая дорога в ассемблер :)
((( А не знаете как алгоритм билдел себя ведет в таких случаях ?
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: АЦП много тактов

Сообщение md5sum »

За алгоритм билдер не подскажу.
Мне ближе GCC и ассемблер.
— Не говорите мне что делать и я не скажу куда Вам идти...
Аватара пользователя
Кислый
Поставщик валерьянки для Кота
Сообщения: 2095
Зарегистрирован: Чт апр 08, 2010 18:50:01
Откуда: Краснодар
Контактная информация:

Re: АЦП много тактов

Сообщение Кислый »

40 MГц ? Ололо..

самому то верится в то, что ее можно разогнать в 2,5 раза ?? там 20MHz - уже глюки. Вот когда покажите мне, как мега работает от внешнего генератора на 40MHz, тогда поверю, а кварц может работать и на любой неведомой гармонике
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: АЦП много тактов

Сообщение Satyr »

А чтоб не взять нормальный контроллер, а не разгонять до адских величин реликты ? )))
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: АЦП много тактов

Сообщение Fasterpast »

До 40 - только xmeg'у... )
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: АЦП много тактов

Сообщение 12val12 »

на 33 мгц мега 16 работает
ух ты.... показывает
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: АЦП много тактов

Сообщение Meteor »

Victor Gordienko писал(а): А не знаете как алгоритм билдел себя ведет в таких случаях ?
Гоняет данные через R16. В сравнении с ассемблером - почти двойная потеря производительности. Нет прямого обращения регистров R17..R31 к портам ввода вывода.
Алгоритм хорош там, где нужно выполнить "побыстрому" проектик, не критичный в исполнении. И к тому же в алгоритме нет возможности оптимизировать.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

Re: АЦП много тактов

Сообщение inkHunter »

Meteor писал(а):
Victor Gordienko писал(а): А не знаете как алгоритм билдел себя ведет в таких случаях ?
Гоняет данные через R16. В сравнении с ассемблером - почти двойная потеря производительности. Нет прямого обращения регистров R17..R31 к портам ввода вывода.
Алгоритм хорош там, где нужно выполнить "побыстрому" проектик, не критичный в исполнении. И к тому же в алгоритме нет возможности оптимизировать.
На асм будет в двое меньше тактов ?
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: АЦП много тактов

Сообщение Fasterpast »

12val12 писал(а):на 33 мгц мега 16 работает
У меня только одна разогналась до 30, и то периферия работала глючно...
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

Re: АЦП много тактов

Сообщение inkHunter »

Fasterpast писал(а):
12val12 писал(а):на 33 мгц мега 16 работает
У меня только одна разогналась до 30, и то периферия работала глючно...
какие глюки набдюдались ?
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: АЦП много тактов

Сообщение Fasterpast »

Пробовал, например, выводить на дисплей от сименса картинку. Она частенько сыпалась, и выдерживала стресс-тест только на 26МГц (13- SPI). Думал, что 13 - предел экрана (где-то были такие упоминания), но если ставить делитель SPI на 4, всё равно наблюдались такие глюки. И к тому же сейчас с хмегой этот экран и на 20МГц себя нормально чувствует =) Правда после пары часов непрерывной передачи - таки сдох. :))
DS18B20 вообще переставал работать после 23МГц как только я его не "просил", и с задержками играл и пробовал разные библиотеки 1-wire, чет так и не пошел... :(
Было испытано 5 Атмег16, одна из них из другой партии. Корпус - DIP, питание - 5.3В (пробовал от 4.7 до 5.5), керамика по питанию и т.д. - присутствует. Не так много, на самом деле, вполне допускаю, что есть и более удачно разгоняемые. (периферию проверял только на той, которая взяла максимальную частоту)
xMega разогналась до стабильных 40 от внутреннего генератора и до 42 от внешнего.
Аватара пользователя
Кислый
Поставщик валерьянки для Кота
Сообщения: 2095
Зарегистрирован: Чт апр 08, 2010 18:50:01
Откуда: Краснодар
Контактная информация:

Re: АЦП много тактов

Сообщение Кислый »

От кварца или внешнего генератора ?
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: АЦП много тактов

Сообщение Meteor »

Victor Gordienko писал(а):На асм будет в двое меньше тактов ?
Может даже и не тольк ов двое. Нужно смотреть каждую операцию. Например, желаем переслать результат умножения из регистровой пары R1R0 в пару R23R22. На асме это выглядит так:

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

mov r23,r1;
mov r22,r0;
А та же пересылка в билдере будет такой:

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

mov r16,r1;
mov r23,r16;
mov r16,r0;
mov r22,r16
Это один из не самых худших случаев. Если не ошибаюсь худшее время показывают комбинации проверки битов порта. Билдер их раскладывает в более длительные комбинации.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: АЦП много тактов

Сообщение 12val12 »

вспомнил глюк на 33 таки был ..rs232 на 115 килобит не хотел работать..
ух ты.... показывает
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»