Перейти к содержанию
    

ViKo

Модератор
  • Постов

    12 216
  • Зарегистрирован

Весь контент ViKo


  1. Думаю, да. А для чтения-модификации бита можете и ODR регистр использовать. Мне не было необходимости делать именно инверсию бита. Просто задаю то состояние, что нужно. Трудно сравнивать объективно, потому что слова для записи и адреса еще нужно подготовить. Вот листинг того кода, что я показал. ;;;370 void LED_Blink(void) { 000386 482e LDR r0,|L1.1088| ;;;371 while (1) { ;;;372 GPIOB->BSRR = 0x0002; 000388 f04f0102 MOV r1,#2 |L1.908| 00038c f8c01c10 STR r1,[r0,#0xc10] ;;;373 // __nop(), __nop(), __nop(); // from Flash 12 clock states ;;;374 // __nop(), __nop(); // from RAM 14 clock states ;;;375 GPIOB->BRR = 0x0002; 000390 f8c01c14 STR r1,[r0,#0xc14] 000394 e7fa B |L1.908| ;;;376 } ;;;377 } Пара регистров BSRR, BRR тем и хороша, что одним и тем же словом можно установить или сбросить бит. Как в этом коде - оно хранится в R1. И адрес структуры один - в R0. А смещение внутри команды задается. Я пробовал и с bit-band, у меня получилось хуже.
  2. И компилится, и атомарная операция. Через бит-бэнд регион обращается к отдельному биту регистра ODR. Т.е. доступ к одному биту в bit-band alias области, как к целому слову в bit-band области. Только смысла в ней немного. Проще через BSRR и BRR, и по скорости, и по коду. void LED_Blink(void) { while (1) { GPIOB->BSRR = 0x0002; // __nop(), __nop(), __nop; GPIOB->BRR = 0x0002; } }
  3. Имею. Откуда выкачал, не знаю, давно было. Кладу в up../DO../ST../IE...
  4. для Alexashka намекните, какой программой смотрите. LabView?
  5. Можете тактировать все той же удвоенной частотой. А P1..P4 подать на разрешение тактов CE (есть в триггерах). Тогда вообще никто не придерется :)
  6. Раньше думать надо было, сразу в устройстве использовать удвоенную. Поделенную частоту сдвинуть на такт входящей (удвоенной). Получим 2 последовательности (фазы)(код Грэя, если хотите): FI 00110011 FQ 10011001 Из них схемами &, используя прямые или инверсные сигналы FI, FQ сформировать нужные импульсы: P1 10001000 P2 01000100 P3 00100010 P4 00010001
  7. Найти тактовую в 2 раза быстрейшую, поделить пополам, и из этих двух скомбинировать все нужные фазы.
  8. Придумал перевод testbench - тестостенд. (спел бы песню веселей, да нет, брат, веселей)
  9. Сначала написал, что все равно, как делать. Потом сообразил, что сравнить с нулем - это просто объединить все разряды счетчика по ИЛИ. А по сути цитаты - и там и там будут использованы быстрые переносы.
  10. Спасибо! Возник вопрос - в вашем design-do есть место TimeQuest'у? Еще - в чем отличие Questa от ModelSim?
  11. Запитать от того, что должно появиться раньше всего. Или из напряжения перед стабилизаторами сделать на стабилитроне то, что PIC требует. Ток-то мизерный. Входы разрешения можно и без микроконтроллера использовать, на тех же RC цепочках. Последовательность включения питания в АЦП должна быть описана. Можно ли сделать по-простому, или нельзя, не знаю. Тиристоры только от бросков по питанию спасут. А на последовательность включения-выключения питаний, увы, не повлияют.
  12. Таких не помню, но у многих стабилизаторов есть вход разрешения рабооты. А задействовать их можно было бы с помощью ма-а-а-аленького PIC10F200. Ведь последовательности включения и выключения должны быть обратные. Хотя, на мой взгляд, выглядит маловероятным, чтобы из-за небольшой задержки появления некоторых питаний выгорал АЦП. А если вспомнить щелкание тумблером соседнего источника, никуда не подключенного...
  13. Есть книжка - Ричард Лайонс. Цифровая обработка сигналов. Вот она действительно, легко читается. :) Имеется, где положено. Там есть раздел, посвященный каскадным интеграторам - гребенчатым фильтрам. И все остальные вопросы ЦОС тоже описаны.
  14. Можете по пунктикам расписать всю последовательность действий? Скажем, нужно вам сделать счетчик на Циклоне. Окрываете, значит, свой любимый редактор (какой?)... и т.д. Design-do!
  15. то есть просто "сложить и поделить", правильно?
  16. int - 32-битовое целое, где каждый бит может быть в 2-х состояниях integer - 32-битовое целое, где каждый бит может быть в 4-х состояниях Как это повлияло?
  17. В том и вопрос - какое окно самое подходящее для максимального подавления шума за пределами полосы сигнала. Прямоугольное или ...? Так как у нас оверсэмплинг, то понятно, что лишнюю полосу можно и нужно отрезать. Как ее отрезать, чтобы пропустить сигнал по-максимуму, а шум по минимуму? У прямоугольного окна первый минимум на АЧХ на частоте fs/N, а у всех остальных окон на более высокой частоте. Зато после все непрямоугольные окна давят намного лучше. Без расчета не определить.
  18. В том-то и дело, что любое окно в фильтре КИХ служит для уменьшения пульсаций АЧХ за пределами полосы пропускания (боковых лепестков) путем расширения основного, расширения полосы пропускания. Вот я и сомневаюсь, что через такую АЧХ не пролезет больше шума.
  19. А почему? Где бы увидеть математическое доказательство? Одно дело - обрезать полосу сигнала, а другое - понизить его шум. Или нет?
  20. а так? always @(posedge rxclk) begin for (int i=0; i<=`CHL_NUMBER - 1; i++) begin if (rxsync_out[i]) begin dout_I[i] <= dout_I_r[i]; dout_Q[i] <= dout_Q_r[i]; end end end
  21. На мой взгляд - это будет самое эффективное решение. Когда вес всех участвующих выборок (16 штук) одинаковый. По цитатам - не понимаю. Нет возможности вникать. Не обращайте внимания.
  22. Хочу понять, стоит ли продолжать разговор. После вашей приписки - понял. Пока!
  23. Ну, я-то вопрос обоснованный задал. Rfeedback. А по вашему как будет? Куда правильнее выставлять опорное напряжение (оно же постоянное), чем подстраивать коэффициент усиления каскада перед АЦП. Странно, если вы до этого еще не додумались! Насчет "старейшего" ЦАПа. Можете объяснить, как он работает? Ну, хотя бы, двухбитовый. Конкретных расчетов посмотреть хочу.
×
×
  • Создать...