first draft

Dependencies:   LMiC SX1272Libx mbed

Fork of LoRaWAN-lmic-app by Semtech

Revision:
6:fc465060b63e
Parent:
1:60184eda0066
--- a/hal.cpp	Thu Nov 26 17:20:53 2015 +0000
+++ b/hal.cpp	Tue Feb 23 15:42:41 2016 +0000
@@ -16,21 +16,21 @@
  *******************************************************************************/
 #include "mbed.h"
 #include "lmic.h"
-#include "mbed_debug.h"
+#include "debug.h"
 
 #if !USE_SMTC_RADIO_DRIVER
 
 extern void radio_irq_handler( u1_t dio );
 
-static DigitalOut nss( D10 );
-static SPI spi( D11, D12, D13 ); // ( mosi, miso, sclk )
+static DigitalOut nss( PTD4 );
+static SPI spi( PTD6, PTD7, PTD5 ); // ( mosi, miso, sclk )
  
 static DigitalInOut rst( A0 );
-static DigitalOut rxtx( A4 );
+static DigitalOut rxtx( PTC6 );
  
-static InterruptIn dio0( D2 );
-static InterruptIn dio1( D3 );
-static InterruptIn dio2( D4 ); 
+static InterruptIn dio0( PTC2 );
+static InterruptIn dio1( PTC4 );
+static InterruptIn dio2( PTC3 ); 
 
 static void dio0Irq( void ) {
     radio_irq_handler( 0 );
@@ -52,12 +52,16 @@
 static Timer timer;
 static Ticker ticker;
 
-static void reset_timer( void ) {
+static void reset_timer( void ) 
+{
+    debug("reset_timer enter\r\n");
     ticks += timer.read_us( ) >> 6;
     timer.reset( );
 }
 
-void hal_init( void ) {
+void hal_init( void ) 
+{
+   debug("hal_init enter\r\n");
      __disable_irq( );
      irqlevel = 0;
 
@@ -75,7 +79,8 @@
     // configure reset line
     rst.input( );
     // configure spi
-    spi.frequency( 8000000 );
+ //   spi.frequency( 8000000 );
+    spi.frequency( 1000000 );
     spi.format( 8, 0 );
     nss = 1;
 #endif
@@ -83,19 +88,26 @@
     timer.start( );
     ticker.attach_us( reset_timer, 10000000 ); // reset timer every 10sec
      __enable_irq( );
+   debug("hal_init exit\r\n");
 }
 
 #if !USE_SMTC_RADIO_DRIVER
 
-void hal_pin_rxtx( u1_t val ) {
+void hal_pin_rxtx( u1_t val ) 
+{
+  debug("hal_pin_rxtx enter %d\r\n",val);
     rxtx = !val;
 }
 
-void hal_pin_nss( u1_t val ) {
+void hal_pin_nss( u1_t val ) 
+{
+ debug("hal_pin_nss enter %d\r\n",val);
     nss = val;
 }
 
-void hal_pin_rst( u1_t val ) {
+void hal_pin_rst( u1_t val ) 
+{
+debug("hal_pin_rst enter %d\r\n",val);
     if( val == 0 || val == 1 )
     { // drive pin
         rst.output( );
@@ -107,36 +119,48 @@
     }
 }
 
-u1_t hal_spi( u1_t out ) {
-    return spi.write( out );
+u1_t hal_spi( u1_t out ) 
+{
+ debug("hal_spi enter\r\n");
+   return spi.write( out );
 }
 
 #endif
 
-void hal_disableIRQs( void ) {
-    __disable_irq( );
+void hal_disableIRQs( void ) 
+{
+ //debug("hal_disableIRQs enter\r\n");
+   __disable_irq( );
     irqlevel++;
 }
 
-void hal_enableIRQs( void ) {
+void hal_enableIRQs( void ) 
+{
+//debug("hal_enableIRQs enter\r\n");
     if( --irqlevel == 0 )
     {
         __enable_irq( );
     }
 }
 
-void hal_sleep( void ) {
+void hal_sleep( void ) 
+{
+//debug("hal_sleep enter\r\n");
     // NOP
 }
 
-u4_t hal_ticks( void ) {
+u4_t hal_ticks( void ) 
+{
     hal_disableIRQs( );
     int t = ticks + ( timer.read_us( ) >> 6 );
     hal_enableIRQs( );
+//debug("hal_ticks exit %d\r\n",t);
     return t;
 }
 
-static u2_t deltaticks( u4_t time ) {
+static u2_t deltaticks( u4_t time ) 
+{
+//    debug("deltaticks enter\r\n");
     u4_t t = hal_ticks( );
     s4_t d = time - t;
     if( d <= 0 ) {
@@ -148,14 +172,20 @@
     return ( u2_t )d;
 }
 
-void hal_waitUntil( u4_t time ) {
+void hal_waitUntil( u4_t time ) 
+{
+    debug("hal_waitUntil enter\r\n");
     while( deltaticks( time ) != 0 ); // busy wait until timestamp is reached
 }
 
-u1_t hal_checkTimer( u4_t time ) {
+u1_t hal_checkTimer( u4_t time ) 
+{
+//    debug("hal_checkTimer enter\r\n");
     return ( deltaticks( time ) < 2 );
 }
 
-void hal_failed( void ) {
+void hal_failed( void ) 
+{
+   debug("hal_failed enter\r\n");
     while( 1 );
 }