Forum: Mikrocontroller und Digitale Elektronik Port-ansprechen


von Chris (Gast)


Lesenswert?

Hallo Leute

Ich will an meinem Pic(16f913) mit dem "eingang" (RA0) den "ausgang" 
(RB2) ansteuern. Aber er funktioniert nicht ?

von Wolfgang (Gast)


Lesenswert?

Chris schrieb:
> Aber er funktioniert nicht ?

Da weißt du mehr als ich.
Sorry - Glaskugel ist zur Rekalibrierung.

von Justus S. (jussa)


Lesenswert?

was für eine tolle, nachvollziehbare und aussagefähige 
Fehler-/Problembeschreibung...

von Jürgen (Gast)


Lesenswert?

Justus S. schrieb:
> was für eine tolle, nachvollziehbare und aussagefähige
> Fehler-/Problembeschreibung...

Ich wollte euch nicht voll stopfen! x)

Nein ich hoffe du kannst mir helfen.

ich habe eine Fernbedienung, mit dem ich den fuss RA0 auf HIGH (5V) 
schalten kann. Dann habe ich am fuss RB2 ein LED der einfach leuchten 
soll fals der fuss RA0 auf HIGH geht.!

es nimmt mich wunder wie ich das initialisieren muess.

da die PORTA = .....
       TRISA = .....
       ANSEL = .....

und was halt auch noch so dazu kommt ?

von Max H. (hartl192)


Lesenswert?

Chris schrieb:
> Aber er funktioniert nicht ?
Zeig mal deinen Code und beschreibe was nicht funktioniert.

von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Max H. schrieb:
> Chris schrieb:
>> Aber er funktioniert nicht ?
> Zeig mal deinen Code und beschreibe was nicht funktioniert.

von Chris (Gast)


Lesenswert?

Chris schrieb:
>

Fals ich etwasschalte (auf der Fernbedienung) habe ich am PIC die 5V. 
Aber ich kann die LED nicht ansteuertn ?? ich verstehe nicht wiso ?

von Stefan (Gast)


Lesenswert?

Ports auf digital geschaltet ?

von Chris (Gast)


Lesenswert?

Stefan schrieb:
> Ports auf digital geschaltet ?

Ou nein.!

Wie mach ich das aber ?

Kannst du mir bitte einen bsp. machen.

Habe einen Blackout !! schon die ganze zeittt am TESTEn eh!

von Lattice User (Gast)


Lesenswert?

Der Ausgang wird auf 1 gesetzt, sobald der Eingang das erste Mal 1 wird. 
Aber nie zurück auf 0.

von Chris (Gast)


Lesenswert?

Lattice User schrieb:
> Der Ausgang wird auf 1 gesetzt, sobald der Eingang das erste Mal 1
> wird.
> Aber nie zurück auf 0.

Das wäre schön ! ich kann schalten und tun was ich will die LED leuchtet 
nicht. (aber sie funktioniert wenn ich die LED "alleine" anspreche 
leuchtet sie) aber ich kann ihr keine zuweisung -/ anweisungen geben sie 
schaltet nicht um so. !

von Lattice User (Gast)


Lesenswert?

Chris schrieb:
> Lattice User schrieb:
>> Der Ausgang wird auf 1 gesetzt, sobald der Eingang das erste Mal 1
>> wird.
>> Aber nie zurück auf 0.
>
> Das wäre schön ! ich kann schalten und tun was ich will die LED leuchtet
> nicht. (aber sie funktioniert wenn ich die LED "alleine" anspreche
> leuchtet sie) aber ich kann ihr keine zuweisung -/ anweisungen geben sie
> schaltet nicht um so. !

Wenn du deinen Code nicht als .jpg gepostet hättest, hätte ich die 
fehlerhafte Zeile zitieren können.

von ?!? (Gast)


Lesenswert?

Chris schrieb:
> Das wäre schön !

Wenn der Ausgang immer auf 1 bleibt, dann wäre das schön?
Na ich weiß ja nicht...
Mir an deiner Stelle wäre es lieber, wenn er auch wieder auf 0 geht, 
wenn der Eingang auf 0 geht.

von Chris (Gast)


Lesenswert?

Chris schrieb:
> Max H. schrieb:

hauptsache einen fortschritt.
es klappt nicht. kannst du mir villeicht einen bsp. mache was ich falsch 
schreibe ? ich komme nicht drauf das ist mein Probelm.!

die elektronik stimmt das geht. aber bei der Initialisierung habe ich 
das gefühl stimmt etwas nicht.

von Forist (Gast)


Lesenswert?

Chris schrieb:
> Habe einen Blackout !! schon die ganze zeittt am TESTEn eh!

Dann geh eine halbe Stunde an die frische Luft. Dir ist inzwischen 
bestimmt genauso komisch wie mir, nachdem ich diese JPG-Gematsche 
angeguckt habe. Was ist an den Hinweisen beim Upload so schwer zu 
verstehen? Und steht da irgendetwas von Quellcode bei der Liste der 
Graphikinhalte? Warum wohl?

Chris schrieb:
> 12334.JPG

von Chris (Gast)


Lesenswert?

