Forum: Mikrocontroller und Digitale Elektronik programm dokumentieren


von Fil J. (filip2010)


Angehängte Dateien:

Lesenswert?

Hallo

Ich muss das Programm Tastenentprellen dokumentieren.
Ich programmiere im AVR Studio

Da ich leider sehr wenig oder sogar keine Ahnung was ich schreiben soll 
könnt ihr mir versuchen zu schreiben was  das tut. Ich brauche die 
Kommentare weil ich sonst durchfalle da ich eh schon schlecht genug bin.
Es kennt sich von meinen Klassenkollegen fast leider niemand aus.

Ich hoffe ihr könnt mir helfen Es ist mir sehr wichtig.


lg

#include <avr/io.h>
#include <inttypes.h>
#define F_CPU 12000000
#include <util/delay.h>


uint8_t debounce (volatile uint8_t *port, uint8_t pin) // was ist das 
alles
{


   if (! (*port & (1 << pin)) )    // was macht das
   {
    _delay_ms(50);      // soll 50ms warten
  _delay_ms(50);        // soll 50ms warten

  if (*port & (1 << pin))    // was macht das
  {
    _delay_ms(50);    // soll 50ms warten
    _delay_ms(50);    // soll 50ms warten
    return 1;         // was macht das

   }
}

return 0;     //frage steht bei return 1
}

int main(void)
{

 DDRD &=~(1 << PD0);      // was tut das
 PORTD |= (1 << PD0);     // was tut das
 DDRC=0xFF;               // aktiviert alle Ports als Ausgang

 while(1)                 // endlos Schleife
 {
   if(debounce(&PIND,PD0))    // das verstehe ich auch nicht
   PORTC =~ PORTC;            // invertiert den Wert auf PORTC
 }

 }

von Sven H. (dsb_sven)


Lesenswert?

Machen wir dann deine Hausaufgaben?

Wie dem auch sei, Szenario ist also, du hast das Programm bekommen und 
sollst nun das Programm verstehen und, um das zu zeigen, das Programm 
dokumentieren.

Was mich etwas wundert ist, dass hier noch niemand geschrieben hat, dass 
du dir bitte ein C-Buch besorgen sollst.

Ich geb dir mal nen Link dazu:

http://openbook.galileocomputing.de/c_von_a_bis_z/

Wenn du die einzelnen Schlüsselwörter aus deinem Programm (z.B. return, 
volatile etc) da suchst, bekommst du schon ne gute Hilfe.

Dann such mal nach logischen Operatoren in selbigem Buch, dann wirst du 
verstehen was "~" "&=" etc bedeutet.

Die groß geschriebenen Sachen wie DDRC scheinen mir in irgendeiner 
Headerdatei definiert zu sein und in deinem Fall für Portzugriffe 
verwendet zu werden.

Ich hoffe ich konnte dir damit zumindest etwas helfen, deine 
Hausaufgaben zu erledigen.

von Klaus W. (mfgkw)


Lesenswert?

Sven H. schrieb:
> Wie dem auch sei, Szenario ist also, du hast das Programm bekommen und
> sollst nun das Programm verstehen und, um das zu zeigen, das Programm
> dokumentieren.

oder: er sollte es programmieren und dokumentieren, hat sich das
Programm schon geschnorrt und muß jetzt noch den Rest machen lassen.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Fil Janev schrieb:
> Hallo
>
> Ich muss das Programm Tastenentprellen dokumentieren.

Hausaufgabe. Siehe Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"

> Ich programmiere im AVR Studio

Du meinst, du arbeitest mit AVR Studio. Würdest du damit selbst 
Programme schreiben, wüsstest du vermutlich was dein Programm an welcher 
Stelle warum tut.


> Ich brauche die Kommentare weil ich sonst durchfalle da ich eh schon
> schlecht genug bin.

Das ist der Sinn des Durchfallens. Du bekommst die Möglichkeit, das 
ganze Jahr zu wiederholen und deine Wissenslücken zu stopfen.

> Es kennt sich von meinen Klassenkollegen fast leider niemand aus.

Oder sie sehen nicht ein, warum sie deine Faulheit(?) unterstützen 
sollen.

> Ich hoffe ihr könnt mir helfen Es ist mir sehr wichtig.

Und wie lautet nun deine Erklärung für deine Wissens-/Verständnislücken?

von Guru (Gast)


Lesenswert?

Es scheint mir, dass Du zunächst nicht verstanden hast, was man darunter 
versteht ein Programm zu kommentieren. (Ich weiss allerdings nicht was 
Dein Lehrer dafür hält).

