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

GenaSPB

Участник
  • Постов

    2 977
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

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


  1. h-jtag - нажать только одну кнопочку... может он поддерживает этот процессор? И бесплатно. ps: не поддерживает... но может получится?
  2. DDS vs PLL+VCO

    А раньше Вы писали: Где недостающие 10 дБ (а то и 20 дБ) искать будете?
  3. Если Вас интересует меандр - первый сигнал - старший бит сумматора. второй сигнал - (старший байт сумматора + 0x40) - от этого старший бит. Нарисуйте график - дойдёт.
  4. Коллега написал: Похоже, что камни с DDS, что камни с PLL одникаово тяжело по почте заказать.
  5. Нет, все-таки к Гуглю вы так и не обратились.... Дискретность частоты nco зависит от разрядности сумматора. Есть асемблерные реализации nco на атмега8 - люди получали около 100 кГц синусоиду - обсуждалось на forum.cqham.ru Зайдите и сюда - http://www.scienceprog.com/avr-dds-signal-...-asm-explained/ http://www.mikrocontroller.net/topic/70798 DDS - это NCO + таблица синусов + ЦАП. Вам надо только взять ДВА старших разряда сумматора. С них получите два квадратурных сигнала. Работа с чем-либо еще в фоне будет вызыват помехи в выходном сигнале. А вот поставить (активный) фильтр на выходе каждого канала - будет лучше. Но это все зависит от требуемой точности фазового сдвига, отказ от ЦАП тоже увеличивает уровни побочных сигналов. НУ вот готовая конструкция с применением таких технологий: http://www.myplace.nu/avr/minidds/index.htm Даже исходники есть. http://www.myplace.nu/avr/minidds/minidds.asm
  6. Реализовать алгоритм NCO сможете? Это накапливающий сумматор, старший бит которого в Вашем случае выдается на выход. Гуглить в сторону NCO, DDS, AD9834
  7. Я рисовал в фотошопе стрелку - потом поворачивал её на нужный угол - и записывал. Попробуйте сделать хоть 36 образов стрелки и взяв угол с точностью 10 градусов выбрать нужный имедж для рисованя static UINT ids [12] = { IDI_ARROW_0G0, IDI_ARROW_0G1, IDI_ARROW_0G2, IDI_ARROW_0G3, IDI_ARROW_0G4, IDI_ARROW_0G5, IDI_ARROW_0G6, IDI_ARROW_0G7, IDI_ARROW_0G8, IDI_ARROW_0G9, IDI_ARROW_0G10, IDI_ARROW_0G11, }; for (int i = 0; i < 12; ++ i) { arrowPoint [i] = AfxGetApp()->LoadIcon(ids [i]); } ... { int iangle = ((m_iAngle - m_iOffset + FULL_CIRCLE)%(FULL_CIRCLE)); double angle = iangle / 3600 * PI * 2 / 360; int yTarget = - (int) (radius * cos(angle) * 0.85); int xTarget = (int) (radius * sin(angle) * 0.85); int yTarget0 = - (int) (radius * cos(angle) * 0.1); int xTarget0 = (int) (radius * sin(angle) * 0.1); m_invisibleDc.SelectObject(m_darkRedPen); m_invisibleDc.SelectObject(m_darkRedBrush); m_invisibleDc.MoveTo(cpt.x + xTarget0, cpt.y + yTarget0); VERIFY(m_invisibleDc.LineTo(cpt.x + xTarget, cpt.y + yTarget)); { int zoneAngle = ((iangle + 15 * 3600) / (3600 * 30)) % 12; ASSERT(zoneAngle < 12); CPoint cp = CPoint(cpt.x + xTarget, cpt.y + yTarget); VERIFY(m_invisibleDc.DrawIcon(cp.x + iconXOffset, cp.y + iconYOffset, arrowPoint [zoneAngle])); } }
  8. Результат, собственно, и выложен был в этой теме. Обычное дело для C-шных проектов. Сейчас в нем осталось только ATMega и AT91SAM7S, i386 остался "за кадром". В том не использовалось ничего из специфической периферии - только ввод с выводом через паралельные порты - потому легко м перенеслось. Да, и библиотека целочисленной арифметики с произвольной длинной операндов была заменена на typedef unsigned long long phase_t;
  9. Если Вы заметили, этот проект, что отдан на растерзание - тоже сделан для себя, для радиолюбительских целей. С желанием повозиться поспорить не могу, но вот этим проектом я вожусь уже довольно долго - около двух лет - и желание дорабатывать и менять его не зависит от языка. Просто "возня" переходит на другой уровень - на функциональность, на ясность кода, на то, что доставляет больше удовольствия - в конце концов на пользование готовыми изделиями. Я возился со всем (почти со всем) кроме mcs51. И работающее изделие на новом для меня AVR появилось за несколько часов после того, как я принес домой первый купленный мною в магазине ATMega162 и спаял stk200. С ассемблером разбираться не стал - а просто засунул в него один из старых проектов для Intel386.
  10. ADC_SDIN = adc_conf_hi & 0b10000000; Может, так: ADC_SDIN = (adc_conf_hi & 0b10000000) != 0; Или присвоение единицы в случае не-нуля для битовых полей автоматически в Вашем компиляторе делается?
  11. ОХ! вот, оказываеттся, чем Вы занимаетесь! Сказали бы - я тихо бы молчал... У Вас, я понимаю, времени еще много впереди? А попробовать свою задачу на С изобразить времени нет?
  12. DDS vs PLL+VCO

    Вторую гармонику давить на столько же будете? Если да - скажите как.
  13. Надеюсь, Вы заметили что эта строка относится к автоповтору, а не к фиксации удержанного нажатия клавиши?
  14. Но сначала нам придется процитировать здесь любимые места из описания того компилятора, которым пользуется топикстартер, чтобы ответить на вопрос - а как "в скрипте линкера задать ей конкретный адрес". Как я понял, линкеру обычно про external память ничего неизвестно - так что конфликна не будет...
  15. * ((unsigned long *) 0x80000100) = value; Не забывать о выравнивании. Или описать структуру со множеством нужных полей и обращаться к ней struct confdata { unsigned long expirationdate; unsigned char color; }; ((struct confdata *) 0x80000100)->color = value;
  16. в аттаче - файл keyboard.c все Ваши проблемы там решены.
  17. Пункт б это где? Я немного дополнил свое сообщение на предидущей странице... А Атмел сделал новую версию ATMega32A КОторая как раз во всем диапазоне до 5 вольт работает и только ограничения на частоту меняются - 8 или 16 мегагерц... В случае L и не L просто знать про ограничения по минимальному напряжению питания у каждой из них.
  18. И Вы это называете "работает"? Да в чем угодно может "выстрелить" нештатный режим... Действительно всё остальное лишено смысла при такой постановке задачи... Если вы пробовали Мегу32 (без L) при 3-х вольтах питания запускать - ведь тоже нарушение штатного режима - страница 332 (ordering information) дает диапазон допустимых напряжений 4.5..5.5 вольта. Или гляньте в таблицу DC Characteristics - там для ATMega32 (без L) всё нормируется только при 5 вольт.
  19. Диагноз: слепота (пациент даташита не видит). 8 мгц самое то для такого напражения питания.
  20. В потоке (без переходов) на частоте 48 МГц получалось три такта (около 66 наносекунд) между изменениями состояния порта. Где-то в форуме про ARM я задавал свои вопросы начинающего. http://electronix.ru/forum/index.php?showt...st&p=567800
  21. У Dron_Gus альтернативный даташит... итого - в морг? На самом деле проблема в том - какой источник закладывать в плату... ожидал 50 мА, как в документе - а тут такое...
  22. avreal

    Новая версия говорит что чип залочен... после этого запускаю старую - в батнике (.cmd) всегда стоит стирание и запись... батник одинаковый.
  23. У незапрограммированного (стертого) процессора после ресета - вроде порты на ввод все?
  24. Программатор какой? Может сам программатор не умеет от 3.3 вольта работать?
×
×
  • Создать...