Hallo, ich versuche seit längerer Zeit den Schieberegisterbaustein 74hc165 mit einen Atmega8 der mit 12Mhz betrieben wird auszulesen, dabei treten aber folgende Probleme auf: 1. Clock und Load sprechen nur an wenn ein Pull-Down Widerstand angelödet ist obwohl dies in den im Internet zu findenten Schaltplänen nicht aufgeführt ist, auch am Oszilloskop ist ohne Pull-Down ein sauberes Clock bzw. Load Signal zu erkennen. 2. Die Schaltung funktioniert nur mit dem unten auskommentierten Delays im ms Bereich. 3. Wenn mehrere Eingänge der parallelen Eingange hintereinander auf High sind stimmen die seriel ausgegebenen Daten nicht mit den parallelen Eingang überein. int getRegister() {int register = 0; PORTB |= (1<<PB0); // Clock auf 1 setzen; //_delay_ms(20); PORTB &= ~ (1<<PB1); // PINB 1 auf 0 // Load ausführen //_delay_ms(20); PORTB |= (1<<PB1); // PINB 1 auf 1 // Datenleitungen auf Eingang, Pullups aus DDRB &= ~ (1<<PB2); // PIN 2 Eingang PORTB &= ~ (1<<PB2); // PIN 2 Pullup aus // 8bit abholen for (int i=0 ; i<8; ++i) { register <<= 1; if (PINB & (1<<PB2)) adress |= 0x01; PORTB &= ~(1<<PB0);// nächstes Bit aus Schieberegister holen // _delay_ms(20); PORTB |= (1<<PB0); //_delay_ms(20); } return register; } Ich habe bereits alle im Forum geposteten Beiträge zum 74hc165 durchgelesen konnte aber leider keine Lösung für mein Problem finden. Gibt es evtl.einen einfacheren bzw. schnelleren Weg um die Eingänge eines Mikrocontrollers zu erweitern? Da ich mich erst seit ca. einem Jahr mit dem Thema Mikrocontroller befasse bitte ich um leicht verständliche Antworten. Danke!
> adress |= 0x01;
1 | register |= 0x01; // <=== ! |
Datenblatt: 74HC165 Beitrag "Re: 74HC165 auslesen C"
Ich sehe nirgendwo, dass die beiden Ausgänge "Clock" und "Load" (PB0 und PB1) auch als Ausgänge konfiguriert sind.
Ok der Fehler war dass PB0 und PB1 nirgends als Ausgänge definiert wurden, die Schaltung funktioniert jetzt! Danke Edi R.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.