Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

На 32-битном счетчике при 16 МГЦ получается дискретность в 30 раз лучше требуемой - например, одно значение - 71999.099, следующее значение - 71999.102. Код для Tiny2313 внутри

Отправлено =AVR= 23 апреля 2007 г. 14:25
В ответ на: Нука на 16 мегагерцевом сгенери ка мне 71999.1 Гц :) Счетчик какой хош разрядности разрешаю :) отправлено Codavr 23 апреля 2007 г. 11:48



; Assemble with AVRASM2 only - 64-bit integer constant calculation precision required

.equ xtal = 160000000 ; XTAL frequency in 0.1 Hz units
.equ freq = 719991 ; Output frequency in 0.1 Hz units
.equ ndds = 7 ; # of CPU clocks per single DDS loop
.equ delta = ((65536*65536*ndds*freq)/xtal) ; Phase acc delta value for a given output frequency

.equ DDRB = 0x17 ; SFRs for Tiny2313
.equ PORTB = 0x18 ;

.cseg

main:
sbi DDRB,7 ; PORTB.7 = frequency output

ldi r16,byte1(delta); Load a 32-bit delta value to r16..r19
ldi r17,byte2(delta)
ldi r18,byte3(delta)
ldi r19,byte4(delta)

dds: ; Main DDS loop, 7 CPU clocks per iteration
add r20,r16 ; Add a 32-bit delta value to a 32-bit phase accumulator r20..r23
adc r21,r17
adc r22,r18
adc r23,r19

out PORTB,r23 ; PORTB.7 = 32-bit phase accumulator MSb
rjmp dds

.exit



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
при вычитании трёх из шести получится:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru