Variablenzuweisung und modulo-Funktion
Kategorie: MikrocontrollerBei dem Einsatz von Mikrocontrollern für Steuerungs- und Regelungsaufgaben geht es letztendlich um das Einlesen von Werten, das Berechnen von Werten und um die anschließende Ausgabe der neu berechneten Werte.
Wichtig ist hierbei, dass man die Werte, die entstehend speichern kann. Heute geht es darum, wie man den Variablen, die wir in der letzten Folge behandelt haben, Werte zuweist.
Variablenzuweisung
Neben der direkten Zuweisung, wie
- i=5;
- i=j;
- i=P1;
bei denen i,j Variablen sind und P1 für einen PORT steht, von dem man Wrte von außen einlesen kann, sind auch Berechnungen, wie
- i=3+2;
- i=i+2;
- i=i*j;
möglich.
Das Rechnen mit Variablen wird in dem heutigen Video gezeigt.
Die modulo-Funktion
Im zweiten Teil geht es um die modulo-Funktion.
Mit Hilfe des modulo-Operators %, kann der Rest einer Division ausgegeben werden. Dieser Operator wird sehr häufig für zyklisches Zählen verwendet. Dies ist oft nötig, wenn eine bestimmte Tätigkeit n-mal durchgeführt werden soll.
Beispiel:
5 % 2 ergibt 1 (denn 5/2=2, Rest 1).
Ein Beispiel findet Ihr im Video.
Jetzt bist Du wieder an der Reihe.
Nutze die modulo-Funktion, um in der Endlosschleife while(1) Zahlen von 0 bis 4 auszugeben.
Die Ausgabe soll also folgendermaßen aussehen:
0
1
2
3
4
0
1
2
3
4
…
[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]
ET-Tutorials weiterempfehlen
Hat Dir der Artikel gefallen?Dann unterstütze ET-Tutorials.de mit einer Empfehlung per Email an Deine Freunde .
Hinweis zum Datenschutz: Ich kann weder Deine noch die Email-Adresse Deiner Freunde sehen.
Ähnliche Artikel
Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:» Start der Entwicklungsumgebung uVision
» Funktionen in C
» Programmierung eines Kaffeeautomaten – Teil 2
» Binäre, dezimale und hexadezimale Zahlen
» Einrichten eines Projektes in uVision
Mein Name ist Wolfgang Bengfort. Ich bin Lehrer für Elektrotechnik und Technische Informatik und habe im September 2009 diese Seite gestartet. 


Hallo Wolfgang,
was habe ich hier falsch gemacht?
void main(void)
int i,j;
undsoweiter
while(1) {
i=5;
j=i%5;
printf(”j=%d\n”,j);
i=i+1
}
i wird dabei nicht um 1 incrementiert.
Es fehlt noch eine Begrenzung auf j=4, die muß ich mir noch überlegen.
Danke für Deine Hilfe.
Gruß Willi
Hallo Willi,
am Ende der while(1)-Schleife inkrementierst Du i.
Im ersten Befehl überschreibt Du aber i mit i=5; .
i ist also immer 5.
Viele Grüße
Wolfgang
Danke für den Hinweis. Nun funktioniert es einwandfrei.
Schönes Wochenende.
Willi
Hallo Herr Bengfort,
mein Name ist Heinrich Häring und ich besuche diese Internetseite weil mich die Elektronik wie Mikroprozesstechnik interessiert. Die Programierung ist für mich Neuland aber ich habe Spaß daran
und verbringe gerne meine Freizeit (die allerdings nicht allzu groß ist) am Computer.
Ich hoffe die Aufgabe die sie uns gestellt haben richtig gemacht zu haben.
Wenns besser oder schneller geht, bitte korrigieren. Danke !!
Wäre auch nicht schlecht zu überlegen, die while-schleife nach n-Durchgang zu stoppen.
#include
#include
main(){
int i;
while(1){
i=5;
i=i%5;
printf (”i=%d\n”,i);
i= i%5+1;
printf (”i=%d\n”,i);
i=i%5+1;
printf(”i=%d\n”,i);
i=i%5+1;
printf(”i=%d\n”,i);
i=i%5+1;
printf(”i=%d\n”,i);
system(”PAUSE”);
}
}
Hallo Heinrich Häring,
so war es eigentlich nicht gemeint.
Sie inkrementieren in jedem Befehl i und schreiben die gleiche Befehlsfolge 5 mal auf.
Elegenater und platzsparender (ein Mikrocontroler hat nur wenig Speicher) ist es, wenn man in der while-Schleife den Befehl 1x einträgt und dann die Schleife so programmiert, dass die Befehlsfolge in jeder Schleife mit den gewünschten Variablenwerten durchlaufen wird.
Willis Lösung hat z.B. diesen Ansatz.
In der Folge am Dienstag werde ich eine mögliche Lösung zeigen …