transmit example for LMIC_MOTE_L152RC
Dependencies: lmic_MOTE_L152RC mbed-src
hello_main.cpp@1:1ff358d55507, 2015-06-02 (annotated)
- Committer:
- dudmuck
- Date:
- Tue Jun 02 19:12:38 2015 +0000
- Revision:
- 1:1ff358d55507
- Parent:
- 0:cf8cd2f1ab24
use changed library name for LMIC
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dudmuck | 0:cf8cd2f1ab24 | 1 | #if 0 |
dudmuck | 0:cf8cd2f1ab24 | 2 | |
dudmuck | 0:cf8cd2f1ab24 | 3 | /******************************************************************************* |
dudmuck | 0:cf8cd2f1ab24 | 4 | * Copyright (c) 2014-2015 IBM Corporation. |
dudmuck | 0:cf8cd2f1ab24 | 5 | * All rights reserved. This program and the accompanying materials |
dudmuck | 0:cf8cd2f1ab24 | 6 | * are made available under the terms of the Eclipse Public License v1.0 |
dudmuck | 0:cf8cd2f1ab24 | 7 | * which accompanies this distribution, and is available at |
dudmuck | 0:cf8cd2f1ab24 | 8 | * http://www.eclipse.org/legal/epl-v10.html |
dudmuck | 0:cf8cd2f1ab24 | 9 | * |
dudmuck | 0:cf8cd2f1ab24 | 10 | * Contributors: |
dudmuck | 0:cf8cd2f1ab24 | 11 | * IBM Zurich Research Lab - initial API, implementation and documentation |
dudmuck | 0:cf8cd2f1ab24 | 12 | *******************************************************************************/ |
dudmuck | 0:cf8cd2f1ab24 | 13 | |
dudmuck | 0:cf8cd2f1ab24 | 14 | #include "lmic.h" |
dudmuck | 0:cf8cd2f1ab24 | 15 | #include "debug.h" |
dudmuck | 0:cf8cd2f1ab24 | 16 | #include "mbed.h" |
dudmuck | 0:cf8cd2f1ab24 | 17 | |
dudmuck | 0:cf8cd2f1ab24 | 18 | /*#include "gps.h" |
dudmuck | 0:cf8cd2f1ab24 | 19 | #include "sx9500.h" |
dudmuck | 0:cf8cd2f1ab24 | 20 | #include "mma8451q.h" |
dudmuck | 0:cf8cd2f1ab24 | 21 | #include "mpl3115a2.h" |
dudmuck | 0:cf8cd2f1ab24 | 22 | |
dudmuck | 0:cf8cd2f1ab24 | 23 | GPS gps; |
dudmuck | 0:cf8cd2f1ab24 | 24 | I2C i2c(I2C_SDA, I2C_SCL); |
dudmuck | 0:cf8cd2f1ab24 | 25 | SX9500 sx9500(i2c, PA_9); |
dudmuck | 0:cf8cd2f1ab24 | 26 | MMA8451Q mma8451q(i2c); |
dudmuck | 0:cf8cd2f1ab24 | 27 | MPL3115A2 mpl3115a2(i2c);*/ |
dudmuck | 0:cf8cd2f1ab24 | 28 | |
dudmuck | 0:cf8cd2f1ab24 | 29 | // LMIC application callbacks not used in his example |
dudmuck | 0:cf8cd2f1ab24 | 30 | void os_getArtEui (u1_t* buf) { |
dudmuck | 0:cf8cd2f1ab24 | 31 | } |
dudmuck | 0:cf8cd2f1ab24 | 32 | |
dudmuck | 0:cf8cd2f1ab24 | 33 | void os_getDevEui (u1_t* buf) { |
dudmuck | 0:cf8cd2f1ab24 | 34 | } |
dudmuck | 0:cf8cd2f1ab24 | 35 | |
dudmuck | 0:cf8cd2f1ab24 | 36 | void os_getDevKey (u1_t* buf) { |
dudmuck | 0:cf8cd2f1ab24 | 37 | } |
dudmuck | 0:cf8cd2f1ab24 | 38 | |
dudmuck | 0:cf8cd2f1ab24 | 39 | void onEvent (ev_t ev) { |
dudmuck | 0:cf8cd2f1ab24 | 40 | } |
dudmuck | 0:cf8cd2f1ab24 | 41 | |
dudmuck | 0:cf8cd2f1ab24 | 42 | /*static u1_t readReg (u1_t addr) { |
dudmuck | 0:cf8cd2f1ab24 | 43 | hal_pin_nss(0); |
dudmuck | 0:cf8cd2f1ab24 | 44 | hal_spi(addr & 0x7F); |
dudmuck | 0:cf8cd2f1ab24 | 45 | u1_t val = hal_spi(0x00); |
dudmuck | 0:cf8cd2f1ab24 | 46 | hal_pin_nss(1); |
dudmuck | 0:cf8cd2f1ab24 | 47 | return val; |
dudmuck | 0:cf8cd2f1ab24 | 48 | } |
dudmuck | 0:cf8cd2f1ab24 | 49 | |
dudmuck | 0:cf8cd2f1ab24 | 50 | void print_gpio() |
dudmuck | 0:cf8cd2f1ab24 | 51 | { |
dudmuck | 0:cf8cd2f1ab24 | 52 | printf("GPIOA->MODER:%08x\r\n", GPIOA->MODER); |
dudmuck | 0:cf8cd2f1ab24 | 53 | printf("GPIOA->IDR:%04x\r\n", GPIOA->IDR); |
dudmuck | 0:cf8cd2f1ab24 | 54 | printf("GPIOA->ODR:%04x\r\n", GPIOA->ODR); |
dudmuck | 0:cf8cd2f1ab24 | 55 | printf("GPIOA->AFR:%x %x\r\n", GPIOA->AFR[0], GPIOA->AFR[1]); // 0x40020020 0x40020024 |
dudmuck | 0:cf8cd2f1ab24 | 56 | |
dudmuck | 0:cf8cd2f1ab24 | 57 | printf("GPIOB->MODER:%08x\r\n", GPIOB->MODER); |
dudmuck | 0:cf8cd2f1ab24 | 58 | printf("GPIOB->IDR:%04x\r\n", GPIOB->IDR); |
dudmuck | 0:cf8cd2f1ab24 | 59 | printf("GPIOB->ODR:%04x\r\n", GPIOB->ODR); |
dudmuck | 0:cf8cd2f1ab24 | 60 | printf("GPIOB->AFR:%x %x\r\n", GPIOB->AFR[0], GPIOB->AFR[1]); |
dudmuck | 0:cf8cd2f1ab24 | 61 | |
dudmuck | 0:cf8cd2f1ab24 | 62 | printf("GPIOC->MODER:%08x\r\n", GPIOC->MODER); |
dudmuck | 0:cf8cd2f1ab24 | 63 | printf("GPIOC->IDR:%04x\r\n", GPIOC->IDR); |
dudmuck | 0:cf8cd2f1ab24 | 64 | printf("GPIOC->ODR:%04x\r\n", GPIOC->ODR); |
dudmuck | 0:cf8cd2f1ab24 | 65 | printf("GPIOC->AFR:%x %x\r\n", GPIOC->AFR[0], GPIOC->AFR[1]); |
dudmuck | 0:cf8cd2f1ab24 | 66 | printf("opmode:%02x\r\n", readReg(0x01)); |
dudmuck | 0:cf8cd2f1ab24 | 67 | }*/ |
dudmuck | 0:cf8cd2f1ab24 | 68 | |
dudmuck | 0:cf8cd2f1ab24 | 69 | // counter |
dudmuck | 0:cf8cd2f1ab24 | 70 | static int cnt = 0; |
dudmuck | 0:cf8cd2f1ab24 | 71 | |
dudmuck | 0:cf8cd2f1ab24 | 72 | // log text to USART and toggle LED |
dudmuck | 0:cf8cd2f1ab24 | 73 | static void initfunc (osjob_t* job) { |
dudmuck | 0:cf8cd2f1ab24 | 74 | //int ms = rand() & 0x7ff; // 0 to 2sec |
dudmuck | 0:cf8cd2f1ab24 | 75 | //int ms = rand() & 0x7f; // |
dudmuck | 0:cf8cd2f1ab24 | 76 | //int ms = 1000; |
dudmuck | 0:cf8cd2f1ab24 | 77 | //int ms_ticks = ms2osticks(ms); |
dudmuck | 0:cf8cd2f1ab24 | 78 | // say hello |
dudmuck | 0:cf8cd2f1ab24 | 79 | //debug_str("Hello World!\r\n"); |
dudmuck | 0:cf8cd2f1ab24 | 80 | // log counter |
dudmuck | 0:cf8cd2f1ab24 | 81 | debug_val("cnt = ", cnt); |
dudmuck | 0:cf8cd2f1ab24 | 82 | //print_gpio(); |
dudmuck | 0:cf8cd2f1ab24 | 83 | //debug("%d cnt = %d\r\n", ms_ticks, cnt); |
dudmuck | 0:cf8cd2f1ab24 | 84 | // toggle LED |
dudmuck | 0:cf8cd2f1ab24 | 85 | debug_led(++cnt & 1); |
dudmuck | 0:cf8cd2f1ab24 | 86 | // reschedule job every second |
dudmuck | 0:cf8cd2f1ab24 | 87 | os_setTimedCallback(job, os_getTime()+sec2osticks(1), initfunc); |
dudmuck | 0:cf8cd2f1ab24 | 88 | //os_setTimedCallback(job, os_getTime()+ms_ticks, initfunc); |
dudmuck | 0:cf8cd2f1ab24 | 89 | //os_setTimedCallback(job, os_getTime()+sec2osticks(10), initfunc); |
dudmuck | 0:cf8cd2f1ab24 | 90 | //os_setTimedCallback(job, os_getTime()+ms2osticks(50), initfunc); |
dudmuck | 0:cf8cd2f1ab24 | 91 | } |
dudmuck | 0:cf8cd2f1ab24 | 92 | |
dudmuck | 0:cf8cd2f1ab24 | 93 | // application entry point |
dudmuck | 0:cf8cd2f1ab24 | 94 | int main () { |
dudmuck | 0:cf8cd2f1ab24 | 95 | osjob_t initjob; |
dudmuck | 0:cf8cd2f1ab24 | 96 | |
dudmuck | 0:cf8cd2f1ab24 | 97 | /*gps.init(); |
dudmuck | 0:cf8cd2f1ab24 | 98 | sx9500.standby(); |
dudmuck | 0:cf8cd2f1ab24 | 99 | mpl3115a2.SetModeStandby(); |
dudmuck | 0:cf8cd2f1ab24 | 100 | mma8451q.set_active(0); |
dudmuck | 0:cf8cd2f1ab24 | 101 | gps.enable(false); */ |
dudmuck | 0:cf8cd2f1ab24 | 102 | |
dudmuck | 0:cf8cd2f1ab24 | 103 | // initialize runtime env |
dudmuck | 0:cf8cd2f1ab24 | 104 | os_init(); |
dudmuck | 0:cf8cd2f1ab24 | 105 | // initialize debug library |
dudmuck | 0:cf8cd2f1ab24 | 106 | debug_init(); |
dudmuck | 0:cf8cd2f1ab24 | 107 | // setup initial job |
dudmuck | 0:cf8cd2f1ab24 | 108 | os_setCallback(&initjob, initfunc); |
dudmuck | 0:cf8cd2f1ab24 | 109 | // execute scheduled jobs and events |
dudmuck | 0:cf8cd2f1ab24 | 110 | os_runloop(); |
dudmuck | 0:cf8cd2f1ab24 | 111 | // (not reached) |
dudmuck | 0:cf8cd2f1ab24 | 112 | return 0; |
dudmuck | 0:cf8cd2f1ab24 | 113 | } |
dudmuck | 0:cf8cd2f1ab24 | 114 | #endif /* #if 0 */ |