www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik monsterarray im PROGMEM


Autor: pumpkin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pumpkin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entschuldigung, das wichtigste habe ich vergessen:

AVR Studio 4.12 SP 4

pumpkin

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pumpkin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.