mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Code in PIC16F84A


Autor: kneubel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen miteinander...

Vorabinformation: ich absoluter Neuanfänger...also habt bitte gedult
mit mir.

Ich habe mir aus dem Netz eine Bauanleitung (inkl. Schaltplan und
Programmlisting) für eine Alarmanlage gezogen. Die Schaltung habe ich
jetzt soweit aufgebaut, sodass ich mich nun an das brennen des
PIC16F84A  begeben will. Hierfür habe ich mir ein Pic-Brenner und
Experimentierboard von www.vellman.be zugelegt. Das Brennen über ASM
mittels des beigelegten Programms funktioniert, jedoch liegt der
Programmcode für die Steuerung der Alarmanlage in "C" vor. Wie, oder
mit welchem Programm bekomme ich nun den compilierten Code in meinen
PIC?

Dank für Eure unterstützung bei meinen ersten "gehversuchen"

Gruss Kneubel

Autor: matthes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich gehe davon aus das du die MICROCHIP IDE hast, für diese gibt es
einen C-Compiler names PIC C Lite von Hitech Software. Der sollte nach
dem registrieren frei zum runterladen sein (kann sein das ich mich
irre, aber habe auf jeden fall im letzten Semester viel damit
gearbeitet.

mfg matthes

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In deiner Besreibung steht irgendwo Name des Compielers.
Weil es gibt mehrere C-Compiler.
Erste Schritte mit cc5x-Compiler findest du hier www.cc5x.de

Autor: kneubel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen...
Vorab möchte ich euch ersteinmal Dankesagen für Eure Unterstützung.

Mit dem Compiler cc5x hatte ich es schoneinmal probiert, jedoch hatte
ich hierbei probleme mit der stdio.h bekommen, worauf sich das file
nicht compilieren lies.

Jetzt habe ich wie von Matthes den PICC lite heruntergeladen und
installiert. Jedoch bekomme ich auch hier folgende Fehlermeldungen beim
kompilieren:

Error[000]:  Illegal # directive "FUSES"
Error[000]:  Illegal # directive "use"
Error[000]:  Illegal # directive "BYTE"

Habt Ihr noch eine Idee?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuche es mal mit dem CCS-Compiler www.pic-c.com. Sieht so aus als
wäre das der richtige. Ein Link auf das Listing währe mehr als
hilfreich.

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

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt versucht dies mit dem CCS C-Compiler das ganze zu
kompilieren, jedoch bekomme ich jetzt die Fehlermeldung:

Invalid Pre-Processor directive

in verbindung mit der Datei: 16C84.H

Habt Ihr hierfür einen Lösungsvorschlag für mich?

Ps: Anbei das Programmlisting

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist irgendwo was durcheinandergewürfelt. Es wird eine Datei aus dem
Verzeichnis \CC5\ (CC5-Compiler?) includiert und dann die #use rs232
(CCS-Compiler) Direktive aufgerufen. Die zu includierende Datei müsste
irgendwo unter \CCS\ oder \PCM\ stehen.

Autor: kneubel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hattest recht, die Verzeichnispfade waren inkorregt. Diese habe ich
jetzt soweit angepasst, jedoch bekomme ich bei der Zeile 16:

#use RS232 (Baud=2400, Xmit=PIN_17, Rcv=PIN_18)

die Fehlermeldung zurückgeliefert, dass:

USE parameter value is out of Range Not a number: PIN_17.

Was läuft da schief? Bin ich zu blöd dieses Listing zu kompilieren?
(rhetorische Frage)

Autor: Neki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Dein Problem liegt darin, dass es PIN_17 und PIN_18 gar nicht gibt.
Oder ich bin zu blöd die Pins im Headerfile zu finden.
Wär für nen PIC auch ne etwas ungewöhnliche Bezeichnung.
Im allgemeinen weden die Pins mit PIN_Ax und PIN_Bx bezeichnet.
Da die Gruppen A und B unterschiedliche Eigenschaften haben. Die
B-Gruppe hat z.B. interne Pullups was die A-Gruppe nicht hat.

Wie Deine Pins heißen findest Du am besten im Headerfile raus, wenn Du
Dir dazu noch das Datenblatt des PICs nimmst, dann weißt Du auch um
welche Pins es sich tatsächlich handelt.

Nach was anderes, welchen PIC benutzt Du eigentlich? Den PIC16F84A,
PIC16F84, PIC16C84A oder PIC16C84A. Jeder PIC hat nen eigenes
Headerfile.
Ich weiß jetzt nicht ob die sich Inhaltlich wirklich unterscheiden,
aber ich denke es wäre ne gute Idee das passende zu benutzen.

Kurz zu den abkürzungen F steht für Flash, heißt also es ist möglich
den Mikrocontroller öfters zu programmieren ohne diesen vorher Löschen
zu müssen, z.B. durch UV-Licht.

Für welches Wort das C steht weiß ich nicht genau, es steht auf jeden
fall für alle Mikrocontroller die nicht wieder beschreibbar sind. Das
gilt allerdings nicht für die Mikrocontroller mit Fenstern, diese sind
durch UV-Licht löschbar.

Hoffe das bringt Dich weiter

Gruß

Neki

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Für welches Wort das C steht weiß ich nicht genau, es steht auf jeden
fall für alle Mikrocontroller die nicht wieder beschreibbar sind. Das
gilt allerdings nicht für die Mikrocontroller mit Fenstern, diese sind
durch UV-Licht löschbar."

Fast richtig. Die einzigste Ausnahme war der 16C84. Der hat einen
EEPROM als Programmspeicher, ist also auch wiederbeschreibbar.

Autor: kneubel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JIPPI...

Eine der einfachsten Hürden (das Compilieren eines schon vorliegenden
Quellcodes (Lacht nicht!)) ist genommen und dies nur dank Eurer Hilfe.
Ob der PIC nun auch das macht, was er soll werden wir sehen.

Nocheinmal mein recht herzlichen Dank

Kneubel

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

Bewertung
0 lesenswert
nicht lesenswert
MIST ... ZU FRÜH GEFREUT.

Konnte zwar jetzt erfolgreich das HEX-File erstellen, jedoch beim
öffnen der HEX-Datei mit meinem PIC-Brenner (Velleman PIC Programmer)
meldet er falsches Dateiformat. Er wünscht eine HEX-Datei im
INHX8M-Format. Wie muss ich den Kompiler PCW C-Compiler konfigurieren,
dass er das richtige dateiformat erstellt? (Datei angehängt der
aktuellen Einstellungen)

Hättet Ihr hierfür noch einen Tipp für mich?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht mir nach MPLAB 7.XX aus. Das habe ich bei mir noch nicht
installiert. Schau mal in der CCS-Hilfe nach. Da sind alle Optionen der
Command-Line Version des Compilers aufgelistet und versuche es mal per
Hand zu compilieren.

Autor: kneubel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen,

Zur Eklärung, evtl. habe ich ja bei den einstellungen etwas verkehrt
gemacht:
ich habe zwar MPLAB 7.01 installiert. Unter Project->Select Language
toolsite habe ich CCS C-Compiler ausgewählt. Wenn ich nun unter Build
das File Kompilieren will öffnet sich daraufhin der PCW C Compiler mit
meinem Listing. Kompiliert wird daraufhin nicht automatisch sondern ich
muss mit f9 das Listing kompilieren. Komisch, dass unter MPLAB darauf
nichts passiert. Wenn ich mir nun das mit oben eingestellten Optionen
HEX-File anschaue, dann kann ich keine Formatsspezifischen Abweichungen
im vgl. zu einem mitgelieferten Example-File erkennen. Die in der Hilfe
angegeben Optionen zum komilieren von Hand sind in etwa die gleichen,
die ich auch von Hand im Menü einstellen kann.
Wie bekomme ich das verflixte File so kompiliert, dass das
Brennprogramm die datei im INHX8M-Format lesen kann.
Hat jemand einen kreativen Vorschlag? Ich bin kurz vorm verzweifeln!!!

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne den Programmer nicht. Evtl. hat der ja ein Problem.

Autor: kneubel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Steffen,

werde mal nach einem anderen Porgrammer ausschau halten.

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.