SX1276GenericLib to support sx1276 bassed LoRa modules, including HopeRF RFM95, Murata CMWX1ZZABZ and Semtech SX1276MB1MAS/SX1276MB1LAS modules

Dependents:   DISCO-L072CZ-LRWAN1_LoRa_PingPong DISCO-L072CZ-LRWAN1_LoRa_PingPong DISCO-L072CZ-LRWAN1_LoRa_PingPong DISCO-L072CZ-LRWAN1_LoRa_USB_Rx ... more

Fork of SX1276Lib by Semtech

Committer:
Helmut Tschemernjak
Date:
Sat Aug 12 19:16:08 2017 +0200
Revision:
85:93832cc77534
Parent:
81:d288917af0ce
Child:
91:55971936cee4
The deepsleep does not need to disable the SysTick, it is off
already in suspend mode. It looks like out D21 MCU does not
need to keep the flash on during sleep, we got a newer chip
revision.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut Tschemernjak 74:66223d437a25 1 #ifdef ARDUINO
Helmut Tschemernjak 74:66223d437a25 2
Helmut Tschemernjak 74:66223d437a25 3 #include <Arduino.h>
Helmut Tschemernjak 74:66223d437a25 4 #include "arduino-util.h"
Helmut Tschemernjak 74:66223d437a25 5 #include <cstdarg>
Helmut Tschemernjak 74:66223d437a25 6 #include <stdio.h>
Helmut Tschemernjak 74:66223d437a25 7
Helmut Tschemernjak 74:66223d437a25 8
Helmut Tschemernjak 74:66223d437a25 9 char tmpbuf[160];
Helmut Tschemernjak 74:66223d437a25 10 extern int us_getTicker(void);
Helmut Tschemernjak 74:66223d437a25 11 extern int s_getTicker(void);
Helmut Tschemernjak 75:7330dd86cdea 12 extern Stream *ser;
Helmut Tschemernjak 74:66223d437a25 13
Helmut Tschemernjak 74:66223d437a25 14 void
Helmut Tschemernjak 74:66223d437a25 15 dprintf(const char *format, ...)
Helmut Tschemernjak 74:66223d437a25 16 {
Helmut Tschemernjak 79:8ae448a3c1fd 17 static volatile bool busy;
Helmut Tschemernjak 79:8ae448a3c1fd 18 if (busy)
Helmut Tschemernjak 79:8ae448a3c1fd 19 return;
Helmut Tschemernjak 79:8ae448a3c1fd 20 busy = true;
Helmut Tschemernjak 79:8ae448a3c1fd 21
Helmut Tschemernjak 74:66223d437a25 22 int secs = s_getTicker();
Helmut Tschemernjak 74:66223d437a25 23 int s = secs % 60;
Helmut Tschemernjak 74:66223d437a25 24 int m = secs / 60;
Helmut Tschemernjak 74:66223d437a25 25 int h = secs / 3600;
Helmut Tschemernjak 81:d288917af0ce 26 int us = us_getTicker() % 1000000;
Helmut Tschemernjak 74:66223d437a25 27
Helmut Tschemernjak 74:66223d437a25 28 snprintf(tmpbuf, sizeof(tmpbuf)-1, "%02d:%02d:%02d.%.06d ", h, m, s, us);
Helmut Tschemernjak 75:7330dd86cdea 29 ser->write(tmpbuf, (int) sizeof "00:00:34.3436868 " -1);
Helmut Tschemernjak 74:66223d437a25 30
Helmut Tschemernjak 74:66223d437a25 31 va_list arg;
Helmut Tschemernjak 74:66223d437a25 32 va_start(arg, format);
Helmut Tschemernjak 74:66223d437a25 33 int len = vsnprintf(tmpbuf, sizeof(tmpbuf)-3, format, arg);
Helmut Tschemernjak 74:66223d437a25 34 tmpbuf[len] = '\r';
Helmut Tschemernjak 74:66223d437a25 35 tmpbuf[len+1] = '\n';
Helmut Tschemernjak 74:66223d437a25 36 tmpbuf[len+2] = 0;
Helmut Tschemernjak 75:7330dd86cdea 37 ser->write(tmpbuf, len+3);
Helmut Tschemernjak 74:66223d437a25 38 va_end(arg);
Helmut Tschemernjak 79:8ae448a3c1fd 39 busy = false;
Helmut Tschemernjak 74:66223d437a25 40 }
Helmut Tschemernjak 74:66223d437a25 41
Helmut Tschemernjak 74:66223d437a25 42 void
Helmut Tschemernjak 74:66223d437a25 43 rprintf(const char *format, ...)
Helmut Tschemernjak 74:66223d437a25 44 {
Helmut Tschemernjak 74:66223d437a25 45 va_list arg;
Helmut Tschemernjak 74:66223d437a25 46 va_start(arg, format);
Helmut Tschemernjak 74:66223d437a25 47 int len = vsnprintf(tmpbuf, sizeof(tmpbuf)-3, format, arg);
Helmut Tschemernjak 74:66223d437a25 48 tmpbuf[len] = 0;
Helmut Tschemernjak 75:7330dd86cdea 49 ser->write(tmpbuf, len+1);
Helmut Tschemernjak 74:66223d437a25 50 va_end(arg);
Helmut Tschemernjak 74:66223d437a25 51 }
Helmut Tschemernjak 74:66223d437a25 52
Helmut Tschemernjak 74:66223d437a25 53 void
Helmut Tschemernjak 74:66223d437a25 54 dump(const char *title, const void *data, int len)
Helmut Tschemernjak 74:66223d437a25 55 {
Helmut Tschemernjak 74:66223d437a25 56 dprintf("dump(\"%s\", 0x%x, %d bytes)", title, data, len);
Helmut Tschemernjak 74:66223d437a25 57
Helmut Tschemernjak 74:66223d437a25 58 int i, j, cnt;
Helmut Tschemernjak 74:66223d437a25 59 unsigned char *u;
Helmut Tschemernjak 74:66223d437a25 60 const int width = 16;
Helmut Tschemernjak 74:66223d437a25 61 const int seppos = 7;
Helmut Tschemernjak 74:66223d437a25 62
Helmut Tschemernjak 74:66223d437a25 63 cnt = 0;
Helmut Tschemernjak 74:66223d437a25 64 u = (unsigned char *)data;
Helmut Tschemernjak 74:66223d437a25 65 while (len > 0) {
Helmut Tschemernjak 74:66223d437a25 66 rprintf("%08x: ", (unsigned int)data + cnt);
Helmut Tschemernjak 74:66223d437a25 67 cnt += width;
Helmut Tschemernjak 74:66223d437a25 68 j = len < width ? len : width;
Helmut Tschemernjak 74:66223d437a25 69 for (i = 0; i < j; i++) {
Helmut Tschemernjak 74:66223d437a25 70 rprintf("%2.2x ", *(u + i));
Helmut Tschemernjak 74:66223d437a25 71 if (i == seppos)
Helmut Tschemernjak 75:7330dd86cdea 72 ser->write(' ');
Helmut Tschemernjak 74:66223d437a25 73 }
Helmut Tschemernjak 75:7330dd86cdea 74 ser->write(' ');
Helmut Tschemernjak 74:66223d437a25 75 if (j < width) {
Helmut Tschemernjak 74:66223d437a25 76 i = width - j;
Helmut Tschemernjak 74:66223d437a25 77 if (i > seppos + 1)
Helmut Tschemernjak 75:7330dd86cdea 78 ser->write(' ');
Helmut Tschemernjak 74:66223d437a25 79 while (i--) {
Helmut Tschemernjak 75:7330dd86cdea 80 ser->print(" ");
Helmut Tschemernjak 74:66223d437a25 81 }
Helmut Tschemernjak 74:66223d437a25 82 }
Helmut Tschemernjak 74:66223d437a25 83 for (i = 0; i < j; i++) {
Helmut Tschemernjak 74:66223d437a25 84 int c = *(u + i);
Helmut Tschemernjak 74:66223d437a25 85 if (c >= ' ' && c <= '~')
Helmut Tschemernjak 75:7330dd86cdea 86 ser->write(c);
Helmut Tschemernjak 74:66223d437a25 87 else
Helmut Tschemernjak 75:7330dd86cdea 88 ser->write('.');
Helmut Tschemernjak 74:66223d437a25 89 if (i == seppos)
Helmut Tschemernjak 75:7330dd86cdea 90 ser->write(' ');
Helmut Tschemernjak 74:66223d437a25 91 }
Helmut Tschemernjak 74:66223d437a25 92 len -= width;
Helmut Tschemernjak 74:66223d437a25 93 u += width;
Helmut Tschemernjak 75:7330dd86cdea 94 ser->print("\r\n");
Helmut Tschemernjak 74:66223d437a25 95 }
Helmut Tschemernjak 75:7330dd86cdea 96 ser->print("--\r\n");
Helmut Tschemernjak 74:66223d437a25 97
Helmut Tschemernjak 74:66223d437a25 98 }
Helmut Tschemernjak 74:66223d437a25 99 #endif