74HC165 auslesen

Gast #546916
Lesenswert?
• ▲
▼
Hallo,

ich bin erst vor kurzem auf die Idee gekommen einen PIC zu programmieren 
(18F452). Womit ich noch Probleme habe ist das Setzen von Pins auf High 
oder Low. Der PIC besitzt glaub ich 5 Ports (A-E) Ich würde jetzt gerne 
Software SPI implementieren und eine kaskadierte Reihe von 74HC165 
Registern auslesen. Laut Datenblatt muss der Pin 1 des Registers zuerst 
auf High und anschließend auf Low gesetzt werden, damit ich die Eingänge 
an Pin 9 tacktweise auslesen kann.

Ich hab gute Kenntnisse in C und würde auch gerne den PIC in C 
programmieren. Die Frage ist nun...kann man einen einzelnen Pin 
ansteuern (pseudocode: pind2 = 1) oder muss ich immer einen Hex Wert an 
PortD "ausgeben" z.B. PORTD = 0x08 damit der einzelne Pin High oder Low 
geschaltet wird.
TRISD ist dafür dafür da die Pins als Ausgang bzw. Eingang zu 
konfigurieren, oder hab ich da etwas falsch verstanden?

Wenn mir jemand erklären kann wie ich nun ein Schieberegister auslesen 
kann wäre ich schon einen Schritt weiter. Ich will nicht, dass mir einer 
das Denken abnimmt, aber ein paar Tipps würden die Sache schon einfacher 
machen.

Software SPI habe ich Application Maestro konfiguriert, da ich SPI gerne 
über Port D laufen lassen möchte. Die Konfiguration ist wie folgt:

#define SW_CS_PIN PORTDbits.RD2      // Chip Select
#define TRIS_SW_CS_PIN TRISBbits.TRISD2
#define SW_DIN_PIN PORTDbits.RD1     // Data in
#define TRIS_SW_DIN_PIN TRISDbits.TRISD1
#define SW_DOUT_PIN PORTDbits.RD0    // Data out
#define TRIS_SW_DOUT_PIN TRISDbits.TRISD0
#define SW_SCK_PIN PORTDbits.RD3     // Clock
#define TRIS_SW_SCK_PIN TRISDbits.TRISD3



Danke schonmal
Christoph
#547031
Lesenswert?
• ▲
▼
Christoph wrote:
> Die Seite hab ich schon durch. Die Frage, die jetzt bleibt ist wie kann
> ich unter C den Pegel einzelner Pins steuern?
1
Pin_dir = 1; // Pin = Ausgang
2
Pin = 1; // Pin = 5V
3
...
4
Pin = 0; // Pin = 0V
5
...
6
Pin_dir = 0; // Pin = Eingang
7
if( Pin ){ // wenn Pin = 5V
8
...
9
}


Peter

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.