Gast
#3402882
Hallo zusammen, ich habe für ein UKW-Sender-Projekt (2m-Band FM ;) ) einen ATmega32 als Controller für die 1.ZF verwendet. Der Mega32 bekommt über einen Seriellen Bus die Ausgangsfrequenz des Senders und schaut dann in einer Lookup-Tabelle nach, welchen wert die ZF haben muss und berechnet dann den Register wert für den DDS-Chip. Um zu überprüfen, ob er die Werte richtig ausliest habe ich erst mal folgenden Code benutzt (ich habe mal das Grundgerüst weggelassen):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
Die Komplette Lookup-Tabelle hat einen Umfang von 19 Datensätzen mit 20 werten. für jeden wert habe ich einen eigenen Lookup Befehl, da es keine lineare Zuweisung der Tabelle zu der Wunschfrequenz ist. Mein Problem ist nun folgendes: Wenn ich über seriell einen Wert hineingebe kommt nur bei einer Zahl der richtige Wert zurück, da diese in einer extra spalte der lookup-Tabelle ist, sonst kommt meistens 2056 oder eine anderer wert im Bereich von -30000 bis +30000 zurück, was definitiv nicht die ZF Werte sind. Hat jemand eine Ahnung, warum ich nichts sinnvolles zurück bekomme und wie ich das lösen kann? Ist der Ram vom µC zu klein oder ist das außerhalb der Maximalgröße für lookup-Tabellen? Ich bin mit meinem Latein am ende :P