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
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.
Adieren und Subtrahieren kann jeder. Multiplizieren und Diviediren kann man enweder als software oder es ist in der Hardware drin.
@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
Das ist mit nem C-Compiler ganz kommod: Wenn er etwas nicht versteht, gibts nen syntax-error. Peter
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.
nutz der AVRGCC beim ATmega den Hardwaremultiplikator oder macht der das alles in Software?
Ich denke mal (würde es anders denn sinn machen?) er nutzt den hardware multiplizierer ... der ist nunmal schneller.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.