knx/examples/knx-cc1310/knx_wrapper.cpp
nanosonde d90843ba45
Add support for CC1310 platform based on SimpleLink SDK (#94)
* Initial commit

* Clean up

* Remove display code

* Change cmake build

* Add SimpleLink SDK for CC13xx/CC26xx as submodule

* Remove commented line from build.sh

* Working build

* Remove SDK submodule

* Squashed 'examples/knx-cc1310/coresdk_cc13xx_cc26xx/' content from commit 0d78d32

git-subtree-dir: examples/knx-cc1310/coresdk_cc13xx_cc26xx
git-subtree-split: 0d78d3280357416a5c0388148cda13717c9ffaa5

* Add more comments and enable Power_idleFunc() for NoRTOS variant.
Internal SDK driver functions which have to wait for something
will cause Power_idleFunc to be called instead of doing busy wait.

* Move CC1310 platform init around

* Optimize a bit more in debug build config as the binary does not fit into 128Kb flash otherwise.

* Explicitly list each source/header file in build config. Use linker group to resolve circular dependencies.

* Ignore vscode settings.json

* Increase stacks size

* Only compile CC1310 source code if #define DeviceFamily_CC13X0

* initial commit of CC1310 RF driver with first working RX version

* Better handling of buttonUp() across platforms

* Start cleanup

* continue cleanup

* Fix bau2920 compilation

* Continue cleanup

* Fix compilation in other examples

* Fix compilation

* htons() and ntohs() only for SAMD and STM32, but not for Linux and ESP8266 and ESP32

* htons(9 and ntohs() needed for CC13x0

* Continue cleanup

* Add CC1310 platform to CI

* Fix CI

* Use more recent toolchain from ARM

* Fix travis

* Use Ubuntu Focal

* Fix toolchain for travis

* Fix package name

* Fix toolchain

* Add libstdc++-dev package

* Add newlib packages

* Remove commented commands from CI

* Fix travis

* Fix compilation of knxPython

* Clean up linefeeds

* Fix RX callback

* Move RF CRC16-DNP to bits.cpp

* Fix TX

* Optimization: do not calc CRC for block1 again in rf_data_link_layer

* Make newline optional in printHex

* Cleanup. First working version: ETS5 programming of individual address via KNX/RF coupler.

* Use LEDs and Buttons to control ProgMode and Flash Erase

* Remove settings.json (VScode)

* Add README.md

* Update README.md

* Update README.md

* Fix typo
2020-11-10 21:52:38 +01:00

50 lines
921 B
C++

#include "knx.h"
#include <cstdio>
#include "knx_wrapper.h"
KnxFacade<CC1310Platform, Bau27B0> *pKnx = nullptr;
void buttonUp()
{
static uint32_t lastpressed=0;
if (millis() - lastpressed > 200)
{
KnxFacade<CC1310Platform, Bau27B0> &knx = *pKnx;
knx._toogleProgMode = true;
lastpressed = millis();
}
}
void setup()
{
pKnx = new KnxFacade<CC1310Platform, Bau27B0>;
KnxFacade<CC1310Platform, Bau27B0> &knx = *pKnx;
// see GPIO_PinConfig gpioPinConfigs[]
knx.buttonPin(0);
knx.ledPinActiveOn(HIGH);
knx.platform().init();
knx.readMemory();
if (knx.individualAddress() == 0)
knx.progMode(true);
if (knx.configured())
{
printf("configured %d\n", knx.paramByte(5));
}
else
println("not configured");
knx.start();
}
void loop()
{
KnxFacade<CC1310Platform, Bau27B0> &knx = *pKnx;
knx.loop();
}