ich versuche aus einem Free Pascal Programm Daten mit dem ftduino auszutauschen. Mit einer Vorlage aus dem Netz habe ich einen Teilerfolg erzielt.
Hier die Programme:
Code: Alles auswählen
#include <Arduino_BuiltIn.h>
#include <FtduinoSimple.h>
char ch;
int counter;
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN,OUTPUT);
}
void loop() {
counter = Serial.available();
if (counter>0){
digitalWrite(LED_BUILTIN,HIGH);
Serial.print(counter);
delay(100);
ch=Serial.read();
if ((ch>=97) and (ch<=122)){
ch-=32;
}
Serial.print("Das kommt vom ftduino:");
Serial.println(ch);}
else {digitalWrite(LED_BUILTIN,LOW);
}
}
Code: Alles auswählen
program ftarduinocom;
uses
serial, // Für Serielle-Kommunikation.
Crt; // Für Tastatur-Eingabe und Delay.
var
serHandle: TSerialHandle; // Handle für COM-Port.
ch: char;
begin
serHandle := SerOpen('COM4'); // Bei Windows 'COMx' // COM-Port öffnen.
SerSetParams(serHandle, 115200, 8, NoneParity, 1, []);
repeat
ch := ReadKey;
write(ch);
if ch >= #32 then begin
write(SerWrite(serHandle, ch, 1)); // Zeichen senden.
ch := #0; // Zeichen auf #0 setzen.
Delay(10); // Kleine Verzögerung.
write(SerRead(serHandle, ch, 1)); // Zeichen empfangen.
Write(ch); // Zur Überprüfung auf Bildschirm ausgeben.
end;
until ch = #27; // Bei <ESC> abbrechen.
SerClose(serHandle); // COM-Port schliessen.
end.
Wenn ich allerdings aus dem Pascal Programm ein Zeichen sende, geht kurz die LED am Arduino an weil ein Zeichen im Puffer ist, aber es wird kein Zeichen gelesen und anschließend auch nichts zurück in nach Pascal übertragen.