Ein Versuch in C
Verfasst: Do Jun 04, 2009 5:50 pm
				
				Hallo,
erstmal ein Dankeschön an diese Plattform, hat mir zu den ersten Gehversuchen in C sehr geholfen.
Ich programmiere ansich meine Microcontroller in Assembler auf dem AVR-Studio, was jetzt aber nicht möglich ist.
Muss für mein Hobbyprojekt (Modell-U-Boot) einige complexe Rechenfunktionen durchführen und zwar mit den Funktionen
double cos(x) und atan(x) um damit meinen Kurs zu berechnen. Wenn es irgendwo dafür Codeschnipsel in Assembler gibt hab ich mein Problem gelöst.
Die Anfänge von meinem Programm sehen so aus:
Dieser Anfang vom Programm lässt sich fehlerfrei übersetzen, sagt wohl noch nicht viel.
Jetzt Habe ich mit dem Tracen mal versucht meine errechneten Werte im RAM-Bereich zu finden, was nicht gelang.
Nun meine Fragen:
Wie finde ich meine Werte z.B. im RAM wieder?
Rechnet mir das Programm überhaupt die Werte aus, müsste für BU 3,637 sein ....finde den Wert bloss nicht?
Wäre nett, wenn jemand mal einen Blick aufs "Progrämmchen" werfen könnte.
Achja bin schon im Rentenalter und habe sowas wie hier nie gelernt!
Gruss aus Bayern
Gerd
/* edit by Xin: Codeflags eingefügt */
			erstmal ein Dankeschön an diese Plattform, hat mir zu den ersten Gehversuchen in C sehr geholfen.
Ich programmiere ansich meine Microcontroller in Assembler auf dem AVR-Studio, was jetzt aber nicht möglich ist.
Muss für mein Hobbyprojekt (Modell-U-Boot) einige complexe Rechenfunktionen durchführen und zwar mit den Funktionen
double cos(x) und atan(x) um damit meinen Kurs zu berechnen. Wenn es irgendwo dafür Codeschnipsel in Assembler gibt hab ich mein Problem gelöst.
Die Anfänge von meinem Programm sehen so aus:
Code: Alles auswählen
	#include <avr/io.h>
	#include <math.h>
	double	BA = 5936.841;		// Startposition Breitengrad N
	double	LA = 515.258;		// Startposition Längengrad E
	double	BZ = 5933.204;		// Zielposition Breitengrad N
	double	LZ = 512.688;		// Zielposition Längengrad E	
	
	double	BU = 0;			// Breigengradunterschied	
	double	MB = 0;			// Mittelbreite
	double	LU = 0;			// Längengradunterschied
	double	AW = 0;			// Abweitung
	double	WA = 0;			// Winkel alpha
	double	WI = 360;			// verwendeter Winkelbreich
	double	ZR = 0;			// Zielrichtung
	double	Dummy = 0;
	int main ()
	{	
	  BU = BA - BZ;			// Unterschied Breitengrad berechnen
	  return BU;
	  MB = BA - BU/2;			// Mittelbreite berechnen
	  return MB;			
	}
Jetzt Habe ich mit dem Tracen mal versucht meine errechneten Werte im RAM-Bereich zu finden, was nicht gelang.
Nun meine Fragen:
Wie finde ich meine Werte z.B. im RAM wieder?
Rechnet mir das Programm überhaupt die Werte aus, müsste für BU 3,637 sein ....finde den Wert bloss nicht?
Wäre nett, wenn jemand mal einen Blick aufs "Progrämmchen" werfen könnte.
Achja bin schon im Rentenalter und habe sowas wie hier nie gelernt!
Gruss aus Bayern
Gerd
/* edit by Xin: Codeflags eingefügt */
 
 