Sinusgenerator; Version A
;===================================================
;---- Experiment: Sinusgenerator, Version A --------
;===================================================
;
.GLOBAL SINUSA
SINUSA: LD DE,STBEND ;Ende Sinustabelle
LD IX,SINTAB ;Start Sinustabelle
$L1: LD L,(IX) ;Wert aus Tabelle
INC IX
LD H,(IX)
INC IX
CALL ODAC1 ;Wert an DAC ausgeben
PUSH IX ;Überprüfen, ob Ende
POP HL ; der Tabelle
XOR A
SBC HL,DE
JR NZ,$L2
LD IX,SINTAB ;ja, Pointer rücks.
$L2: IN A,(PIN) ;Verzögerung einlesen
LD L,A
LD H,0
ADD HL,HL ;Verzögerung = 1+4*PIN
ADD HL,HL
INC HL
CALL DELAY
JR $L1 ;nächster Durchgang
;
;===================================================
;---- Ausgabe eines Wertes auf DAC1 ----------------
;===================================================
;
;Eingang: 16-Bit-Wert in HL
;Ausgang: vordersten 12 Bit werden an DAC1 ausgegeben
;
.GLOBAL ODAC1
ODAC1: PUSH AF ;Register AF sichern
LD A,L
OUT (DAC1LO),A ;niederwertiges Byte
LD A,H
OUT (DAC1HI),A ;höherwertiges Byte
POP AF
RET
;
;----- Tabelle der Sinuswerte ----------------------
;
SINTAB: DEFW 8000H, 8320H, 8640H, 8960H, 8C80H
DEFW 8FA0H, 92C0H, 95E0H, 98F0H, 9C00H
DEFW 9F10H, A220H, A520H, A820H, AB10H
DEFW AE00H, B0F0H, B3D0H, B6B0H, B980H
DEFW BC50H, BF10H, C1C0H, C470H, C710H
DEFW C9A0H, CC30H, CEB0H, D120H, D390H
DEFW D5F0H, D830H, DA70H, DCA0H, DED0H
DEFW E0E0H, E2E0H, E4E0H, E6C0H, E8A0H
DEFW EA60H, EC10H, EDC0H, EF50H, F0D0H
DEFW F240H, F3A0H, F4F0H, F630H, F760H
DEFW F870H, F980H, FA70H, FB50H, FC20H
DEFW FCD0H, FD80H, FE10H, FE90H, FF00H
DEFW FF50H, FF90H, FFD0H, FFE0H, FFF0H
DEFW FFE0H, FFD0H, FF90H, FF50H, FF00H
DEFW FE90H, FE10H, FD80H, FCD0H, FC20H
DEFW FB50H, FA70H, F980H, F870H, F760H
DEFW F630H, F4F0H, F3A0H, F240H, F0D0H
DEFW EF50H, EDC0H, EC10H, EA60H, E8A0H
DEFW E6C0H, E4E0H, E2E0H, E0E0H, DED0H
DEFW DCA0H, DA70H, D830H, D5F0H, D390H
DEFW D120H, CEB0H, CC30H, C9A0H, C710H
DEFW C470H, C1C0H, BF10H, BC50H, B980H
DEFW B6B0H, B3D0H, B0F0H, AE00H, AB10H
DEFW A820H, A520H, A220H, 9F10H, 9C00H
DEFW 98F0H, 95E0H, 92C0H, 8FA0H, 8C80H
DEFW 8960H, 8640H, 8320H, 8000H, 7CD0H
DEFW 79B0H, 7690H, 7370H, 7050H, 6D30H
DEFW 6A10H, 6700H, 63F0H, 60E0H, 5DD0H
DEFW 5AD0H, 57D0H, 54E0H, 51F0H, 4F00H
DEFW 4C20H, 4940H, 4670H, 43A0H, 40E0H
DEFW 3E30H, 3B80H, 38E0H, 3650H, 33C0H
DEFW 3140H, 2ED0H, 2C60H, 2A00H, 27C0H
DEFW 2580H, 2350H, 2120H, 1F10H, 1D10H
DEFW 1B10H, 1930H, 1750H, 1590H, 13E0H
DEFW 1230H, 10A0H, 0F20H, 0DB0H, 0C50H
DEFW 0B00H, 09C0H, 0890H, 0780H, 0670H
DEFW 0580H, 04A0H, 03D0H, 0320H, 0270H
DEFW 01E0H, 0160H, 00F0H, 00A0H, 0060H
DEFW 0020H, 0010H, 0000H, 0010H, 0020H
DEFW 0060H, 00A0H, 00F0H, 0160H, 01E0H
DEFW 0270H, 0320H, 03D0H, 04A0H, 0580H
DEFW 0670H, 0780H, 0890H, 09C0H, 0B00H
DEFW 0C50H, 0DB0H, 0F20H, 10A0H, 1230H
DEFW 13E0H, 1590H, 1750H, 1930H, 1B10H
DEFW 1D10H, 1F10H, 2120H, 2350H, 2580H
DEFW 27C0H, 2A00H, 2C60H, 2ED0H, 3140H
DEFW 33C0H, 3650H, 38E0H, 3B80H, 3E30H
DEFW 40E0H, 43A0H, 4670H, 4940H, 4C20H
DEFW 4F00H, 51F0H, 54E0H, 57D0H, 5AD0H
DEFW 5DD0H, 60E0H, 63F0H, 6700H, 6A10H
DEFW 6D30H, 7050H, 7370H, 7690H, 79B0H
DEFW 7CD0H
STBEND EQU $
|