Forum: Mikrocontroller und Digitale Elektronik PIC Standardwerte


von uC (Gast)


Lesenswert?

Hallo,

ich versuche mich gerade in PIC Microcontroller einzuarbeiten und 
verwende xc.h.

Ich habe den PIC16F1503 genommen. Ich versuche gerade herauszufinden wie 
die Register gesetzt sind.

TRISA:
1=PortA pin configured as an input
0=PortA pin configured as an output

ANSA:
1=Analog input
0=Digital I/O

Ich konnte nicht herausfinden wie die Register standardmäßig gesetzt 
sind. Ich vermute die sind standardmäßig auf 0 gesetzt aber sicher bin 
ich mir nicht. Bezieht sich das auf alle Register oder gibt es auch 
Register die standardmäßig manchmal auf 1 gesetzt sind.

Habe nämlich auch gelesen dass es manchmal Probleme gab beim Digital I/O 
da ANSA standardmäßig auf Analog geschalten ist und nicht auf Digital 
I/O.

Danke!

LG

von Meister E. (edson)


Lesenswert?

Die Bits in den ANSEL-Registern sind immer 1, genau so die TRIS-Bits. Es 
gibt mglw. Ausnahmen und auf jeden Fall eine Menge anderer Register, 
deren Zustand nach POR dem jeweiligen Datenblatt zu entnehmen ist.

von Meister E. (edson)


Lesenswert?

Das bedeutet, analoge Eingänge sind default-mäßig aktiviert und alle I/O 
als Eingang konfiguriert.

von Teo D. (teoderix)


Lesenswert?

uC schrieb:
> Ich konnte nicht herausfinden wie die Register standardmäßig gesetzt
> sind.

Das steht doch im Dabla, bei jeder Registerbeschreibung dabei und 
Zusammenfassungen gibts da normal auch! Es macht teils auch nen 
Unterschied, ob es ein "Neustart" oder ein Reset aus anderer Quelle war.

von A. S. (Gast)


Lesenswert?

Meister E. schrieb:
> Das bedeutet, analoge Eingänge sind default-mäßig aktiviert und alle I/O
> als Eingang konfiguriert.

Muss. Sonst würden der PIC beim Einschalten gegen z.B. GND oder 
VCC-Verbindungen treiben.

von Meister E. (edson)


Lesenswert?

Der TO ist anscheinend Anfänger sonst hätte er nicht so gefragt. Wenn er 
weitere Fragen hat, werden ihr ihm sicher gern weiterhelfen, teoderix 
und achs, stimmts?

von A. S. (Gast)


Lesenswert?

Meister E. schrieb:
> Der TO ist anscheinend Anfänger sonst hätte er nicht so gefragt.

Meine Ergänzung war nur als Hintergrund, dass es prinzipiell bei allen 
µC so ist oder sein sollte, wenn es nicht noch irgendwo anders ein 
generelles IO-Enable oder gar eine statische Programmierung dafür gibt.

Wenn man den Hintergrund kennt, ist es oft leichter, Informationen (z.B. 
das Datenblatt) zu verifizieren.

von Meister E. (edson)


Lesenswert?

So toll ist Deine Erklärung aber leider nicht, denn dann müsste das ja 
bei allen IC (nicht nur uC) so sein.
Es gibt immer Pins, deren Beschaltung vorgegeben ist (z.B. 
Versorgungsanschlüsse), also ist Deine Erklärung für einen Anfänger 
womöglich weniger sinnstiftend als verwirrend. Die Frage war schon 
beantwortet.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

uC schrieb:
> Ich konnte nicht herausfinden wie die Register standardmäßig gesetzt
> sind.

Das steht im jeweiligen Datenblatt unter Wert bei Power-On oder 
Brownout.
Anbei für das ANSELA.

von uC (Gast)


Lesenswert?

Danke für die Erklärungen.

Habe mich erst jetzt wieder damit beschäftigt.

Danke für die angehängte Datei aber man muss einmal wissen dass ANSELA 
eine Rolle spielt. Ohne groß zu denken hätte ich gedacht dass TRISx und 
LATx ausreicht und dass es auf I/O gesetzt ist.

Gibt es eigentlich beim PIC sowas wie ein OCR1A Register wo es bis zu 
einem bestimmten Wert zählt und den Interrupt auslöst oder wird ein 
Interrupt immer beim Overflow ausgelöst? D.h. ich muss TMR1 immer auf 
einen Wert setzen und es zählt bis 0xffff.

LG

von Atomkraft, warum nicht? (Gast)


Lesenswert?

Wie waers. wenn du endlich mal ein Datenblatt liest?
Da stehen lauter solche interessanten Kleinigkeiten drin.

von uC (Gast)