Wie Du Deinen eigenen Kommentaren ansehen kannst, z.B. bei den delays, 
ist Dein Kommentar im wesentlichen nur eine Übersetzung ins Deutsche. 
Allein aufgrund des Funktionsnamens auf Englisch weiss ohnehin jeder das 
eine Verzögerung stattfindet. Dein "Kommentar" fügt also nichts neues 
hinzu.
Sinngemäß gilt das auch für Dein restlichen Kommentare. Wer die Sprache 
C kennt braucht Deinen Kommentar nicht.

Bei einem Kommentar setzt man in der Regel voraus, das die 
Programmfunktion, was und wie es das im groben tut, beschrieben ist. Ein 
Kommentar fügt nur an gewissen Stellen die Information hinzu, warum an 
einer gewissen Stelle ein bestimmter Befehl/Funktion bzw. eine Folge 
davon verwendet wird.

Was "debounce" heisst, schlägst Du bei google bzw. Leo nach. Hier siehst 
Du auch gleich, welchen Vorteil "sprechende" Funktionsnamen haben. Sie 
machen einen Kommentar überflüssig.

Was die Anweisungen betrifft, zu denen Du geschrieben hast, Du verstehst 
nicht, was sie tun, solltest Du dies aus dem Unterricht, bzw. aus Deinen 
Notizen dazu kennen.

Du schreibst selbst, das Du nicht so gut dastehst. Das ist die Folge 
davon, das Du nicht aufmerksam warst und die Themen nicht für Dich 
durchdacht hast. Wir sind hier nicht dafür da, Deine Hausaufgaben zu 
machen oder Deine Untätigkeit auszugleichen. Schlage die Befehle, die 
Syntax usw. in Deinem Buch über C nach.

Viel Erfolg.

von Klaus W. (mfgkw)


Lesenswert?

Um auch etwas konstruktives beizutragen:
In dem genannten Buch über C steht eher nur die Sprache
beschrieben; in dem programm tauchen aber auch noch Dinge
auf, die für den Controller spezifisch sind.
Die sind besser zu verstehen, wenn man etwas wie das hiesige
Tutorial durcharbeitet und kapiert:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

von Onkel Willi (Gast)


Lesenswert?

Zur Dokumentation könnte man in der Einleitung schreiben, wozu das ganze 
gut ist. Weiter gehört eine Beschreibung eines typischen Eingangssignals 
und des gewünschten Ausgangssignales dazu. Dann kann man verschiedene 
Algorithmen aufzählen, eventuell kurz beschreiben und den eigenen 
genauer erklären. Weiter geht es dann mit der Beschreibung der Umsetzung 
im eigenen Programm (Initialisierung, Programmablauf) und der 
Quellenangabe, woher das stammt ;-)

Da kannst du schon mal einiges schreiben...

von NopNop (Gast)


Lesenswert?

Selbst wenn Du es jetz noch nicht kannst.
Lese Dir das Tutorial durch und verstehe es.
Dann kannst Du Dir heute noch selber Deine Fragen beantworten.

von Karl H. (kbuchegg)


Lesenswert?

Fil Janev schrieb:

> Da ich leider sehr wenig oder sogar keine Ahnung was ich schreiben soll
> könnt ihr mir versuchen zu schreiben was  das tut. Ich brauche die
> Kommentare weil ich sonst durchfalle da ich eh schon schlecht genug bin.
> Es kennt sich von meinen Klassenkollegen fast leider niemand aus.

Das glaub ich ehrlich gesagt nicht.
Das Programm ist so einfach, das ist schon fast grundlegend.


Wie man kommentiert wurde ja schon gesagt
(kommentiere nicht das WIE sondern das WARUM. Das WIE steht im Code)

Und um etwas 'sinnvolles' beizutragen, mach ich den Thread dicht. Das 
Forum ist sich sowieso (hoffentlich) darin einig, dass das wenig Sinn 
macht. Wer dieses grundlegende Programm nicht versteht, sollte meiner 
Meinung nach in diesem Fach keinen positiven Abschluss bekommen. Ein 
Abschluss soll belegen, dass man zumindest die grundlegensten Dinge 
verstanden und gelernt hat. Davon ist nichts erkennbar, wenn dieses Pgm 
Probleme in der beschriebenen Form macht. Also wäre ein Abschluss auch 
nicht gerechtfertigt. Zumal die Aufgabe noch nicht mal besonders schwer 
ist. Da sind hauptsächlich Elemente drinnen, die gehören in die erste 
oder zweite Stunde µC Programmierung, gleich nach der Grundausbildung in 
C-Programmierung. Wer regelmässig seine Hausaufgaben gemacht hat, sollte 
damit keinerlei Schwierigkeiten haben.


Nachtrag: Das fängt schon mit der äusseren Form das 'Programms' an. 
Schon die ist unter jeder Kritik.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.