Lookup-Fehler mit Mega32

Gast #3402882
Lesenswert?

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
Do
2
Input Mhz
3

4
select case Mhz 'aus der Variablen für die WunschFrequenz vergleichen
5

6
case "Freq.1"
7
Fq = lookup(stelle, datensatz1) 'stelle und datensatz stehen hier nur als ersatz
8

9
case "Freq.1"
10
Fq = lookup(stelle, datensatz2)
11
end select
12

13
print Fq
14

15
Loop
16
end
17

18
'Lookup Tabelle
19
datensatz1:
20
data stelle , stelle1 , stelle2
21

22
datensatz2:
23
data stelle , stelle1 , stelle2

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
Gast #3407527
Lesenswert?

Das Problem hat sich gelöst. nach einem Wochenende voller Google und 
Freunde fragen lag es an einer Fehlerhaften Zuweisung der Variablen. Man 
muss nämlich eine Deklaration vor oder hinter den wert setzen, zum 
Beispiel ein Ausrufezeichen für einen Single und so weiter. Schade, dass 
keiner geantwortet hat :/

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren