• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Tiny Tone
#44
jo, gcc optimiert schon gut. aber bei sowas...ist selbst/assembler , mit zb nur 2 registern benutzt, die gesichert werden müssen, kaum von nem compiler zu erwarten.

+
mach doch, so wie es nu ist, auf 125khz rate. ist ja auch noch gut ausreichend , um bis 20k Ton zu erzeugen.
+
wenn pll in low power mode bringst, macht es 32 MHz und somit ist die volle pckl gleich passend für 125khz rate...und verbraucht weniger Saft.
ob der core dann noch auf 16MHz laufen kann -was er hier ja sollte- hab ich jetzt nich im Kopf...muttu DB befragen  Rolleyes

hier ein Beispiel: DDS in asm, timer INT --- läuft mit 256kHz rate problemlos ( im sinus sind es rund 16 Befehle, bei 16MHZ sind die in < 2us durch...)
+ es wird nur sreg , 1 Register benutzt ! und push/pop gesichert. DAS macht der compiler sicher nicht so...

Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

timer:
       in sregsave, SREG                 ; Statusregister sichern
       
; Sägezahn und Rechteck bekommen eine Sonderbehandlung:
       cpi waveform, t_square            ; ist Rechteck eingestellt?
       breq square                       ; wenn ja, springe zu square
       cpi waveform, t_sawtooth          ; ist Sägezahn eingestellt?
       breq sawtooth                     ; wenn ja, springe zu sawtooth

;Bei Sinus oder Dreieck wird einfach der Wert aus dem Speicher gelesen
       lpm                               ; Funktionswert aus dem Speicher lesen
       add z1, change1                   ; Phasenakkumulator
       adc z2, change2
       adc z3, change3
       out PORTD, R0                     ; Wert an den Analog-Digital-Wandler ausgeben
       out SREG, sregsave                ; Statusregister wiederherstellen
       reti                              ; Interrupt verlassen, zurück zum Hauptprogramm
       
square:                                   ; falls Rechteck:
       add z1, change1                   ; Phasenakumulator
       adc z2, change2
       adc z3, change3
       cpi z3, 128                       ; Wenn die Mitte einer Schwingungsperiode
                                         ; überschritten ist...
       brlo square_1
       out PORTD, null                   ; ...dann minimale Ausgangsspannung (0)
       out SREG, sregsave                ; Statusregister wiederherstellen
       reti                              ; Interrupt verlassen, zurück zum Hauptprogramm
square_1:
       out PORTD, full                   ; ...andernfalls maximale Ausgangsspannung
       out SREG, sregsave                ; (siehe oben)
       reti                              ;

sawtooth:
       add z1, change1                   ; Phasenakkumulator
       adc z2, change2
       adc z3, change3
       out PORTD, z3                     ; Beim Sägezahn ist die Spannung proportional zur
                                         ; Position in der Phase, das höchstwertige Byte
                                         ; der Position kann also direkt an den AD-Wandler
                                         ; gegeben werden
       out SREG, sregsave
       reti
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
Reply
  


