Forum: Mikrocontroller und Digitale Elektronik Versteht der Mega8 Plus Minus Mal Geteilt


von Seb (Gast)


Lesenswert?

Hallo,

hätte mal die Frage ob ich in einem C - Programm Variablen
zusammenzählen, voneinander abziehen, miteiander malnehmen und
durcheinader teilen kann und ob der Mega8 dann das auch kapiert.

z.B.  Variable C = Variable A / Variable B

MFG

Seb

von Bjoern M. (salival)


Lesenswert?

waere schlimm, wenn nicht. bei / mit integer ist noch zu beachten, dass
der "Rest" dabei wegfaellt. aber das ist nicht anders, als bei jedem
anderen C-programm auch.

gruss, bjoern.

von Marco S. (masterof)


Lesenswert?

Adieren und Subtrahieren kann jeder.
Multiplizieren und Diviediren kann man enweder als software oder es ist
in der Hardware drin.

von SIGINT (Gast)


Lesenswert?

@Marco: Es ging hier um C!

@Seb: Wenn du einen normalen C Compiler hast, dann kann der das zu
100%.
C ist standarisiert nach C99 und dies schliesst alle wichtigen
mathematischen Funktionen mit ein. Aber praktisch jede Hochsprache
kennt mathematische Funktionen, waere ja peinlich wenn nicht. Assembler
ist keine Hochsprache und deshalb bist du dort auch die Funktionen
angewiesen, die der Prozessor zur verfuegung stellt... man kann aber
immer per Software die Funktionen implementieren

Gruss,
  SIGINT

von peter dannegger (Gast)


Lesenswert?

Das ist mit nem C-Compiler ganz kommod:

Wenn er etwas nicht versteht, gibts nen syntax-error.


Peter

von SIGINT (Gast)


Lesenswert?

Nach ISO C99 sind bei jedem C Compiler die mathematischen Funktionen
Pflicht, deshalb wird der das verstehen. Alles andere darf sich nach
ISO nicht C-Compiler nennen.

von Marco S. (masterof)


Lesenswert?

nutz der AVRGCC beim ATmega den Hardwaremultiplikator oder macht der das
alles in Software?

von Hauke Radtki (Gast)


Lesenswert?

Ich denke mal (würde es anders denn sinn machen?) er nutzt den hardware
multiplizierer ... der ist nunmal schneller.

von Ronny (Gast)


Lesenswert?

Du kannst generell alle Operationen die in einem beliebigen C Buch
stehen benutzen.Nur kann es passieren das sehr viel Rechenzeit benötigt
wird,wenn die Zielhardware eine Operation (z.B die Division) nicht
unterstützt (oder der Compiler nicht weiss,das die Operation verfügbar
ist) weil die Operation dann aus Befehlen die Verfügbar sind zusammen
'gebastelt' wird.Eine Divison in einer Schleife kostet also einiges
an Rechenzeit extra,wenn sie nicht in implementiert ist.

von Marko (Gast)


Lesenswert?

gerade Divisionen gehen ziemlich ans Eingemachte,
ich versuche bei der Programmierung des µC
immer z.B. Messwerte in 2er 4er 8er oder 16er blöcken
zusammenzufassen weil die Division dann einfach durch
verschieben des Wertes um 1,2,3 oder 4 Stellen erfolgt.
Das geht schnell.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.