Difference between revisions of "U23 2008-2/Gruppe3"
(→Abend 2:) |
(→Abend 2:) |
||
Line 12: | Line 12: | ||
'''Binäre Operatoren (einzelne Bits modifizieren):'''<br /> | '''Binäre Operatoren (einzelne Bits modifizieren):'''<br /> | ||
Memo was <code>DDRC &= ~_BV(PC3)</code> bedeutet:<br /> | Memo was <code>DDRC &= ~_BV(PC3)</code> bedeutet:<br /> | ||
− | Legende: ~ ist Negation, & logisches UND, | logisches ODER | + | Legende: ~ ist Negation, & logisches UND, | logisches ODER |
− | + | ||
− | Beispiel: | + | '''Beispiel:''' |
<source lang=c> | <source lang=c> | ||
PC3 00100000 | PC3 00100000 | ||
~PC3 11011111 | ~PC3 11011111 | ||
− | + | Alter Beispielwert: 10100110 | |
− | Ergebnis: 10000110 | + | Ergebnis Alt & ~PC3: 10000110 |
</source> | </source> | ||
Revision as of 21:37, 27 October 2008
Teilnehmer:
- David (der von weit her)
- Vincent (das schwarze schaf der apple familie)
- Christian (asus notebook)
- André (der ohne beschreibung)
Abend 1:
Abend 2:
Binäre Operatoren (einzelne Bits modifizieren):
Memo was DDRC &= ~_BV(PC3)
bedeutet:
Legende: ~ ist Negation, & logisches UND, | logisches ODER
Beispiel: <source lang=c>
PC3 00100000
~PC3 11011111 Alter Beispielwert: 10100110 Ergebnis Alt & ~PC3: 10000110 </source>
IR LED-Blinker
<source lang=c>
- include <avr/io.h>
int main(void) { /* unset PC3 -> IR_IN ist Input */
DDRC &= ~_BV(PC3);
/* set PC4 -> Output für LED1 */ DDRC |= _BV(PC4);
while (1) { /* Wenn PIN kein Eingang verzeichnet :wird */ if (PINC & _BV(PC3)) { /* unset PC4 -> LED1 aus */ PORTC &= ~_BV(PC4); } /* Wenn PIN EIngang verzeichnet */ else { PORTC |= _BV(PC4); } } } </source>