DerNeue schrieb:
> Max H. schrieb:
>> Versuchs mal so:PORTC = 0b11111110;
>> So wie du's schreibst Interpretiert der Compiler 11111110 als
>> Dezimalzahl.
>>
>> P.S. 3 MB sind ein bisschen viel für das Foto, siehe Bildformate
>
> Ohjau vielen Dank so läufts einwandfrei, Sorry werde in Zukunft drauf
> achten.
Gut.
Die verschiedenen SChreibweisen im C Code für Zahlenkonstanten
auseinander halten zu können ist wichtig.
In Zukunft solltest du aber sowieso von derartigen 'Port-Rundumschlag
Aktionen' Abstand nehmen. Denn die sind meistens sowieso nicht
zielführend. Mit
veränderst du ja tatsächlich ALLE Bits an einem Port. Das mag in manchen
Fällen tatsächlich sinnvoll sein. DIe weit wichtigere Aktion ist
hingegen aber das 'auf 1 setzen, bzw. 'auf 0 setzen' eines einzelnen
PortPins (oder deren mehrerer), und zwar so, dass die restlichen
Portpins nicht verändert werden. Und das wiedrrum ist so zu
implementieren, dass man nicht quer durchs ganze Programm ständig im
Hinterkopf halten muss, welcher Portpin gerade welchen Wert besitzt.
Bit auf 1 setzen
1 | PORTx |= ( 1 << Bitnummer );
|
2 | PORTx |= ( 1 << Bitnummer1 ) | ( 1 << Bitnummer2 ) | .... ;
|
Bit auf 0 setzen
1 | PORTx &= ~( 1 << Bitnummer );
|
2 | PORTx &= ~( ( 1 << Bitnummer1 ) | ( 1 << Bitnummer2 ) | .... );
|
(für PORTx bzw, die Bitnummern sind natürlich die für dich geltenden
Werte einzusetzen. Um also den Pin PC3 am PORTC auf 1 zu setzen
Bitmanipulation