|
|
  |
Быстрый доступ в срам avr, Осц.пробник |
|
|
|
Mar 15 2007, 17:05
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(yarunt @ Mar 15 2007, 12:02)  Вопрос, а запись в стек быстрее, а то мне кажется, инкримент добавляет один цикл? Ну а по билдеру это тот-же ассемблер глюков своих в нем хватает. Значит, по билдеру я не прав. Вообще, я про него ничего толком не знаю, и сужу о нём только с ваших слов о выборке в 300 кГц... Запись в стек занимает те же 3 такта на выборку, только мороки чуток побольше. Есть ещё один вариант, запись из порта в 32 регистра, 1 такт на выборку, так-то не надо - слишком мало выборок, но можно залудить какую-нибудь электронную лупу (трёхкратную) в заданное время. Вот еще мысль пришла в голову. Лучше тактировать АЦП не от клоков МК, а с выхода оср, тогда можно будет менять частоту выборок, а следовательно и развёртку, динамически. И сделайте не 67 выборок, а раз в 10-20 побольше, весь буфер можно будет просматривать в режиме окна. Иногда удобно, особенно для однократных процессов.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 15 2007, 18:41
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(muravei @ Mar 15 2007, 14:36)  Цитата(=GM= @ Mar 15 2007, 14:05)  Вот еще мысль пришла в голову. Лучше тактировать АЦП не от клоков МК, а с выхода оср, тогда можно будет менять частоту выборок, а следовательно и развёртку, динамически А я давно думаю, чем бы это сделать внешним Недопонял(:-). Чем оср хуже? Цитата(muravei @ Mar 15 2007, 14:36)  И хорошо бы найти FIFO 16x8 или 32x8 и можно сделать "отрицательное" время Для периодических сигналов легко сделать, запускаете в Т=Тразв-Тнегатив. Для непериодических можно писать всё время, не дожидаясь начала развертки, по кругу, при появлении импульса запуска оставлять часть буфера нетронутой в качестве отрицательного времени. Вообще, большой вопрос, нужно ли оно, это отрицательное время?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 15 2007, 19:01
|

Гуру
     
Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591

|
Цитата(=GM= @ Mar 15 2007, 18:41)  Для непериодических можно писать всё время, не дожидаясь начала развертки, по кругу, при появлении импульса запуска оставлять часть буфера нетронутой в качестве отрицательного времени.
Вообще, большой вопрос, нужно ли оно, это отрицательное время? Для МК это будет криво- нужно же будет переходить с конца на начало. А отрицательное время нужно хотябы для того , что бы увидеть момент синхронизации . а то пока МК доберется до записи, куча тактов пройдет.
|
|
|
|
|
Mar 15 2007, 19:34
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(muravei @ Mar 15 2007, 16:01)  Для МК это будет криво- нужно же будет переходить с конца на начало. А отрицательное время нужно хотябы для того, чтобы увидеть момент синхронизации, а то пока МК доберется до записи, куча тактов пройдет. Пожертвовать одним тактом на выборку, сделать andi xh,0x03, чтобы крутиться по памяти, а время засекать по импульсу запуска в icr. Потом это всё ж таки пробник, хоть и осциллографический...
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 15 2007, 19:52
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Тактирование АЦП от таймера и запись по четырем тактам проца 1 port->R 2 R->[x++] (2 такта) 3 nop - это можно уже сказать классика ,я уже на этом зубы сьел на подобных приборах,тем более на билдере  ,так что не придумывайте ничего нового. Нужно будет синхронизировать клок АЦП с выборкой в порт,а так должно работать , еще ,выделите память на считывание не 67 ,а 512 байт ,вам потом будет легче делать программный делитель частоты ,а потом непринужденно перейти на условия.
|
|
|
|
|
Mar 16 2007, 00:34
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(bodja74 @ Mar 15 2007, 16:52)  Тактирование АЦП от таймера и запись по четырем тактам проца 1 port->R 2 R->[x++] (2 такта) 3 nop - это можно уже сказать классика ,я уже на этом зубы сьел на подобных приборах,тем более на билдере  ,так что не придумывайте ничего нового. Нужно будет синхронизировать клок АЦП с выборкой в порт,а так должно работать , еще ,выделите память на считывание не 67 ,а 512 байт ,вам потом будет легче делать программный делитель частоты ,а потом непринужденно перейти на условия. Богдан, а зачем ноп поставили? Без него быстрее будет, сравните 5333 Квыборки/с без нопа и 4000 с нопом.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 16 2007, 10:29
|

Местный
  
Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476

|
Цитата(bodja74 @ Mar 15 2007, 20:52)  Тактирование АЦП от таймера и запись по четырем тактам проца 1 port->R +1такт 2 R->[x++] (2 такта) 3 nop - это можно уже сказать классика ,я уже на этом зубы сьел на подобных приборах,тем более на билдере  ,так что не придумывайте ничего нового. Нужно будет синхронизировать клок АЦП с выборкой в порт,а так должно работать , еще ,выделите память на считывание не 67 ,а 512 байт ,вам потом будет легче делать программный делитель частоты ,а потом непринужденно перейти на условия. А разве порт в регистр еще такт не добавляет?
--------------------
|
|
|
|
|
Mar 16 2007, 16:22
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(yarunt @ Mar 16 2007, 10:29)  А разве порт в регистр еще такт не добавляет? Нет не добавляет ,это битовые команды с портами занимают 2 такта. Цитата Богдан, а зачем ноп поставили? Без него быстрее будет, сравните 5333 Квыборки/с без нопа и 4000 с нопом. На шкале делителя частоты деления 25,50,100 ms/Div и т.д. "приятнее" смотрятся и хорошо делятся для 16 и 20мгц тактовой.
Сообщение отредактировал bodja74 - Mar 16 2007, 16:23
|
|
|
|
|
Mar 16 2007, 16:36
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 yarunt - та схема проста - на вход подаёш через мелкие резисторы цифру с ацп, выход на контроллер. Есть такие полезные лапки как - показатели пустого, половину заполненного и полного, ну ессно Лапки для записи.+ там есть разные моды - но то уже в ДШ читай.. Ничего сложного в принципе нету если использовать стандартные режимы.... Схема можно сказать классическая - всё не влезло - в выше прицепленном схематике - была целая страница.но я думаю и поэтой скринке всё ясно Хотя тут где то обсуждался похожий вопрос и ,я так помню, его решали с помощью мег (идея в принципе аналогичная что и с фифо для непрерывного потока)- синхронизация для каждой делалсь, отсчёты - все дела ...так дешевле, в принципе, но если ты хош взять частоту где то под 30 мгц и данных тебе надо не сильно много(в смысле штук до 512 - до объёма фифо  ), то чтоб не хитромудриться, по моему фифо оптимальный вариант...
Сообщение отредактировал Kuzmi4 - Mar 16 2007, 16:26
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|