Lattice User schrieb:
> Chris schrieb:
>> Lattice User schrieb:
>>> Der Ausgang wird auf 1 gesetzt, sobald der Eingang das erste Mal 1
>>> wird.
>>> Aber nie zurück auf 0.
>>
>> Das wäre schön ! ich kann schalten und tun was ich will die LED leuchtet
>> nicht. (aber sie funktioniert wenn ich die LED "alleine" anspreche
>> leuchtet sie) aber ich kann ihr keine zuweisung -/ anweisungen geben sie
>> schaltet nicht um so. !
>
> Wenn du deinen Code nicht als .jpg gepostet hättest, hätte ich die
> fehlerhafte Zeile zitieren können.

PORTAbits.RAO = 0;
TRISAbits.TRISA0=1;

PORTBbits.RB3=0;
TRISBbits.TRISB3=0;

while(1){
if (PORTAbits.RA0 ==1) PORTBbits.RB3 =1;
}

wie spreche ich dies an dass sie digitale inputs sind??

von Max H. (hartl192)


Lesenswert?

Chris schrieb:
> wie spreche ich dies an dass sie digitale inputs sind??
Über's ANSEL Register.

P.S: Für C-Code bitte in Zukunft die Formatierung verwenden
1
[c][/c]

: Bearbeitet durch User
von Toxic (Gast)


Angehängte Dateien:

Lesenswert?

Probiers damit - ich habe mir jetzt nicht die jedes einzelne Bit jedes 
der
Register angeschaut - auch habe ich die Namen der Register vom Assembler 
uebernommen (koennen in C eventuell geringfugig anders lauten....


CMCON0 = 0b11111111;  // alle Pins digital I/O
ANSEL  = 0;           // alle Pins digital I/O
TRISA  = 0b11111111;  // alle Pins digital Inputs

von GroberKlotz (Gast)


Lesenswert?

Chris schrieb:
> Habe einen Blackout !! schon die ganze zeittt am TESTEn eh!

Bei einem Blackout hilft
   1. Ablenkung
   2. Für PIC-Freunde die allererste Adresse:
      [http://www.sprut.de/index.htm]
      Da kannst Du 100%ig noch was lernen!
   3. Informieren: Anfängerfallen bei der Programmentwicklung
      [http://www.sprut.de/electronic/pic/fallen/fallen.html]

mfG GroberKlotz

von Peter D. (peda)


Lesenswert?

1
while(1){
2
  PORTBbits.RB3 = PORTAbits.RA0;
3
}

Die Init mußt Du aber selber machen, dazu mußt Du ins Datenblatt des 
Pic16f913 schauen.

von Chris (Gast)


Lesenswert?

Toxic schrieb:
> Probiers damit - ich habe mir jetzt nicht die jedes einzelne Bit
> jedes
> der
> Register angeschaut - auch habe ich die Namen der Register vom Assembler
> uebernommen (koennen in C eventuell geringfugig anders lauten....
>
> CMCON0 = 0b11111111;  // alle Pins digital I/O
> ANSEL  = 0;           // alle Pins digital I/O
> TRISA  = 0b11111111;  // alle Pins digital Inputs

Das ist gut.!! danke. muss ich Probieren.!

MUss ich dann alle meine ports von A als digital input erstellen! kann 
ich das so erstellen mit ansel ? :)

von F. F. (foldi)


Lesenswert?

Justus S. schrieb:
> was für eine tolle, nachvollziehbare und aussagefähige
> Fehler-/Problembeschreibung...

Die beste seit Jahren.

von Toxic (Gast)


Lesenswert?

Chris schrieb:
> MUss ich dann alle meine ports von A als digital input erstellen! kann
> ich das so erstellen mit ansel ? :)

Laut Datenblatt kann man die entsprechenden Pins (RA0,RA1,RA2,RA3 und 
RA5)
individuell konfigurieren.Beachte:RA4 kann nicht als analoger Eingang 
verwendet werden.
Alle Pins an PortA,die als analoge Eingaenge konfiguriert werden 
koennen,also RA0,RA1,RA2,RA3 und RA5 werden bei einem Reset automatisch 
auf analog gesetzt - deswegen muss man dann anschliessend PortA neu 
konfigurieren,wenn man auch digitale I/Os haben moechte.

Hier ein Beispiel:

CMCON0 = 0bxxxxx111;  // die ersten 3 bits deaktivieren das 
Komparatormodul
                      // welches ja auch Analogfunktionen aufweisst...
                      // Dann lassen sich mit ANSEL RA0,RA1,RA2,RA3 & 
RA5
                      // individuell als analoge oder digitale Eingaenge
                      // konfigurieren

ANSEL  = 0bxxx10001;  // RA0 & RA5 sind analog - RA1,RA2,RA3 sind 
digi-I/O
                      // Beachte,dass RA5 den analogen Kanal AN4 
uebernimmt

TRISA  = 0b10100101;  // RA1,RA3,RA4,RA5,RA6 = digiOutput
                      // RA2,RA7 = digiInput
                      // RA0,RA5 = analogInput

Ich hoffe mir ist kein Fehler unterlaufen....schon ziemlich spaet am 
Abend...

===========================================
Im uebrigen kannst Du Peter D's code uebernehmen
Peter D. schrieb:
> Die Init mußt Du aber selber machen, dazu mußt Du ins Datenblatt des
> Pic16f913 schauen.

von R.Meister (Gast)


Lesenswert?

Danke füt deine hilfe Toxic !!!!!!!
Wirklich das ist das was ich gesucht habe..!!

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.