mikrocontroller.net

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


Autor: Antonio C. (antonio-c)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Antonio C. (antonio-c)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Antonio (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Antonio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich meinte, die Funktion kann auch Arrays zurück geben

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hat mir mein Lehrer blödsinn erzählt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.