Difference between revisions of "U23 2007/Inhalt Abend 2/Schieberegister"
< U23 2007 | Inhalt Abend 2
(→Datenblatt) |
m (Kategorie) |
||
(One intermediate revision by one other user not shown) | |||
Line 30: | Line 30: | ||
DDRA = 0xFF; | DDRA = 0xFF; | ||
PORTA = 0x00; | PORTA = 0x00; | ||
− | PORTA |= (1<<STROBE)|(1<<OE); | + | PORTA |= (1<<STROBE)|(1<<OE); //Setz Ausgänge auf aus! |
+ | |||
PORTA |= (1<<DATA); | PORTA |= (1<<DATA); | ||
PORTA |= (1<<CP); | PORTA |= (1<<CP); | ||
− | PORTA &= ~(1<<CP); | + | PORTA &= ~(1<<CP); //Wert 1 ins Register geschoben |
+ | |||
PORTA &= ~(1<<DATA); | PORTA &= ~(1<<DATA); | ||
PORTA |= (1<<CP); | PORTA |= (1<<CP); | ||
− | PORTA &= ~(1<<CP); | + | PORTA &= ~(1<<CP); //Wert 0 ins Register geschoben |
return 0; | return 0; | ||
} | } | ||
Line 52: | Line 54: | ||
return 0; | return 0; | ||
} | } | ||
+ | |||
+ | [[Category:U23 2007]] |
Latest revision as of 13:37, 1 June 2007
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; }