DDS AD9835 SPI TWI I2C Beispiele ATmega8 Assembler

OP #3134680
Lesenswert?
• ▲
▼
Geschätztes Forum,

ein kleines Assembler Beispiel, wie per SPI ein AD9835 DDS angesteuert 
werden kann.

Die erzeugte Frequenz und die Registerinhalte werden auf dem Display 
angezeigt.

Die Berechnung der Registerinhalte war etwas aufwändig (>32 Bit).

= f(out) x 2^32 : 50.000.000

Formel angepasst (mit vereinfachter Division):

= f(out) x 2.882.303.762 : 2^25



Bernhard
Angehängte Dateien:
OP #3138203
Lesenswert?
• ▲
▼
> Wie stellt man den Ausgangsfrequenz ein ?


In diesem Beispiel wurde es ohne Tastatureingaben o.ä. realisiert:


; Frequenz definieren
ldi temp1,BYTE1(1000)
ldi temp2,BYTE2(1000)
ldi temp3,BYTE3(1000)
ldi temp4,BYTE4(1000)

; Frequenz im SRAM ablegen
STS(adr_FREQUENZ_BYTE0),temp1
STS(adr_FREQUENZ_BYTE1),temp2
STS(adr_FREQUENZ_BYTE2),temp3
STS(adr_FREQUENZ_BYTE3),temp4

; Frequenz einstellen
rcall DDS_FREQUENZ
OP #3140519
Lesenswert?
• ▲
▼
> könntest Du erklären was hier wie vereinfacht wurde?


= f(out) x (2^32) : (50.000.000)

= f(out) x (4.294.967.296)  : (50.000.000)

= f(out) x (4.294.967.296 x 0,67108864) : (50.000.000 x 0,67108864)

= f(out) x (2.882.303.762) : (33.554.432)

= f(out) x (2.882.303.762) : (2^25)

Die Division durch 2^25 ist in Assembler relativ einfach zu realisieren,
z.B. alle Bitts 25 mal nach rechts verschieben.

Bernhard

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.