Forum: Mikrocontroller und Digitale Elektronik Kurz Frage zu µC-Pinprogrammierung


von Full W. (realjey)


Lesenswert?

Hallo Forumsmember!

kurze Fragen...es handelt sich um einen PIC18FXX2.

1)
clear_bit(portc,0);
set_bit(portc,0);

Hier wird doch Port c angesprochen, aber welcher Pin, RC0? Bzw. was 
macht genau clear_bit und set_bit?

2) Was macht im Gegenzug

portc.0=1;

Hier wird wird wohl auch Port c angesprochen, aber welcher Pin, RC0? 
Bzw. was macht portc.0=1 genau?

THXalot
jey

von Karl H. (kbuchegg)


Lesenswert?

Jey Soon schrieb:

> Hier wird doch Port c angesprochen, aber welcher Pin, RC0? Bzw. was
> macht genau clear_bit und set_bit?

> Hier wird wird wohl auch Port c angesprochen, aber welcher Pin, RC0?
> Bzw. was macht portc.0=1 genau?


Ich denke mal:
Wenn du jetzt einfach mal ratest, wirst du nicht allzufalsch liegen.

Eigentlich ist es für einen Homo Sapiens IMHO gar nicht so einfach, beim 
Raten was wohl

  clear_bit(portc,0);

machen wird, mit einer falsch geratenen Lösung hoch zu kommen.

von Bohrer (Gast)


Lesenswert?

Das stimmt so nicht (portc.0=1;)

0 ist nie 1 und daher stürzt das Programm ab! Wo hast du das her?

von Full W. (realjey)


Lesenswert?

ok, also die Frage zielte eig. auf folgendes ab:

in dem mir vorliegen code wird einmal

clear_bit(portc,0);

verwendet. Ich dachte (bisher) das hier einfach RC0 auf 0 gesetzt wird. 
Ich dachte also das das ",0" in (portc,0) für den angesprochenen Pin 
steht. Bzw. bei

set_bit(portc,0);

RC0 auf 1 gesetzt wird. Ist das falsch oder richtig?!

Also was macht den nun genau die Funktion clear_bit() und set_bit();

Dann habe ich mich verschrieben. Weiter unten im Code heisst es dann:

porta.4=1;
portc.1=1;

Jetzt ist für mich einfach die Frage: ".4" ist damit der Pin von Porta 
gemeint oder wie?! Wenn meine Annahme oben nämlich richtig ist, würde 
ich eher schreiben:

(porta,4)=1;

sry ich steh da einfach gerade aufm Schlauch. Muss nen Code verstehen, 
den ich a) nicht selber geschrieben habe und b) hab ich bisher noch 
nichts mit PIC's bzw. µC zu tun gehabt ;)

Also thx for RE

von Karl H. (kbuchegg)


Lesenswert?

Jey Soon schrieb:

> ich eher schreiben:
>
> (porta,4)=1;
>
> sry ich steh da einfach gerade aufm Schlauch. Muss nen Code verstehen,
> den ich a) nicht selber geschrieben habe und b) hab ich bisher noch
> nichts mit PIC's bzw. µC zu tun gehabt ;)

Und du hast
c) auch noch nichts mit C zu tun gehabt.

Konzeptionell ist

set_bit( portc, 0 );

ein Funktionsaufruf.
Der Funktion set_bit
werden die Argumente 'portc' und '0' übergeben.

Nicht die Kombination "portc,0" bezeichnet das 0-te Bit am Port C, 
sondern das sind 2 Argumente an eine Funktion oder ein Makro, die das 
Bit mit der Bitnummer im 2-ten Argument in dem im ersten angegebenen 
Argument (also im portc) löscht.

von Full W. (realjey)


Lesenswert?

ok...thx

weiter:

porta.4=1;

setzt den 4.Pin RC4 von Port_a auf high, richtig oder falsch?

von Frank B. (f-baer)


Lesenswert?

Schonmal was von Debuggern gehört? Ein Datenblatt zu lesen hat bisher 
auch noch keinem geschadet.

von Full W. (realjey)


Lesenswert?

ne Antwort auf ne normale Frage zu geben, kann auch nicht schaden ;)

jetzt zu erklären warum ich hier Frage und warum mir das DB und der 
Debugger gerade nicht weiter helfen, verschwendet Zeit die ich nicht 
habe...

Ein Ja oder Nein würde mir schon genügen. Danke!

von Karl H. (kbuchegg)


Lesenswert?

Jey Soon schrieb:

> Ein Ja oder Nein würde mir schon genügen. Danke!

Na was wird das schon machen?
Solche Sachen hat man deutlich schneller ausprobiert (mit einem eigenen 
Testprogram) als sie in einem Forum nachgefragt.

Das ist ungefähr so, wie wenn du ein Autogetriebe bauen willst und dann 
in einem Forum nachfrägst, ob man Schrauben im Uhrzeiger oder gegen den 
Uhrzeiger festschraubt.
(Nur um dir mal den Schwierigkeitsgrad deiner Fragen vor Augen zu 
führen. Viele hier fragen sich wahrscheinlich längst, wie du eigentlich 
jemals µC programmieren willst, wenn es bei diesen Basisdingen schon 
happert)

Und nein. Letzteres ist nicht Standard-C sondern, sofern du das wirklich 
so schreiben kannst, eine Erweiterung deines Compilers.

von Achim M. (minifloat)


Lesenswert?

Jey Soon schrieb:
> porta.4=1;
>
> setzt den 4.Pin RC4 von Port_a auf high, richtig oder falsch?

RA4, nicht RC4 aber du sagst ja selbst es ist Port A.

mf

von Full W. (realjey)


Lesenswert?

THX

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.