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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.