mikrocontroller.net

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


Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bohrer (Gast)
Datum:

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

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

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok...thx

weiter:

porta.4=1;

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

Autor: Frank Bär (f-baer)
Datum:

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

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
THX

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.