www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC programmieren in C


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich programmiere einen PIC18F452 in C mit dem Compiler c18 von
Microchip. Dabei ist mir aufgefallen, dass ich maximal 120 Bytes für
die Deklaration von Variablen verwenden kann. So ist z.B. bei einem
Array unsigned char test[120] schon schluss und ich kann keine weiteren
Variablen mehr deklarieren (unsigned char hat 1 Byte).

Weiß jemand wie man in C diesbezüglich den PIC besser ausnutzen kann???

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
120 Byte sind für eine MC-Anwendung schon enorm viel.

Überleg Dir nochmal, ob Du wirklich soviel brauchst.

Das Stichwort bei C sind lokale Variablen, d.h. die benötigten
Variablen werden erst in der Funktion angelegt, in der sie gebraucht
werden.
Damit stehen sie dann beim Verlassen der Funktion wieder anderen
Funktionen zur Verfügung.

Ich habe z.B. Programme in C für den AT89C2051 geschrieben, die
insgesamt 1000 Byte an Variablen benutzen, aber eben nicht
gleichzeitig. Daher passen sie trotzdem in die "nur" 128 Byte SRAM.


Peter

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

danke für deine schnelle Antwort. Ich habe vor eine CompactFlash Karte
auszulesen. Ein Sektor hat dabei eine Größe von 512 Byte. Diese würde
ich gerne puffern. Vielleicht ist das auch gar nicht nötig, denn diese
Daten sollen z.B. seriell empfangen oder gesendet werden. Aber wenn
doch wäre es nicht schlech, wenn man einen kompletten Sektor mal
speichern könnte.

Alex

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

dürfte eigentlich nicht passieren. Der PIC hat ja 1,5k RAM.
Compiler-Einstellungen flasch? Compiler kaputt?

Matthias

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.