Forum: Mikrocontroller und Digitale Elektronik C-Code in PIC16F84A


von kneubel (Gast)


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

von matthes (Gast)


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

von Michael (Gast)


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

von kneubel (Gast)


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?

von Steffen (Gast)


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.

von kneubel (Gast)


Angehängte Dateien:

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

von Steffen (Gast)


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.

von kneubel (Gast)


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)

von Neki (Gast)


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

von Steffen (Gast)


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.

von kneubel (Gast)


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

von kneubel (Gast)


Angehängte Dateien:

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?

von Steffen (Gast)


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.

von kneubel (Gast)


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!!!

von Steffen (Gast)


Lesenswert?

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

von kneubel (Gast)


Lesenswert?

Danke Steffen,

werde mal nach einem anderen Porgrammer ausschau halten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.