Forum: Mikrocontroller und Digitale Elektronik PIC16F57 Timer0 einbinden


von Manfred R. (Firma: Rücklinger Elektronik) (mandi3325)


Lesenswert?

Hallo zusammen,

bin gerade dabei für eine Low Cost Lösung mich mit einem PIC16F57 
auseinandezusetzen bzw. zu programmieren.

Programmieren werde ich in C mit MPLAP IDE V8.66, Compiler von Knudsen 
CC5X
Grundkenntnisse mit C Programmierung sind vorhanden.

Jetzt will ich den Timer0 miteinbinden, aber sobald ich z.B. den T0CS 
auf 0 setze kommt eine Error Meldung :
Error[1] C:\Work\FWGA\Software\PIC\FWDISP.C 61 : Symbol 'T0CS' is 
undefined
 (The definition of the symbol in not known. This can be due to
 wrong spelling or letter case mismatch. Otherwise a new symbol
 definition is required: variable, function, macro, etc.)

Fehlt hier eine #include Datei und wenn ja welche?
wie binde ich diese ein?
welche #include Dateien benötigt der PIC?

mfg

mandi3325

von stepp64 (Gast)


Lesenswert?

Glaub nicht das das Teil in C wirklich zu programmieren geht: 72 Bytes 
RAM verteilt über 4 Bänke, kein Interrupt und eine Stacktiefe von 2! 
Weiterhin gibt es außer dem Timer0 keine weitere Periferie in dem Teil. 
Ich denke, dass du den schon in Assembler proggen musst und dann auch 
nur sehr keline Anwendungen.

von Manfred R. (Firma: Rücklinger Elektronik) (mandi3325)


Lesenswert?

programmieren in c ist sicher möglich da es bsp programme gibt.
wenn´s nicht geht werde ich ohne timer auskommmen müssen. wäre nur 
bequemer gewesen.

im prinzip geht´s ja nur darum einen pin zu überwachen, wenn der 1 ist 
soll ein port (5 eingänge)ausgelesen werden, und in einem anderen port 
ausgegeben werden (acht ausgänge).

der timer würde nur zu testzwecken dienen.

von Lehrmann M. (ubimbo)


Lesenswert?

Manfred Rücklinger schrieb:
> Jetzt will ich den Timer0 miteinbinden, aber sobald ich z.B. den T0CS
> auf 0 setze kommt eine Error Meldung :
> Error[1] C:\Work\FWGA\Software\PIC\FWDISP.C 61 : Symbol 'T0CS' is
> undefined
>  (The definition of the symbol in not known. This can be due to
>  wrong spelling or letter case mismatch. Otherwise a new symbol
>  definition is required: variable, function, macro, etc.)
>
> Fehlt hier eine #include Datei und wenn ja welche?
> wie binde ich diese ein?
> welche #include Dateien benötigt der PIC?

Funktioniert denn der Zugriff auf andere Register schon ?

Hast du T0CS oder TOCS ??!
         ^         ^
        Null       O wie Oskar

Was hast du denn an .h schon eingebungen?
Welches Linkerscript, welche Libraries verwendest du ?

von Manfred R. (Firma: Rücklinger Elektronik) (mandi3325)


Lesenswert?

T0CS mit Null, die Datei 16F57.h habe ich mit eingebunden, allerdings 
nicht über #include sondern das dürfte der compiler durch auswahl des 
Prozessors schon automatisch machen, denn wenn ich es mit #include 
einbinde kommt die nächste Fehlermeldung. Die bezieht sich auf die erste 
Zeile in der Header Datei 16F57.h auf den #pragma Befehl.

Ansonst habe ich über ein #pragma Befehl den FOSC und den WDTE 
definiert, sonst nichts.

mfg

Mandi3325

von W.S. (Gast)


Lesenswert?

Mein lieber Manfred,

vielleicht würde es dir helfen, wenn du mal die Dokumentation zu dem 
betreffenden PIC gründlich lesen würdest. Der Timer 0 gehört ja wohl zum 
Urgestein der PIC-Gefilde, er sollte also in ALLEN Headerdateien 
wiederzufinden sein. Also liegt dein Problem wohl darin, daß du einfach 
vergessen hast, überhaupr eine Headerdatei einzubinden.

Also:
#include <16F57.h>


Aber mal abgesehen davon finde ich es immer wieder ätzend, daß junge 
Leute sich so konsequent weigern, die Hardware überhaupt kennenzulernen, 
mit der sie etwas tun wollen/sollen. Dazu gehört nach meinem Verständnis 
auch, daß man kleinere uC's eben in Assembler programmiert und nicht für 
einen Controller, der mal eben über 72 Register, 2 Stackplätze und 2048 
Befehlsschritte verfügt nach einem C-Compiler schreit.

Also mein Rat:
Benutze einen moderneren PIC, lies dessen Doku und programmiere ihn in 
Assembler.

W.S.

von Manfred R. (Firma: Rücklinger Elektronik) (mandi3325)


Lesenswert?

Aslo nur zu meinem Verständnis und Grundlegendes:
Ob man einen µC in C Programmieren kann, hängt doch glaube ich vom 
Compiler ab. Da der Knudsen CC5X Compiler diesen µC kann, sollte man, so 
glaube halt ich, diesen in C programmieren können.

Wie schon oben gesagt, der PIC muss nicht viel können, daher auch dieser 
µC, da es sich um eine Low Cost Anwendung handelt. Ich brauche auch den 
Timer0 nicht für diese Anwendung. Wäre halt nur für ein Testprogramm 
gewesen, und zu meinem besseren Verständnis für spätere Anwendungen bzw. 
Programme und andere µC.

Das man diese Header Datei einbinden muss, weiss ich auch. Kommt halt 
nur eine andere Fehlermeldung.

Wäre halt schön wenn in Zukunft nur Antworten zu diesem Thema kommen, 
die mir weiterhelfen, und keine Grundlegenden Diskussionen.

mfg

von Manfred R. (Firma: Rücklinger Elektronik) (mandi3325)


Lesenswert?

So,

das Ding funkt jetzt auch in C.

das mit dem Timer dürfte mit der Header Datei von dem Knudsen CC5x 
Compiler zusammenhängen.

ist ein gewaltiger unterschied zwischen der 16F57.h von Knudsen und von 
PIC16F57.H von einem anderen Compiler.

weis wer von wo man die richtige 16f57 herbekommt, da der Compiler 
automatisch die 16F57.h einbindet ohne das ich #include <16f57.h> 
schreibe.

wie gesagt ist nicht notwendig, da ich den Timer nicht benötige, würde 
mich nur interessieren.

von ich (Gast)


Lesenswert?

Allgemein kann die schon von Compiler zu compiler unterschiedlich sein. 
Ich hätte gesagt direkt bei microchip oder vom mikroC Compiler der Frima 
mikroelektronika. Und ganz ehrlich;) Wenn du den mikroC schon 
runterlädst, kannst du ihn gleich auch testen und warscheinlich (so wie 
ich) auch gleich weiter benutzen ^^

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.