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
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.
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.
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.
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?
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.
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.
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.
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
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.
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.
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
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
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.
> 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.
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.
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.
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.
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.