www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Keil C166 Eval Problem & Probs mit C167CR P3.12


Autor: Thomas Weihrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich darf gerade an für ein Projekt(FH) bearbeiten wo ich unter anderem
mit einem Eval-Board und der Eval Verison von Keil für C166 arbeiten
darf.

- Codelimit wegen Eval 8k

1. Problem:
- momentane Programm Größe ca 4k
  nun will ich eine Funktion schreiben der ich einen long wert gebe
  und welche mir auch wieder einen long zurückgibt.
Nun kommt plötzlich die Meldung das ich über 8k Code habe und das das
mit der Eval nicht geht.

Wie kann ich bitte mit einer Funktion gute 4k Code erzeugen wenn in der
Funktion zu Testzwecken nur den Wert wieder zurückgegeben, also so gut
wie NICHTS gemacht wird.
--> long berechnung(long x)
    { return x;}

Habe vorher im Programm auch schon Funktionen geschrieben die mit long
Typen arbeiten. Also kanns am long nicht liegen. Habe im Forum gelesen
das es Probs mit float Typen gibt.

Begrenzt Keil vielleicht nicht nur den Codesize sondern auch die Anzahl
von Funktionen? Habe die Funktion einfach mal umgeschrieben das nur int
Typen rein- bzw. rausgeschreiben werden und das Problem blieb
erhalten.

2. Problem:

ich benutze die ASC0 und die SSC Schnittstelle welche beide auf P3
liegen. Zusätlich will ich noch die restlichen Pins von P3 als Ausgänge
benutzen. Das geht auch mit allen eigentlich einwandfrei bis auf P3.12.
Auf diesem Port liegt noch das Signal BHE. Habe dann mal im Handbuch
nachgelesen wie man den BHE deaktiviert und als Port verwendet. Wenn
ich die Anweisunge ausführe ändert sich aber nichts an meinem Problem.
P3.12 zappelt zu bestimmten Zeitpunten zwischen 0 und 1 hin und her.
Habe die Vermutung das es an dem Eval-Board liegt (weiß leider gerade
nicht von wem das ist). Hatte jemand schon ein ähnliches Problem?
Vielleicht liegts ja nicht am Eval Board.

mfg
Thomas

Autor: Rasputin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilfts:

Setze in den Options for Target/C166 -> Emphasis die Drop-Down-Auswahl
auf 'Favor Size'.

Und nur die nötigsten Bibliotheken einbinden.

Autor: Thomas Weihrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, Danke.
Werds mal probiern. Geht leider erst am Mittwoch.
Ist halt echt komisch mit einer Funktion die nichts macht 4k Code zu
erzeugen.

Haben halt viel Text via Hyperterminal, deshalb die 4k der eigentliche
Code der was tut ist nur ein kleiner Bestandteil der 4k

Autor: T.Stütz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu P3.12

kann es sein das du den P3.12 manchmal als IN und manchmal als OUT
deklarierst (DP3.12) ?

dazu gibts eine Errata, kurz gefaßt beim bitweisen beschreiben
des Ports P3 (z.B. ausgabe eines Zeichens auf ASC0) liest der Prozessor
den Zustand des ganzen wortes ein und setzt dan entsprechendes bit und
gibt ihn dann wieder aus => durch Input wird irgentetwas eingelesen und
dann beim umschalten auf Output verwendet !

Abhilfe: vor dem wechsel auf Out den gewünschten werden eintragen

BSET P3.12
BCLR DP3.12

Gruss

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau dir halt mal Linker Ausgaben und die List files des Compilers
einmal mit und einmal ohne deine Funktion an.
Das Problem liegt mit Sicherheit nicht an deiner leeren Funktion.
So schlecht ist kein Compiler dass er für eine leere Funktion 4k
braucht.
auserdem weis ich nicht wo deine 8k herkommen:
http://www.keil.com/demo/limits.asp
sagt ein Limit von 4k.

Thomas

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.