hallo forum, folgendes problem: ich möchte einen unsigned char array mit 40000er tiefe in den programmspeicher eines ATmega128 legen. syntax in der angehängten txt-datei. der beim compilieren kommt jedoch folgende fehlermeldung: >> D:\...\./sinus_40000.txt:3: error: size of variable 'sinus_40000' is >> too large >> ../sieben_segment_2.c: In function '__vector_15': (so sieht die fehlermeldung aus wenn das array in einer includierten txt-datei liegt - liegt es direkt im main-c-file ändert sich sinnvollerweise nichts.) mit 20000er tiefe funktioniert es einwandfrei. wo liegt mein fehler, oder geht es nicht solch ein großes zusammenhängendes array zu deklarieren? grüße pumpkin
Hallo Nicht dass ich deine Frage direkt beantworten kann, aber trotzdem ein Hinweis: Du scheinst dir eine Lookup-Table für einen Sinus gebastelt zu haben, mit einer sehr genauen Auflösung (jedenfalls auf der x-Achse). Nur bringt dir dies nicht viel, da die Funktionswerte nur auf 1/256 genau berechnet werden. Da würde es bei einer so "vernünftigen" Funktion wie dem Sinus auch genügen, wenn du die Lookup-Table ebenfalls nur aus 256 Werten bildest. Es reicht, diese Werte für den Sinus zwischen 0 und 90 Grad zu berechnen, alles weitere, inklusive dem Cosinus (und mit etwas mehr aufwand auch dem Tangens) kriegt man mit einfachen Rechenoperationen daraus. Gruss Michael
ich weiss ich weiss, rein rechnerisch beträgt bei 8 bit auflösung eine anzahl von 805 (genauer 804,24...) samples. aber das ist nicht der punkt. speicher ist im überfluss vorhanden, aber schnell soll die sache sein; deswegen ist keine zeit für eine längliche rechnung um den kleinen table 'auseinanderzurechnen'. aber trotzdem danke für deine antwort. : ) pumpkin
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.