Цитата(grach41 @ Oct 29 2006, 06:10)

Привет Всем.
Нужен ГКЧ
- 0 - 150 кГц за время ~5мин,
-изменение частоты логарифм,
-Uа=ТТЛ.
-На ATmegra16, f=14,7456 мГц
Свои алгоритмы забраковал напрочь. Хочется чего-то красивого.
1) Логарифм 0 равен МИНУС бесконечность, поосторожнее там(%-).
2) Если хотите сделать цифровым способом, скажем, дипазон 0.1 Гц-150 кГц, то вам сюда
http://www.myplace.nu/avr/minidds/index.htmНичего красивее не видел. Программа из 6 строк кода выполняется за 9 тактов. (Я даже снизил это время до 8 тактов, показывал автору, он согласился). Вот авторский код, разве не красиво?
Код
[font=Courier New]; main loop
;
; r28,r29,r30 is the phase accumulator
; r24,r25,r26 is the adder value determining frequency
; add value to accumulator
; load byte from current table in ROM
; output byte to port
; repeat
;
LOOP1: add r28,r24 ; 1
adc r29,r25 ; 1
adc r30,r26 ; 1
lpm ; 3
out PORTB,r0 ; 1
rjmp LOOP1 ; 2 => 9 cycles[/font]
3) Еще можно сделать на двух генераторах, один стоит, другой свипирует, выделяете разностную частоту, ву а ля. Давно-давно была статья в Радио по этому поводу.