Skip to content

Instantly share code, notes, and snippets.

@gyaresu
Created October 30, 2015 06:09
Show Gist options
  • Select an option

  • Save gyaresu/f62264dec5fb0e78477a to your computer and use it in GitHub Desktop.

Select an option

Save gyaresu/f62264dec5fb0e78477a to your computer and use it in GitHub Desktop.
Basic OOK
#include "EEPROM.h"
#include "cc1101.h"
CC1101 cc1101;
#define LEDOUTPUT 7
char const* testnum = "Gareth test";
byte counter;
byte b;
byte syncWord = 0x5555;
void blinker(){
digitalWrite(LEDOUTPUT, HIGH);
delay(100);
digitalWrite(LEDOUTPUT, LOW);
delay(100);
}
void setup()
{
Serial.begin(9600);
Serial.println("Starting CC1101...");
pinMode(LEDOUTPUT, OUTPUT);
digitalWrite(LEDOUTPUT, LOW);
// blink once to signal the setup
blinker();
// reset the counter
counter=0;
Serial.println("Initialize and set registers.");
cc1101.init();
Serial.println("Setting PA_TABLE.");
config2();
cc1101.setSyncWord(&syncWord, false);
cc1101.setCarrierFreq(CFREQ_433);
cc1101.disableAddressCheck();
// cc1101.setTxPowerAmp(PA_LowPower); // set already in init()
delay(1000);
Serial.print("CC1101_PARTNUM ");
Serial.println(cc1101.readReg(CC1101_PARTNUM, CC1101_STATUS_REGISTER));
Serial.print("CC1101_VERSION ");
Serial.println(cc1101.readReg(CC1101_VERSION, CC1101_STATUS_REGISTER));
Serial.print("CC1101_MARCSTATE ");
Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f);
Serial.println("device initialized");
Serial.println(testnum);
}
void send_data() {
CCPACKET data;
//byte blinkCount=counter++;
data.length = 4; // Originally was "55 55 c0 00"
data.data[0] = 0x55;
data.data[1] = 0x55;
data.data[2] = 0xc0;
data.data[3] = 0x00;
/*
data.length = 13;
data.data[0] = 0b10001110;
data.data[1] = 0b10001110;
data.data[2] = 0b10001110;
data.data[3] = 0b10001110;
data.data[4] = 0b10001110;
data.data[5] = 0b10001110;
data.data[6] = 0b10001110;
data.data[7] = 0b10001110;
data.data[8] = 0b11101110;
data.data[9] = 0b10001000;
data.data[10] = 0b10001000;
data.data[11] = 0b10001000;
data.data[12] = 0b10000000;
*/
//cc1101.flushTxFifo ();
Serial.print("CC1101_MARCSTATE ");
Serial.println(cc1101.readReg(CC1101_TXBYTES, CC1101_STATUS_REGISTER) & 0x7F);
if(cc1101.sendData(data)){
for (int i; i < data.length; ++i)
{
Serial.println(data.data[i], BIN);
}
Serial.println(" sent ok");
blinker();
}else{
Serial.println("sent failed :(");
blinker();
blinker();
}
}
void loop()
{
send_data();
delay(1000);
}
void config2()
{
byte PA_TABLE[]= {0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00};
cc1101.writeBurstReg(CC1101_PATABLE,PA_TABLE,8);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment