Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MPU9250_SPI
Fork of WearableDevice_Nucleo by
main.cpp
- Committer:
- Muglug
- Date:
- 2017-10-19
- Revision:
- 20:197c69b38adf
- Parent:
- 19:0a3ae902722e
- Child:
- 23:aad5fd1b3ef9
File content as of revision 20:197c69b38adf:
/* * Los Putacos * Copyright (C) 2017, All rights reserved. * ________________________________________ * * Created by: Gustavo Campana, Michael Schmidt, Miguel Lopez * Date: 11-Oct-2017 * Version: V0.1 */ //----------------------------------------------------------------- // Board: NUCLEO - F401RE // Version: MR1136 rev C //----------------------------------------------------------------- //----------------------------------------------------------------- // Includes #include "mbed.h" #include "rtos.h" #include "mbed_events.h" #include "configuration.h" #include "event.h" #include "pin.h" #include "MPU9250.h" #include "XBeeLib.h" #include "SDFileSystem.h" //----------------------------------------------------------------- //----------------------------------------------------------------- // Declarations Timer time_stamp; //Timer µS time-stamp EventQueue queue(32 * EVENTS_EVENT_SIZE); //Event Serial PC(USBTX, USBRX); // PC Serial (Debug) // Serial XBeeee(PA_11, PA_12); // Xbee // MPU9250 imu; // IMU MPU-9255 by Kris Winer //----------------------------------------------------------------- //----------------------------------------------------------------- // Global Variables // Your code here! //----------------------------------------------------------------- /* //----------------------------------------------------------------- void print_event(void const *argv, int i) { pc.printf("%d ",i); pc.printf((const char*)argv); pc.printf("\r\n"); } //----------------------------------------------------------------- */ //----------------------------------------------------------------- /*void blink_event(DigitalOut pin){ pin = !pin; } //----------------------------------------------------------------- //----------------------------------------------------------------- void println_event(){ pc.printf("Arroz, feijao e batata\r\n"); } //----------------------------------------------------------------- */ //----------------------------------------------------------------- void Setup() { // PC Serial (Debug) baudrate PC.baud(9600); PC.printf("CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock); // XBeeee.baud(9600); // Task queue // int task1_id = queue.call_every(1000, printf, "called every 1 seconds\n"); // int task2_id = queue.call_every(2500, printf, "called every 2.5 seconds\n"); // int task3_id = queue.call_every(3000, &print_event, (void *)"called every 3 seconds\n", (int) time_stamp.read()); // int task4_id = queue.call_every(50, blink_event, led1); // int task5_id = queue.call_every(500, println_event); // int task6_id = queue.call_every(500, readIMU); // int task7_id = queue.call_every(500, gayEvent); } //----------------------------------------------------------------- //----------------------------------------------------------------- /*void initMPU9250() { // Initialize MPU9250 device // wake up device imu.writeByte(MPU9250_ADDRESS, PWR_MGMT_1, 0x00); // Clear sleep mode bit (6), enable all sensors }*/ //----------------------------------------------------------------- using namespace XBeeLib; /** Callback function, invoked at packet reception */ static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len) { for (int i = 0; i < len; i++) PC.printf("%c", data[i]); PC.printf("\r\n"); } // Create an SDFileSystem object SDFileSystem sd(SD_MOSI, SD_MISO, SD_CLK, SD_CS, "sd"); //----------------------------------------------------------------- int main() { Setup(); // Initial Setups const uint8_t data[] = "Hello Master!"; const uint16_t data_len = sizeof data / sizeof data[0] - 1; XBeeZB XBee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 115200); XBee.init(); /* Register callbacks */ XBee.register_receive_cb(&receive_cb); time_stamp.start(); // Start Timer // Mount the filesystem sd.mount(); if (sd.card_present()) PC.printf("Good"); else PC.printf("Meh"); // Reading the analog input (Microphone) // array = micro.read_u16(); // Performing Write Test PC.printf("\nWriting to SD card..."); FILE *fp = fopen("sdtest.txt", "w"); if (fp != NULL) { fclose(fp); PC.printf(" Success!\n"); } else { PC.printf(" Failed!\n"); } // Performing Read Test PC.printf("Reading from SD card..."); fp = fopen("/sd/sdtest.txt", "r"); if (fp != NULL) { char c = fgetc(fp); if (c == 'W') PC.printf(" Success!\n"); else PC.printf("Incorrect Character! (%c)!\n", c); fclose(fp); } else { PC.printf(" Failed!\n"); } led1 = 1; while (true) { // queue.dispatch(); XBee.process_rx_frames(); TxStatus txStatus = XBee.send_data_to_coordinator(data, data_len); if (txStatus != TxStatusSuccess) { PC.printf("send_data_broadcast() failed with error %d\n", (int)txStatus); } } // Unmount the Filesystem sd.unmount(); } //-----------------------------------------------------------------