PIC18F2550/PIC16F877 Port-Adressen in C?

Gast #4556158
Lesenswert?

Hallo allerseits,

ich ich von meinem Ausbilder eine Unmenge an PIC18F2550 und PIC16F877 
bekommen und würde die gerne in C programmieren. Jetzt hab ich die 
Frage, wo ich die Adressen für die Ports herbekomme. Ich hab schon 
gegoogelt und seitenweise Datenblätter durchforstet, aber nix 
brauchbares gefunden. Kann ich in meinem C-Programm einfach schreiben 
RD7 oder RA3, oder muss ich den Hex-Wert vom Port angeben, welche ich 
nicht finden konnte?

danke schonmal für die Hilfe

lg

Synthron

PS: als Programmierumgebung benutz ich aus Gewohnheit Notepad++ und 
Ride6
#4556335
Lesenswert?

Synthron schrieb:
> Und die anderen wären zum Beispiel LATAbits.LATA4?
Mehr oder weniger alle Bits können so adressiert werden.
Wenn der XC8 installiert ist, dann mal im Verzeichnis 
../xc8/v3.xy/include/ den entsprechenden Header öffnen. Der wird (über 
tausend Ecken) über #include <xc.h> eingebunden und da sind dann alle 
Register und Bits deklariert.


stefan schrieb:
> LatA.4 sollte auch gehen.
Hab ich noch nie gesehen. Welcher Compiler?
Gast #4560257
Lesenswert?

Danke schonmal alle für die Hilfe,

ich hab neulich bei nem Kumpel gesehen, dass er seine Ports als ganzen 
Port ansteuert mit
sbit at P2
kann man so auch ansteuern und wenn ja, ist das Compilerabhängig?
Gast #4584065
Lesenswert?

Moin moin,
ich hab jetzt mal angefangen ein Testprogramm für den PIC16F876 zu 
schreiben und die Ausgabe an einem Pin funktioniert einwandfrei. 
Allerdings hab ich jetzt schon Probleme mit dem Lesen eines Ports. Weder 
über LATABits.RA2 noch über RA2 direkt funktionierts. folgend mal der 
Quellcode auf Pastebin. Da relativer Anfänger im Programmieren bin, nehm 
ich auch gerne konstruktive Kritik entgegen ;)

http://pastebin.com/qZWUjEyx
Gast #4584135
Lesenswert?

Ja wie du den Wet schreibst ist dir überlassen.
Ob Binär, Hexadezimal oder Dezimal.
Hauptsache du weist welche Register du gesetzt hast. Nach meiner Methode
siehst du direkt welches Register gesetzt wurde.
Aber kann man machen wie man will.
Gast #4584165
Lesenswert?

alles klar, vielen Dank!
ich hab jetzt mal versucht, das Datenblatt zu verstehen und hab 
rausgefunden, dass über ADCON1 = 0x06 alle Analogpins digital geschalten 
werden. jetzt funktionierts auch wie geplant.
Gast #4584174
Lesenswert?

Hallo chregu,

auch wenns privat für mich relativ viele sind (Unmenge war etwas 
übertrieben, aber es sind dennoch reichlich. Momentan noch unbenutzt 34 
877er und 45 2550er), allerdings ging diese Abgabe mit der Bedingung 
mit, dass ich sie nicht verkaufen darf, da diese noch offiziell über 
meine Firma laufen. Außerdem hab ich noch einige größere Projekte mit 
den PICs vor, weshalb ich noch nicht weiß, wie viele davon am Ende übrig 
bleiben. Unter anderem geplant sind noch eine Gewächhaussteuerung, weil 
mein AVR bei den Umgebungen versagt, da sind PICs etwas stabiler was 
Feuchtigkeit anbelangt (hab ich so schon getestet), sowie Binäruhren, 
Quadkopter, diverse kleine Automatisierungen und eine Lichtorgel für 
mein 3D-Drucker etc pepe.
nach meiner Kalkulation bleiben nach all dem noch knapp 8-10 je Sorte 
über, aber wer weiß was mir noch spontan alles einfällt ;)

Also zusammengefasst: aus moralischen und privaten Gründen muss ich 
leider nein sagen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren