Gast
#862496
Da ich zu Zeit ein wenig am verzweifeln bin suche ich hier Hilfe um zu erfahren, ob ich das ganze einfach falsch angehe oder ob die Möglichkeiten eine ATMega 8, laufend mit internem Takt, wirklich schon ausgeschöpft sind. Das Programm ergibt zunächst einmal nicht viel Sinn, da es nur ein Teil von dem darstellt, was es mal werden sollte. Im Groben geht es bis jetzt darum: - Midi Daten empfangen - Schreiben in einen Eingangspuffer - Sobald mindestens 3 Bytes im Puffer vorhanden sind: - Schreiben in einen Ausgangspuffer - Midi Daten wieder versenden Dabei ist die Art, einen vollen uint8_t als Puffer-Index zu verwenden, um sich Abfragen etc. wegen der Rücksprünge auf den Index 0 zu sparen, schon mehr als dirty, und das nur, um sich ein paar einfache logische Operationen zu sparen ( auskommentiert ). Anspruchsvollere Midi-Files sind jetzt schon nur mit Compileroptimierung auf Geschwindigkeit am Eingang sowie Ausgang identisch, ohne dass es merkbare Timingverluste gibt. Was soll ich noch tun? Hilft wirklich nur eine Erhöhung des Taktes ?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |