Forum: Mikrocontroller und Digitale Elektronik PPM-Signal mit einem Atmel AT89C51AC2 ausgeben


von Antonio C. (antonio-c)


Angehängte Dateien:

Lesenswert?

Hallo Leute

Ich bin neu in diesem Forum.
Ich bin mit meiner Diplomarbeit fast am verzweifeln, ich krieg kein 
richtiges PPM-Signal aus meinem uP heraus. Der Abgabetermin ist auch 
schon am 8. März.

Nun mal die Beschreibung der Arbeit:
Ich will mit einer Helmsteuerung der MK steuern können. Abhängig von der 
Kopfbewegung, wird der MK in die gewünschte Rischtung gesteuert. Ich 
verwende 1 Beschleunigungssensor, mit der X-Achse steuere ich die 
Roll-Bewegung und mit der Y-Achse die Nick-Bewegung. Zusätzlich für die 
Gier-Bewegung benötige ich einen Gyro (Winkelbeschleunigungssensor), der 
mir aber nur bei einem Impuls, der MK ca. für 1 Sek. nach link oder nach 
rechts dreheh lässt. Für Pitch benötige ich ebenfalls einen 
Beschleunigungssensor, der am linken Daumen befestigt werden soll, hier 
ist es die Y-Achse.
Alle diese analogen Werte digitalisiere ich zuerst im uP und dann 
beginne ich pro Kanal die Abfrage, wie die Pulslänge ausgegeben werden 
soll.
Ich habe die einzelnen Sensoren-Ausgänge mal einzeln in einem Programm 
getestet, da sieht man shcön im KO, wie die Pulslänge zwischen 1ms bis 
2ms sich ändert, wenn ich mein Print drehe.
Nur wenn ich alle Kanäle in einem Programm zusammenfüge, so bekomme ich 
kein richtiges PPM-Signal. Ich glaube da stimmt etwas mit dem 
Start-Pulse nicht.

Im Anhang findet Ihr mein kompletten Code.

Kann mir jemand mal einen Ansatz geben, wie er das Programmieren würde 
oder noch besser, wenn er der Fehler heraussehen würde.
Wenn Ihr noch weitere Infos von mir braucht, dann stelle ich Sie gerne 
auch im Forum.
Wenn jemand mir auch seine E-Mail Adresse geben würde, so könnte ich der 
Code per E-Mail senden, ist vielleicht dann übersichtlicher.
Die Entwicklungsumgebung ist uVision3.

Vielen Dank für Eure Hilfe im Voraus.

Gruss Antonio

von Antonio C. (antonio-c)


Angehängte Dateien:

Lesenswert?

Hallo,

Mit meinem Code kann ich jetzt das PPM-Signal ausgeben. Nur das einlesen 
der analogen Werte der Sensoren in der Funktion analog_wert_einlesen() 
funktioniert nicht richtig.
Komisch ist, dass alle geraden Durchläufe, also Durchlauf 0, 2, 4 in der 
Schleife nicht funktionieren. Hat das etwas mit der Schlaufe zu tun?

Hat da jemad einen Typ?

Im Anhang ein Auszug des ADC Datenblattes.

Danke und Gruss

Antonio

von MC (Gast)


Lesenswert?

Du übergibst mehreren Funktionen arrays als Argumente.
Soweit ich weis, ist das nicht möglich. Man kann Funktionen (glaube ich) 
nur "normale" Variablen, aber keine arrays oder stuctures übergeben.
MC

von Antonio (Gast)


Lesenswert?

Das stimmt nicht, an Funktionen kann auch arrays übergeben werden. Bei 
Strukturen kannst Du die Anfangs-Adresse übergen -> Zeiger und Pointer.
Die Funktion kann auch ein Array übergeben...

von Antonio (Gast)


Lesenswert?

ich meinte, die Funktion kann auch Arrays zurück geben

von MC (Gast)


Lesenswert?

Dann hat mir mein Lehrer blödsinn erzählt.

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.