U23 2007/Inhalt Abend 2/Schieberegister
< U23 2007 | Inhalt Abend 2
Datenblatt
Bits Setzten
Setze Bit an Stelle x
PORTA |= (1<<x);
lösche Bit an Stelle x
PORTA &= ~(1<<x);
[<< schifftet 1 um Anzahl von x Stellen! Achtung Anfang zu zählen bei 0]
Unsere Ansteuerung
A0 - CP A1 - Data A2 - Strobe A3 - OE
Programm
Schieberegister - Ansteuerung schiebe 1 0 rein und Ausgabe aktiv.
#include <avr/io.h> #define CP 0 #define DATA 1 #define STROBE 2 #define OE 3 int main(void) { DDRA = 0xFF; PORTA = 0x00; PORTA |= (1<<STROBE)|(1<<OE); //Setz Ausgänge auf aus! PORTA |= (1<<DATA); PORTA |= (1<<CP); PORTA &= ~(1<<CP); //Wert 1 ins Register geschoben PORTA &= ~(1<<DATA); PORTA |= (1<<CP); PORTA &= ~(1<<CP); //Wert 0 ins Register geschoben return 0; }
Schieberegister - Ansteuerung
setzte 1 rein und Ausgabe an!
int main(void) { DDRA = 0xFF; PORTA = 0x0E; PORTA = 0x0F; PORTA = 0x0E; return 0; }