Archiv
Ansicht:   
Suche   erweiterte Suche

Nachricht aus dem Archiv

Mr. Teflon schrieb am 09.August.2009, 20:56:08 in der Kategorie pc.coding

mein Ideechen dazu

Hallo,

Du sieht nichts grundfalsch.

Ich kann auch nur Vermutungen anstellen.

Das Gerüst:

ADN6 = (long) ad;
maxlimit = 100*ADN6;

habe ich mir nicht selbst ausgedacht, hatte ich in einem Bsp. zum R8C13 entdeckt.

> Ich würde eher sagen, dass die Variable ad als \"long\" definiert werden
> müsste.

Ich glaube nach längerer Überlegungen und probierens, habe ja in der Zwischenzeit weitergemacht, macht die Zeile

ADN6 = (long) ad;

genau das. Die Schreibweise sieht nur kompliziert aus.
Aufgesplittet müßte das so aussehen womit es optisch nachvollziebarer aussieht.

long ad;
ADN6 = ad;
maxlimit = 100*ADN6;

wobei man dann eigentlich auch gleich schreiben könnte:

long ad;
maxlimit = 100*ad;

Bei mir sieht das z.Z. unten so aus, die A/D Werte müssen jetzt zwischengespeichert werden müssen, weil ich es jetzt geschafft habe zwei A/D Kanäle abzufragen und im Terminal auszugeben. Ab dem Punkt würde es leicht fallen noch mehr A/D Kanäle einzubinden. Das war aber für mich bis hierher nur mit Try & Error hartes Brot.

Das Gesamte soll später einmal eine Mehrkanal Temperaturmessung werden.
Die Potis simulieren derzeit die Temp.fühler. Damit sehe ich ob mein \"Code Gestückel\" überhaupt noch funktioniert. Vorhin hatte ich den Fall, dass zwar meim Lauflicht auf Potiänderung reagierte, aber die Werte in der Terminalausgabe blieben konstant. Da war also die Weiterverarbeitung auf der Strecke geblieben. So kämpft man sich von einem Stolperstein zum Nächsten.  :-)  :-)

Egal ob Du jetzt bei dem Programmschnipsel durch siehts oder nicht, wir beide meinten am Ende das Gleiche, also das ad \"long\" gesetzt werden muß, sonst funktioniert es nicht.

Danke für Deinen Beistand.  :-)


// *** Berechnungen mit A/D und Delayzeiten
void Berechnungen(void)
{
   ADAN6 = (long) ad_in(6);	     // A/D Kanal 6 wird als long auf long Variable ADAN6 gesetzt
   SpeedForward = 100*ADAN6+15000;   // Delay Wertneuberechnung
	
   ADAN5 = (long) ad_in(5);	     // A/D Kanal 5 wird als long auf long Variable ADAN5 gesetzt	  
   SpeedBackward = 100*ADAN5+15000;  // Delay Wertneuberechnung
   return;
}

Archiv
Ansicht:   
Suche   erweiterte Suche
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz