Mbed SDK for XRange SX1272 LoRa module

Dependents:   XRangePingPong XRange-LoRaWAN-lmic-app lora-transceiver

SX1272 LoRa RF module

https://www.netblocks.eu/xrange-sx1272-lora-datasheet/

Committer:
netblocks
Date:
Thu Jan 07 13:01:25 2016 +0000
Revision:
339:ac6f3fd999f3
Parent:
336:1e18a06a987b
HSE_VALUE set for XTAL 16Mhz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudmuck 336:1e18a06a987b 1 /* mbed Microcontroller Library
dudmuck 336:1e18a06a987b 2 * Copyright (c) 2006-2013 ARM Limited
dudmuck 336:1e18a06a987b 3 *
dudmuck 336:1e18a06a987b 4 * Licensed under the Apache License, Version 2.0 (the "License");
dudmuck 336:1e18a06a987b 5 * you may not use this file except in compliance with the License.
dudmuck 336:1e18a06a987b 6 * You may obtain a copy of the License at
dudmuck 336:1e18a06a987b 7 *
dudmuck 336:1e18a06a987b 8 * http://www.apache.org/licenses/LICENSE-2.0
dudmuck 336:1e18a06a987b 9 *
dudmuck 336:1e18a06a987b 10 * Unless required by applicable law or agreed to in writing, software
dudmuck 336:1e18a06a987b 11 * distributed under the License is distributed on an "AS IS" BASIS,
dudmuck 336:1e18a06a987b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dudmuck 336:1e18a06a987b 13 * See the License for the specific language governing permissions and
dudmuck 336:1e18a06a987b 14 * limitations under the License.
dudmuck 336:1e18a06a987b 15 */
dudmuck 336:1e18a06a987b 16 #include "BusIn.h"
dudmuck 336:1e18a06a987b 17
dudmuck 336:1e18a06a987b 18 namespace mbed {
dudmuck 336:1e18a06a987b 19
dudmuck 336:1e18a06a987b 20 BusIn::BusIn(PinName p0, PinName p1, PinName p2, PinName p3, PinName p4, PinName p5, PinName p6, PinName p7, PinName p8, PinName p9, PinName p10, PinName p11, PinName p12, PinName p13, PinName p14, PinName p15) {
dudmuck 336:1e18a06a987b 21 PinName pins[16] = {p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15};
dudmuck 336:1e18a06a987b 22
dudmuck 336:1e18a06a987b 23 for (int i=0; i<16; i++) {
dudmuck 336:1e18a06a987b 24 _pin[i] = (pins[i] != NC) ? new DigitalIn(pins[i]) : 0;
dudmuck 336:1e18a06a987b 25 }
dudmuck 336:1e18a06a987b 26 }
dudmuck 336:1e18a06a987b 27
dudmuck 336:1e18a06a987b 28 BusIn::BusIn(PinName pins[16]) {
dudmuck 336:1e18a06a987b 29 for (int i=0; i<16; i++) {
dudmuck 336:1e18a06a987b 30 _pin[i] = (pins[i] != NC) ? new DigitalIn(pins[i]) : 0;
dudmuck 336:1e18a06a987b 31 }
dudmuck 336:1e18a06a987b 32 }
dudmuck 336:1e18a06a987b 33
dudmuck 336:1e18a06a987b 34 BusIn::~BusIn() {
dudmuck 336:1e18a06a987b 35 for (int i=0; i<16; i++) {
dudmuck 336:1e18a06a987b 36 if (_pin[i] != 0) {
dudmuck 336:1e18a06a987b 37 delete _pin[i];
dudmuck 336:1e18a06a987b 38 }
dudmuck 336:1e18a06a987b 39 }
dudmuck 336:1e18a06a987b 40 }
dudmuck 336:1e18a06a987b 41
dudmuck 336:1e18a06a987b 42 int BusIn::read() {
dudmuck 336:1e18a06a987b 43 int v = 0;
dudmuck 336:1e18a06a987b 44 for (int i=0; i<16; i++) {
dudmuck 336:1e18a06a987b 45 if (_pin[i] != 0) {
dudmuck 336:1e18a06a987b 46 v |= _pin[i]->read() << i;
dudmuck 336:1e18a06a987b 47 }
dudmuck 336:1e18a06a987b 48 }
dudmuck 336:1e18a06a987b 49 return v;
dudmuck 336:1e18a06a987b 50 }
dudmuck 336:1e18a06a987b 51
dudmuck 336:1e18a06a987b 52 void BusIn::mode(PinMode pull) {
dudmuck 336:1e18a06a987b 53 for (int i=0; i<16; i++) {
dudmuck 336:1e18a06a987b 54 if (_pin[i] != 0) {
dudmuck 336:1e18a06a987b 55 _pin[i]->mode(pull);
dudmuck 336:1e18a06a987b 56 }
dudmuck 336:1e18a06a987b 57 }
dudmuck 336:1e18a06a987b 58 }
dudmuck 336:1e18a06a987b 59
dudmuck 336:1e18a06a987b 60 #ifdef MBED_OPERATORS
dudmuck 336:1e18a06a987b 61 BusIn::operator int() {
dudmuck 336:1e18a06a987b 62 return read();
dudmuck 336:1e18a06a987b 63 }
dudmuck 336:1e18a06a987b 64 #endif
dudmuck 336:1e18a06a987b 65
dudmuck 336:1e18a06a987b 66 } // namespace mbed