Lesenswert?

Atomkraft, warum nicht? schrieb:
> Wie waers. wenn du endlich mal ein Datenblatt liest?

Wie wäre es wenn du eine Frage beantwortest? Ich verstehe nicht warum 
man so einen Satz schreiben kann aber es extrem schwer ist eine Frage zu 
beantworten.

Es hat ja seinen Grund wieso die Frage gestellt wurde:
Kinder wollen das lernen, man kann ein Anfänger sein, man braucht Tipps 
um sich einzulernen, man ist kein Englisch Professor, und und und

Für jemanden der schon einige Male mit einem PIC programmiert hat ist es 
sicher kein Problem. Manchmal lernt man auch lieber aus Tutorials am 
Anfang als aus Datenblättern obwohl man irgendwann das Datenblatt 
brauchen wird. Das Datenblatt hat 352 Seiten. Man muss sich einmal auf 
die Funktionsweise einstellen.

Die Frage ist auch wie die Features benannt wurden. Ich vermute dass es 
die Funktion Clear Timer on Compare Match nicht gibt aber alles ist 
möglich. Es gibt halt manchmal Situationen wo man reinfällt.

Somit kann man immer nur ab einem Wert bis 0xffff zählen und es muss 
immer erneut auf den Wert gesetzt werden.

von Peter D. (peda)


Lesenswert?

uC schrieb:
> Danke für die angehängte Datei aber man muss einmal wissen dass ANSELA
> eine Rolle spielt. Ohne groß zu denken hätte ich gedacht dass TRISx und
> LATx ausreicht und dass es auf I/O gesetzt ist.

Das ist der Fluch der Abwärtskompatibilität. Früher wollte man 
Transistoren sparen und die Pins waren reine Analogeingänge. Somit 
mußten dann auch alle Nachfolger die Pins nach dem Reset so 
konfigurieren, damit der gleiche Binärcode programmiert werden kann. 
Oftmals ging nämlich der Sourcecode verloren oder wurde erst gar nicht 
archiviert.

von Wolfgang (Gast)


Lesenswert?

uC schrieb:
> Danke für die angehängte Datei aber man muss einmal wissen dass ANSELA
> eine Rolle spielt. Ohne groß zu denken hätte ich gedacht dass TRISx und
> LATx ausreicht und dass es auf I/O gesetzt ist.

Auch da gilt: RTFM
Im Datenblatt Kap. 11 "I/O Ports" zeigt die Fig. 11-1 genau, welche 
Register sich i.A. auf eine I/O-Port auswirken. Diese Abbildung findet 
man i.d.R. zu jedem µC. Denken hilft da nichts - lesen!
https://ww1.microchip.com/downloads/en/DeviceDoc/40001607D.pdf

von Michael (Gast)


Lesenswert?

Hallo
Fang doch einfach mal damit an eine LED
blinken zu lassen. Und wenn es nicht funktioniert
dann Programm posten und nachfragen woran es
liegen könnte. Sonst schau mal hier vorbei:

www.sprut.de
oder
https://www.pic-microcontroller.de

von Dieter W. (dds5)


Lesenswert?

uC schrieb:
> Das Datenblatt hat 352 Seiten. Man muss sich einmal auf
> die Funktionsweise einstellen.

Das ist sicher richtig.
Der Abschnitt über Timer ist ein Bruchteil davon und den sollte man 
schon durchlesen und verstehen können.

von xyz (Gast)


Lesenswert?

> PIC16F1503

Wenn er zu faul ist, soll er einen kleineren nehmen.
Z.B. 12F675. Das hat netto gerademal 100 zu lesende Seiten.

> Ohne groß zu denken hätte ich gedacht

Und Brain mal auf "ON" stellen.

von Mucky F. (Gast)


Lesenswert?

uC schrieb:
> Wie wäre es wenn du eine Frage beantwortest? Ich verstehe nicht warum
> man so einen Satz schreiben kann aber es extrem schwer ist eine Frage zu
> beantworten.

Ignorier die Typen einfach. Die haben mal vor 2-3 Generationen beim 
lernen gelitten und sind der Meinung alle anderen müssen auch weil "es 
hat ihnen ja nicht geschadet".

Die Welt hat sich weiter gedreht und solche Fragen sind normal, aber so 
etwas ist ihnen egal. Sie können sich ihre sinnlosen Kommentare auch 
nicht schenken. Wie pawlowsche Hunde müssen Sie diese zu jedem Thema 
hier ablassen, egal wie unpassend und unhöflich, sinnlos, übergriffig 
und rücksichtslos Sie für andere Leser sind. Auch das ist ihnen egal, 
ihnen ist eigentlich alles egal ausgenommen die eigene klägliche 
Existenz und das Recht haben wollen.

