www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Textarray mit 160 Zeichen???


Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hab mal wieder ein Problem.Möchte ein Textarray von 160 Zeichen 
bereitstellen. Möglich sind aber nur 57.
Ich bin schon vom 4433 auf ein 8535 umgestiegen weil ich dachte es sind 
Speicherprobleme. Hat jemand eine Idee? Hier ein kleiner Ausschnitt:

#include <90s8535.h>
#include <stdio.h>
#include <string.h>
void main(void)
{
char string[57]; //max 57 und brauche 160zeichen ?????????????
unsigned char i=1;
unsigned char shift=1;
unsigned char acht=8;
unsigned char tmp;
int laenge;

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Compiler verwendest du?
Wahrscheinlich wird es daran liegen, daß du das memory model auf small 
statt tiny setzen mußt.

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
160 Zeichen ? Klingt nach SMS String. Mit dem 8535 habe ich eine PDU 
Wandlung hinbekommen. Allerdings mußt Du mit dem Speicher haushalten und 
Speicher allokieren also mit alloc, malloc oder calloc arbeiten und 
nicht so vielen globalen Variabeln.

Bei mir laufen parallel statische 60 Bytes  + 25 Bytes und 170 
"malloc"ierte Speicherstellen. (malloc.h nicht vergessen).

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi reiner..
ist der malloc für den gcc?
wenns es dir nichts ausmacht würde ich die lib gerne haben.

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende den Codevision AVR Compiler.
Wie Reiner erkannt hat soll es ein PDU werden. Klappt auch alles nur die 
Zeichenlänge haut nicht hin. So eine malloc.h oä. steht mir leider nicht 
zur verfügung. Wo stelle ich denn dieses small oder tiny ein? Hab als 
Vorgabe einfach 8535 benutzt und meine Werte (UART,PORT usw.)gesetzt.
Gruß Helge

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
projekt->configure->C-compiler

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab jetzt mal das memory model auf small statt tiny gesetzt.bringt 
leider auch nichts.ab 58 zeichen gehts nicht mehr

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du auch im og. menü den 8535 eingestellt? Oder nur mit der 
inc-Datei? Ich hab deinen Kram gerade mal compiliert, geht problemlos.

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

Bewertung
0 lesenswert
nicht lesenswert
ja hab ich alles gemacht.hab auch nochmal ein neues projekt mit einem 
8535 erstellt.ich hänge mal das ganze prog im anhang an.
das kann ich bei mir mit mehr als 57 zeichen nicht compilieren

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mußt die Variable als globale Variable deklarieren, nicht innerhalb 
main{}

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kanns gar nicht fassen.danke dir für den tipp!!! es geht jetzt
gruß helge

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.