RAMPE auf LPC1768 CortexM3 programmieren

Gast #2508760
Hallo zusammen !
ich programmiere zur Zeit auf einem Microkontroller LPC1768 eine rampe,
die aus drei Sequenzen besteht. Aber irgendwie beim Compilieren habe ich
immer( wenn ich auf dem Oscilloscope anschaue) die drei Sequenzen(
Spannungsverlauf) die gleichzeitig auftreten. Und nicht nacheinander,
wie das sein sollte. Ich habe mehr mals versucht, den Timer richtig
einszustellen. klapp aber leider nicht !
könnte einer von euch mir helfen oder eine Idee geben, wie ich das
machen konnte, wäre's Lieb !

Danke steven
Gast
Sehr vage Beschreibung gibt eine sehr allgemeine Lösung:

Jede Deiner Sequenzen braucht ein Ende-Kriterium, dann darf erst die 
nächste gestartet werden. Timer sind nicht die beste Wahl.
Gast
HALLO SlOW!
Ja ! denke ich auch aber soll das nicht getakt( Timer) werden.
könntest du mir ein Beispiel geben? bitte !

oder schreiben wie du das programmieren würdest.
ich meine die erst, die zweite Sequenz ... usW.
 da habe ich erst den code für die  Steigung der ersten Sequenz der 
Rampe geschrieben.

 for (i=0;i>10;i++)               /*sequenz 1*/
   {
     tab1[i]= (i*0.08)+2 ;
   }                           /* speichert die 10 punkte(werte)*/

 for (i=0;i>15;i++)             /*sequenz 2*/
   {
     tab1[i]= Cst ;            /*konstante wert*/
   }                           /* speichert die 10 punkte(werte)*/

  for (i=10;i > 0;--)            /*sequenz 3*/

   {
     tab1[i]= (i*0.048)+2 ;      /*fallende Flanke*/
   }
Gast
Benjamin schrieb:
> Wie wäre es mal mit Quellcode zeigen?

Hallo Benjamin!

könntest du mir ein Beispiel geben? bitte !

oder schreiben wie du das programmieren würdest.
ich meine die erst, die zweite Sequenz ... usW.
 da habe ich erst den code für die  Steigung der ersten Sequenz der 
Rampe geschrieben.

 for (i=0;i>10;i++)               /*sequenz 1*/
   {
     tab1[i]= (i*0.08)+2 ;
   }                           /* speichert die 10 punkte(werte)*/

 for (i=0;i>15;i++)             /*sequenz 2*/
   {
     tab1[i]= Cst ;            /*konstante wert*/
   }                           /* speichert die 10 punkte(werte)*/

  for (i=10;i > 0;--)            /*sequenz 3*/

   {
     tab1[i]= (i*0.048)+2 ;      /*fallende Flanke*/
   }

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.