Dann kommen Sie noch mit klugen Ratschlägen das ganze doch so und so zu 
machen, diese sind meistens trivial bis öde einfältig. Niemand hat Sie 
darum gebeten.

Wenn du gute Informationen hohes Niveau und sachlichen Umgang möchtest 
dann gehe in das Microchip Forum. Dafür muss man aber englisch können. 
Das hat aber den Vorteil das die deutschen Spacken mangels 
Sprachkenntnisse da nicht rumwildern können.

von W.S. (Gast)


Lesenswert?

Mucky F. schrieb:
> Ignorier die Typen einfach...
> Die Welt hat sich weiter gedreht und solche Fragen sind normal..

So so.
Du meinst also, daß man heutzutage - um sich "gerade in PIC 
Microcontroller einzuarbeiten" - das Manual zu dem gewählten Chip 
vollständig ignoriert und stattdessen "xc.h" verwendet.

Und wenn einem dennoch irgend etwas unklar ist, dann fragt man den Rest 
der Welt, denn dieser ist ja genau DAFÜR da, daß man ihn mit Fragen 
belästigt, die man durch einen simplen Blick ins Manual beantwortet 
findet.

Nein, wer sich derart benimmt, hat eigentlich nur einen einzigen 
Ratschlag verdient: Manual lesen!

Ein gewisses Minimum an eigener Aktivität erwartet unsereiner 
schlichtweg von Leuten, die hier Fragen stellen.

Und wer solche Ansichten vertritt, wie du sie soeben gepostet hast, der 
zielt darauf ab, sowohl die Foren als auch die Hilfsbereitschaft der 
Forenteilnehmer zu mißbrauchen.

W.S.

von Dietrich L. (dietrichl)


Lesenswert?

W.S. schrieb:
> Nein, wer sich derart benimmt, hat eigentlich nur einen einzigen
> Ratschlag verdient: Manual lesen!

ACK.
Und wenn man dann einige Punkte dort nicht versteht, kann man immer noch 
geziehlt Fragen stellen. Da wäre für mich ein akzeptabler Kompromiss, 
denn das würde zeigen, dass sich der Fragesteller wenigstens bemüht hat.

von Toxic (Gast)


Lesenswert?

uC schrieb:
> ich versuche mich gerade in PIC Microcontroller einzuarbeiten und
> verwende xc.h.

Von Microchip gibt es nette Webseminars auf YouTube.
Schau dir das mal an
https://www.youtube.com/watch?v=33kgfbL3Sr0

oder
auch die Microchips Minutes Epiodes z.B. das hier:
https://www.google.com/search?client=firefox-b-d&q=Microchip+Minutes+Episode+2+%E2%80%93+Setting+up+a+Project+in+MPLAB%C2%AE

Sie sind fuer Anfaenger/Neueinsteiger ideal

von uC (Gast)


Lesenswert?

W.S. schrieb:
> Und wenn einem dennoch irgend etwas unklar ist, dann fragt man den Rest
> der Welt, denn dieser ist ja genau DAFÜR da, daß man ihn mit Fragen
> belästigt, die man durch einen simplen Blick ins Manual beantwortet
> findet.
>
> Nein, wer sich derart benimmt, hat eigentlich nur einen einzigen
> Ratschlag verdient: Manual lesen!

Also, manchmal kann ich mir echt auf den Kopf greifen. Wozu ist das 
Forum dann da? Was machen 1000 andere dann in diesem Forum? Alles ist 
irgendwo in einer Bibliothek beantwortet, trotzdem gibt es dieses Forum. 
Jeder hat mit etwas Anderem ein Problem was er versucht zu lösen. Für 
manche ist es grundlegend und manche versuchen sich einzuarbeiten.

Ich lege meine Hand ins Feuer, hätte ich einen Frauennamen 
hingeschrieben, würde mindestens 10 Leuten die Zunge raushängen, den 
gesamten Code in die Tasten schlagen und eine Wette veranstalten wer als 
erster fertig ist.

Dietrich L. schrieb:
> Und wenn man dann einige Punkte dort nicht versteht, kann man immer noch
> geziehlt Fragen stellen. Da wäre für mich ein akzeptabler Kompromiss,
> denn das würde zeigen, dass sich der Fragesteller wenigstens bemüht hat.

Ich wollte nicht dass mir alles vorprogrammiert wird. Ich habe nur 
versucht Unklarheiten zu lösen wie z.B. 100ms einzustellen. Ich suchte 
sowas wie einen Clear Timer to Compare Match aber angeblich hat ein PIC 
sowas in der Art nicht. Somit muss es immer ab einem Wert anfangen bis 
zum Overflow.

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.