Micha Sch schrieb:
Du solltest mal ernsthaft mit deinem Lehrer sprechen. Vielleicht hast du
auch einen Mitschüler, der ein wenig schneller ist
> while(1)
> {
> if(PINB & (1<<PB0)==0) //PINB wird abgefragt, wenn bei PB0 eine 0
> anliegt, wird die if verzweigung gestartet
> {
> PORTC = PORTC | (1<<PC3); // PORTC wird ODER verknüpft mit PC3
>
> }
Hier steht im wesentlichen
'Wenn der Taster gedrückt ist ... dann schalte die LED ein'
(kann auch sein, dass das die LED ausschaltet, je nachdem wie euer
Entiwkclungsboard aufgebaut ist.)
Deine genaue Aufgabe verlangt von die eine Modifikation
'Wenn der Taster gedrückt ist ... dann schalte die LED ein ...
andernfalls schalte die LED aus'
Das sollte sich doch machen lassen.
Übrigens: dein Kommentare ... die solltest du so wie du sie geschrieben
hast weglassen. Denn die sagen nichts aus. In deinen Kommentaren hast du
nur in Deutsch hingeschrieben, was sowieso schon im Programmtext steht.
Das hilft niemandem. (Mal abgesehen davon, dass ein paar davon sogar
falsch sind, weil du den C Code eben nicht richtig in Deutsch formuliert
hast. Wenn schon dann solltest du so kommentieren
1 | ...
|
2 | while(1)
|
3 | {
|
4 | // Wenn die Taste gedrückt ist (Pin PB0 liefert dann ein 0 Bit) ...
|
5 | if(PINB & (1<<PB0)==0)
|
6 | {
|
7 | // .... dann schalte die LED ein, in dem das Bit PC3
|
8 | // auf 1 gesetzt wird
|
9 | PORTC = PORTC | (1<<PC3);
|
10 | }
|
11 |
|
12 | else
|
13 | // andernfalls (dann liefert der PIN PB0 ein 1 Bit und die Taste
|
14 | // ist daher nicht gedrückt) ....
|
15 | {
|
16 | // .... die LED abschalten, in dem das Bit PC3 auf
|
17 | // auf 0 gesetzt wird
|
18 |
|
19 | xxxxxx
|
20 | }
|
21 | }
|
22 | }
|
Bei xxxxx setzt du jetzt die Bitoperation ein, die genau das macht, was
im Kommentar darüber gefordert wird.
Bitmanipulation
Verlgeich mal deine Kommentare mit meinen. Deine Kommentare erzählen
nicht WARUM etwas gemacht wird. Du beschreibst hier
1 | PORTC = PORTC | (1<<PC3); // PORTC wird ODER verknüpft mit PC3
|
das PORTC ODER verknüpft wird. Und zwar mit PC3. Aber warum machst du
das? Was ist der Zweck der Übung? Das da eine Oder Verknüpfung im SPiel
ist, das kann ich auch im COde sehen. Genau das ist die Bedeutung des
'|'. Der senkrechte Strich repräsentiert die Oder Verknüpfung in C. Das
brauchst du nicht im Kommentar beschreiben. Das kann jeder sehen, der
auch nur die banalsten Grundlagen der C Programmierung auf einem µC
hinter sich hat. Was aber viel mehr interessiert: WARUM wird diese
Operation gemacht? Was wird damit bezweckt? Was passiert da mit dem
Ausgangspin und was bedeutet das zb für eine LED (oder für einen Motor
oder ....). Das sind die Dinge, die du kommentieren sollst.
Grundregel: Im Kommentar steht das WARUM, im Code steht das WIE