Hallo zusammen,
Folgendes, eigentlich einfaches Problem:
Ich würde gerne ein einfaches ASK Signal mit einer Präambel erzeugen, z.B. 1 1 1 0 0 1 0 1 1 0 0 usw.
Die Clockrate soll 1 ms betragen.
Ich habe dazu den CC1101 ausgewählt, weil man mit der ELECHOUSE_CC1101 Bibliothek sehr schön die Trägerfrequenz auswählen kann:
ELECHOUSE_cc1101.setModulation(2); | // set modulation mode. 0 = 2-FSK, 1 = GFSK, 2 = ASK/OOK, 3 = 4-FSK, 4 = MSK. |
---|---|
ELECHOUSE_cc1101.setMHZ(433.92); | // Here you can set your basic frequency. The lib calculates the frequency automatically (default = 433.92).The cc1101 can: 300-348 MHZ, 387-464MHZ and 779-928MHZ. Read More info from datasheet. |
Das zu erzeugende Signal habe ich in ein Array geschrieben.
Mit diesem Befehl kann ich zwar etwas senden:
ELECHOUSE_cc1101.SendData(array, 9, 1);
Aber da habe ich keinen Einfluss auf die Höhe und Länge der "HIGH States".
Ich vermute, ich muss das Signal irgendwie in Bytes übersetzen.
Ich habe etwas gefunden, wo aus jeder "1" ein "1110" (4-bit Code) und aus jeder "0" ein "1000" gemacht wird.
"10" wäre in HEX also 0xE8.
Wenn dahin die Reise geht, werde ich mich da weiter einarbeiten.
Ich suche allerdings nur einen einfachen Befehl, der mir etwas in der Art:
digitalWrite(PIN, HIGH);
delay(1);
digitalWrite(PIN, LOW);
erzeugt -> einfaches On-Off Keying.
Frage: Geht das mit dem CC1101 überhaupt? Welchen PIN könnte ich dafür nehmen? Welche library brauche ich dazu?
Besten Dank im Voraus!
Gruß
Steffl