Понятно, в строку преобразуете.
32 байта строка, наверно, здесь не нужна.
Вы собираетесь выводить строку из 9 символов, значит достаточно строки в 10 байт.
Попробуйте для начала убрать деление на 1000 , сделайте вывод на LCD в герцах (временно).
Вам потребуется строка длиной 9 байт и вместо функции ftoa использовать ltoa (если я правильно помню).
Это даст возможность локализовать проблему (если конечно проблема в этой части)
Добрый день! Действительно вся проблемма с функцией ftoa,с ltoa всё работает! Терь возник вопрос, как отделить сотые через точку и вывести на LCD,например: 28850.060 ?
Пробовал перевести в unsigned long, снова ничего!
Прикрепляю файлик, подскажите что не так!
Забавно, в Протеусе не работает, залил в контроллер, работает через раз!
Ничего не понимаю, глюки)!
Спасибо, нарыл проблему! В компиляторе не правильно было выставлено int,width!
Вот архивчик с проектом на данный момент!
Рабочий проект sinAD2.Не доглядел, открыл в evaluationвот в нём работает, но есть ограничение по софту! В версии 2.03.09 не работает!
Всем привет. Вопрос по AD9850, проблема в том что синтезатор выдает немного не то что рассчитано по формулам.
Пример.
Имеем собранную схему. Кварцевый генератор на 125 МГц.
Как получить 1 Гц на выходе устройства?
Для начала нам необходимо вычислить коэффициент деления K:
K = Fген / 2^32 = 125 000 000 / 4 294 967 296 = 0.02910…
Находим код, который необходимо отослать в DDS:
Код = Fвых / K = 1 (Гц) / 0.02910 = 34,3642…. = 34
Управляющее слово состоит из пяти байт, если я ничего не путаю, пятый байт нам не нужен, это управления фазой.
Выводим 34 в двоичной форме 00000000 00000000 00000000 00000000 00100010
Но на выходе я получаю не 1Гц а 255Гц, подозрительно чтото 255 Гц, такое впечатления что проблема в коэффициенте деления, может кто то сталкивался или просто знает в чем проблема, подскажите.
В данный момент, если прикинуть, 225/34=6,6. Тоесть минимальная частота гдето 7Гц, чтото не то
Всем спасибо за ответы, нашел причину , на бумажке то я пишу что в управляющем слове 5 байт а програмно забыл за 5 байт и командное слово получилось 4 байта. Вот этот здвиг на один байт и получился
Здравствуйте, тоже заинтересовался схемой с генератором AD9850, но по форуму так и не понял, доделал генератор кто до конца?
Если можно поделитесь пожалуйста схемой подключения и рабочим проектом.
Я свою пока не доделал, отложил из за отсутствия времени.
Готовых проектов в сети много, со схемами и прошивками, под разные цели.
Или возьмите мой проект (выкладывал выше) и доделайте под свои цели,
там осталось только дисплей с кнопками или валкодером прикрутить, управление ДДС полностью работает.
Если нужен именно готовый проект, могу прислать в личку несколько ссылок, или гугол поможет.
bobr25 смотрел ваш архив, я так понял что там пока заготовки.
Интересует именно начальный проект с управлением AD9850, и принципиальная схема что куда подключено. А ссылки готовых проектов спасибо не надо.
Эта тема та что мне нужно, у меня такая платка есть .
Тока в программировании я слабак, успехи небольшие есть в CodeVisionAVR , но так только "вершки"... вот и спросил, может поделитесь , если есть успехи, а если у меня получится что , так я тоже в долгу не останусь.
Посмотрите мои сообщения от Пн июн 03, 2013 21:58:33 там код по управлению AD9850 с комментариями,
от Чт июн 13, 2013 16:03:25 там подключение меги к DDS модулю и полностью проект для CodeVisionAVR (AD9850_test.rar) Проверен на таком же точно модуле.
В этом проекте частота задается однократно и настраивает DDSку на нее.
Чтобы менять частоту на ходу последовательность такая:
1. задали частоту в переменной freq.
2. готовим управляющее слово