Gast
#542549
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Wie sage ich dem Junge er soll bitte dann erst die LED einschalten wenn ich auf den Taster gedrückt habe der sich auf RA4 befindet? Danke
|
Anzeige
|
µC Pin Abfrage
Gast
#542549
Wie sage ich dem Junge er soll bitte dann erst die LED einschalten wenn ich auf den Taster gedrückt habe der sich auf RA4 befindet? Danke Welcher Prozessor? MFG Falk
Gast
#542558
Klingt nach PIC oder?
Gast
#542563
pic ja. Lese grad die p18f452.h Datei durch werde aber nicht Schlau daraus. C18 Compiler
Gast
#542598
ja?
Gast
#542632
Kenn mich mit PIC's nicht so aus. Aber es müsste ein Befehl geben in der Art PINx. variable = PINx
Gast
#542657
Schau da mal nach: http://www.roboternetz.de/phpBB2/viewtopic.php?t=28715&sid=4b58bfa815417f5bcc485cb26d121d68
Gast
#542694
Hi Die Tris-Registers sind die Tristate-Register. Diese legen fest ob der Pin als Eingang oder als Ausgang konfiguriert ist. Die LAT-Register sind die Latch-Regsiter der Ports. Wenn du auf den Port hinausschreiben willst, dann solltest du in die LAT-Register schreiben und nicht in die PORT-Registern. Dadurch umgehst du die read-modify-write-Problematik. Die Port-Register geben den aktuellen zustand der Pins wieder. Also beim Lesen, diese Register verwenden. Hier mal ein Link zu einer sehr brauchbaren Wiki: http://www.fernando-heitor.de/component/option,com_openwiki/Itemid,123/ Und hier gleich die Infos zu den IO-Ports: http://www.fernando-heitor.de/component/option,com_openwiki/Itemid,123/id,mikrocontroller:einfuehrung/#io_ports Ansonst gibts auch noch www.sprut.de . mfg Schoasch
Gast
#543225
Bin am gleichen Problem. Kann jemand mal ein Stück code schreiben wie man einen Port ganz gezielt ansteuern kann.
Gast
#543240
Das liest sich, als ob da ein massives Dezifit (absichtlich falsch geschrieben im Sinne von 1/10 Fitness ;-)) an Verständnis für die Wirkungsweise von I/O Ports vorhanden ist. Die Erklärung und die links von Schoasch lassen doch nichts zu wünschen übrig. Ohne etwas Eigeninitiative ist da wenig zu machen. Versuchs mal so:
Du weisst aber, dass bei Loslassen des Tasters die Ausgänge nicht 0 werden? Severino
Gast
#543347
Hi Das TRISA register hast du vergessen zu setzten. :-)
mfg Schoasch PS.: Beachte beim Brennen die Fuses, ansonst wird dir der PIC nicht anlaufen. > Das TRISA register hast du vergessen zu setzten. :-) An dem lag's wohl nicht, da die TRIS-Register beim Power-On ohnehin auf 1, also Eingang gesetzt sind. Ich habe verstanden, dass der PIC die Ausgänge auf 1 setzt, aber sofort und nicht erst auf Tastendruck. Folglich wird der Prozessor wohl laufen. Wie ist der Tastereingang beschaltet? Severino
Gast
#544165
Taster sind auf Masse
Gast
#544191
hier selbes Problem bei mir. Wie greif ich auf RA4 zu ohne 0bxxx oder 0xxx
Ist aus der picxxxx.h Ziel soll es sein direkt den Name zuverwenden, dass ich sagen kann if(PORTA & RA4) gast wrote: > hier selbes Problem bei mir. Wie greif ich auf RA4 zu ohne 0bxxx oder > 0xxx > >
> > Ist aus der picxxxx.h > > Ziel soll es sein direkt den Name zuverwenden, dass ich sagen kann > > if(PORTA & RA4) Was meinst Du mit (PORTA & RA4)? Wie spricht man in C die Elemente eines structs an? Structname.Elementname Also: if (PORTAbits.RA4) Siehe auch besagte picxxxx.h-Datei. Wenn's noch kürzer gehen soll, musst Du sowas machen: #define MyRA4 PORTAbits.RA4 Bringt aber nicht wirklich viel, da Du dann u.U. auch LATAbits.RA4 und TRISAbits.RA4 definieren müsstest. Severino
Gast
#544438
thx
Gast
#544450
Das heisst bei dem PortB sind die Pullups schon eingeschalten und ich muss das nicht mehr machen!
gast wrote: > Das heisst bei dem PortB sind die Pullups schon eingeschalten und ich > muss das nicht mehr machen! > >
Warum sollten die eingeschaltet sein? Warum willst Du die überhaupt einschalten? Du konfigurierst das Port ja als Output! Severino
Gast
#544464
Es geht mir darum ein Taster hängt am Port RB0 und dann auf Masse. Mit diesem Taster möchte ich eine LED einschalte. Jetzt habe ich das so verstanden das ich erst die Pull ups einschalten muss das ich mir ein High signal machen kann bei Tastendruck. Taster auf RB0 LED an RD7
mit TRISB = 0; schaltest Du das ganze Port B auf Ausgang. Da wirst Du keinen Taster einlesen können. Stattdessen musst Du PortD (mindestens RD7) auf Ausgang schalten. Du schreibst, der Taster hängt an RB0, im Programm liest Du aber RA4!!! Wenn Du Pull-Ups einschaltest, bekommst Du ein High-Signal wenn der Taster NICHT gedrückt ist, und wenn er gedrückt ist, ein Low-Signal, da der Taster ja nach Masse schliesst. Willst Du nicht mal mit einer Tasse Kaffe oder Tee das Ganze überdenken und den Programmcode bereinigen...? Severino
Gast
#544614
Hi Hast du schon mal Spruts seite überflogen? Welche erfahrungen und Kenntnisse hast du in Sachen Elektronik? Lies dir mal ein paar Grundlagen durch: http://www.sprut.de/electronic/pic/grund/ioports.htm#rx Hier wirst du auch gleich mal lesen, dass du zb ´darauf achten musst, ob der Pin nicht auch noch andere funktionen hat und diese vl auch Standardmässig eingeschalten sind. Hinweis: Wenn ein AD-Wandler mit dabei ist, sind diese Pins meisst als Analoge eingänge konfiguriert. Das heisst du musst sie als Digitale IOs konfigurieren, bevor du sie nutzen kannst. Da ist es jetzt aber egal ob du hinaus schreiben willst, oder vom Port einlesen willst.. es ist immer die AD-Wandler Konfiguration dominierend. mfg schoasch PS.: Den rat von Severino solltest du auch beherzigen.... trink eine Tasse und denk dir dabei alles durch :D Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|