Nachrichten in diesem Thema
Tiny Tone - von voltwide - 14.01.2019, 09:02 PM
RE: Tiny Tone - von voltwide - 14.01.2019, 09:17 PM
RE: Tiny Tone - von voltwide - 14.01.2019, 10:23 PM
RE: Tiny Tone - von christianw. - 15.01.2019, 01:55 PM
RE: Tiny Tone - von voltwide - 15.01.2019, 06:41 PM
RE: Tiny Tone - von voltwide - 15.01.2019, 11:49 PM
RE: Tiny Tone - von voltwide - 16.01.2019, 01:25 AM
RE: Tiny Tone - von alfsch - 15.01.2019, 06:19 PM
RE: Tiny Tone - von christianw. - 15.01.2019, 07:01 PM
RE: Tiny Tone - von christianw. - 16.01.2019, 12:28 AM
RE: Tiny Tone - von voltwide - 16.01.2019, 12:53 AM
RE: Tiny Tone - von alfsch - 16.01.2019, 02:12 AM
RE: Tiny Tone - von voltwide - 16.01.2019, 02:21 AM
RE: Tiny Tone - von christianw. - 16.01.2019, 02:34 PM
RE: Tiny Tone - von voltwide - 16.01.2019, 06:48 PM
RE: Tiny Tone - von christianw. - 16.01.2019, 10:33 PM
RE: Tiny Tone - von christianw. - 16.01.2019, 10:43 PM
RE: Tiny Tone - von voltwide - 18.01.2019, 05:45 PM
RE: Tiny Tone - von christianw. - 18.01.2019, 08:51 PM
RE: Tiny Tone - von voltwide - 18.01.2019, 11:01 PM
RE: Tiny Tone - von voltwide - 19.01.2019, 12:03 AM
RE: Tiny Tone - von alfsch - 19.01.2019, 01:12 AM
RE: Tiny Tone - von voltwide - 19.01.2019, 09:34 AM
RE: Tiny Tone - von alfsch - 19.01.2019, 10:47 AM
RE: Tiny Tone - von christianw. - 19.01.2019, 09:29 AM
RE: Tiny Tone - von voltwide - 19.01.2019, 11:49 AM
RE: Tiny Tone - von alfsch - 19.01.2019, 12:24 PM
RE: Tiny Tone - von alfsch - 19.01.2019, 01:24 PM
RE: Tiny Tone - von voltwide - 19.01.2019, 03:23 PM
RE: Tiny Tone - von alfsch - 20.01.2019, 12:39 AM
RE: Tiny Tone - von voltwide - 23.01.2019, 11:01 PM
RE: Tiny Tone - von christianw. - 23.01.2019, 11:55 PM
RE: Tiny Tone - von voltwide - 24.01.2019, 01:56 AM
RE: Tiny Tone - von voltwide - 24.01.2019, 12:48 PM
RE: Tiny Tone - von kahlo - 24.01.2019, 04:17 PM
RE: Tiny Tone - von christianw. - 24.01.2019, 04:18 PM
RE: Tiny Tone - von voltwide - 24.01.2019, 04:36 PM
RE: Tiny Tone - von voltwide - 24.01.2019, 04:42 PM
RE: Tiny Tone - von christianw. - 24.01.2019, 04:40 PM
RE: Tiny Tone - von alfsch - 24.01.2019, 08:23 PM
RE: Tiny Tone - von voltwide - 24.01.2019, 09:06 PM
RE: Tiny Tone - von voltwide - 24.01.2019, 11:16 PM
RE: Tiny Tone - von voltwide - 24.01.2019, 11:51 PM
RE: Tiny Tone - von alfsch - 25.01.2019, 01:38 PM
RE: Tiny Tone - von voltwide - 25.01.2019, 07:39 PM
RE: Tiny Tone - von voltwide - 25.01.2019, 08:57 PM
RE: Tiny Tone - von voltwide - 26.01.2019, 01:23 AM
RE: Tiny Tone - von alfsch - 26.01.2019, 12:46 PM
RE: Tiny Tone - von voltwide - 26.01.2019, 02:20 PM
RE: Tiny Tone - von voltwide - 26.01.2019, 02:32 PM
RE: Tiny Tone - von voltwide - 26.01.2019, 11:35 PM
RE: Tiny Tone - von voltwide - 27.01.2019, 12:28 AM
RE: Tiny Tone - von alfsch - 27.01.2019, 02:38 PM
RE: Tiny Tone - von voltwide - 27.01.2019, 02:56 PM
RE: Tiny Tone - von voltwide - 27.01.2019, 09:06 PM
RE: Tiny Tone - von voltwide - 27.01.2019, 10:29 PM
RE: Tiny Tone - von voltwide - 28.01.2019, 04:27 PM
RE: Tiny Tone - von voltwide - 29.01.2019, 12:42 AM
RE: Tiny Tone - von Bandre - 29.01.2019, 08:43 AM
RE: Tiny Tone - von voltwide - 29.01.2019, 01:50 PM
RE: Tiny Tone - von alfsch - 30.01.2019, 09:59 AM
RE: Tiny Tone - von voltwide - 30.01.2019, 11:08 AM
RE: Tiny Tone - von alfsch - 30.01.2019, 02:38 PM
RE: Tiny Tone - von voltwide - 30.01.2019, 04:40 PM
RE: Tiny Tone - von Bandre - 29.01.2019, 01:58 PM
RE: Tiny Tone - von christianw. - 30.01.2019, 01:00 PM
RE: Tiny Tone - von alfsch - 16.02.2019, 11:04 PM
RE: Tiny Tone - von voltwide - 17.02.2019, 12:03 AM
RE: Tiny Tone - von E_Tobi - 17.02.2019, 10:09 AM
RE: Tiny Tone - von alfsch - 17.02.2019, 01:37 PM
RE: Tiny Tone - von alfsch - 17.02.2019, 12:47 AM
RE: Tiny Tone - von voltwide - 17.02.2019, 09:38 AM
RE: Tiny Tone - von kahlo - 17.02.2019, 03:17 PM
RE: Tiny Tone - von voltwide - 17.02.2019, 03:49 PM
RE: Tiny Tone - von alfsch - 17.02.2019, 04:05 PM
RE: Tiny Tone - von E_Tobi - 17.02.2019, 05:01 PM
RE: Tiny Tone - von alfsch - 17.02.2019, 05:52 PM
RE: Tiny Tone - von E_Tobi - 17.02.2019, 06:09 PM
RE: Tiny Tone - von alfsch - 17.02.2019, 06:45 PM
RE: Tiny Tone - von alfsch - 17.02.2019, 07:04 PM
RE: Tiny Tone - von voltwide - 18.02.2019, 03:55 PM
RE: Tiny Tone - von E_Tobi - 17.02.2019, 07:19 PM
RE: Tiny Tone - von alfsch - 17.02.2019, 07:30 PM
RE: Tiny Tone - von E_Tobi - 17.02.2019, 07:56 PM
RE: Tiny Tone - von alfsch - 18.02.2019, 05:10 PM
RE: Tiny Tone - von E_Tobi - 18.02.2019, 08:24 PM
RE: Tiny Tone - von alfsch - 18.02.2019, 09:36 PM
RE: Tiny Tone - von voltwide - 19.02.2019, 01:10 AM
RE: Tiny Tone - von alfsch - 19.02.2019, 11:39 AM
RE: Tiny Tone - von christianw. - 19.02.2019, 12:19 PM
RE: Tiny Tone - von alfsch - 19.02.2019, 12:42 PM
RE: Tiny Tone - von christianw. - 19.02.2019, 01:53 PM
RE: Tiny Tone - von voltwide - 19.02.2019, 02:37 PM
RE: Tiny Tone - von E_Tobi - 19.02.2019, 09:37 PM
RE: Tiny Tone - von alfsch - 19.02.2019, 10:49 PM
RE: Tiny Tone - von voltwide - 19.02.2019, 11:36 PM
RE: Tiny Tone - von alfsch - 20.02.2019, 12:19 AM
RE: Tiny Tone - von christianw. - 19.02.2019, 11:39 PM
RE: Tiny Tone - von voltwide - 20.02.2019, 12:02 AM
RE: Tiny Tone - von christianw. - 20.02.2019, 08:55 AM
RE: Tiny Tone - von voltwide - 21.02.2019, 01:29 AM