Difference between revisions of "U23 2007/Inhalt Abend 2/Schieberegister"

From C4 Wiki
Jump to: navigation, search
(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;
}