This program displays heart rate and time between heart beats on LCD, prints it to a USB serial port, print it to a bluetooth serial port and store it on a USB mass storage device. The program has two interrupt routines: 1.Every 1ms a counter is increased with one, 2. On every heart beat the counter is value copied. In the main loop the beats per minute are calculated. Ext.Modules:- Polar RMCM-01 heart rate module connected to pin8. - 2x16 LCD - a RF-BT0417CB bluetooth serial device connected to p27 and p28 - an USB mass storage device

Dependencies:   TextLCD mbed

Committer:
jrsikken
Date:
Tue Jan 04 21:33:59 2011 +0000
Revision:
2:e660e68a91fa
Parent:
1:8b001f936bb0
Now the heart rate is also send over a serial port to a bluetooth device.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jrsikken 1:8b001f936bb0 1 /*
jrsikken 1:8b001f936bb0 2 **************************************************************************************************************
jrsikken 1:8b001f936bb0 3 * NXP USB Host Stack
jrsikken 1:8b001f936bb0 4 *
jrsikken 1:8b001f936bb0 5 * (c) Copyright 2008, NXP SemiConductors
jrsikken 1:8b001f936bb0 6 * (c) Copyright 2008, OnChip Technologies LLC
jrsikken 1:8b001f936bb0 7 * All Rights Reserved
jrsikken 1:8b001f936bb0 8 *
jrsikken 1:8b001f936bb0 9 * www.nxp.com
jrsikken 1:8b001f936bb0 10 * www.onchiptech.com
jrsikken 1:8b001f936bb0 11 *
jrsikken 1:8b001f936bb0 12 * File : usbhost_ms.h
jrsikken 1:8b001f936bb0 13 * Programmer(s) : Ravikanth.P
jrsikken 1:8b001f936bb0 14 * Version :
jrsikken 1:8b001f936bb0 15 *
jrsikken 1:8b001f936bb0 16 **************************************************************************************************************
jrsikken 1:8b001f936bb0 17 */
jrsikken 1:8b001f936bb0 18
jrsikken 1:8b001f936bb0 19 #ifndef USBHOST_MS_H
jrsikken 1:8b001f936bb0 20 #define USBHOST_MS_H
jrsikken 1:8b001f936bb0 21
jrsikken 1:8b001f936bb0 22 /*
jrsikken 1:8b001f936bb0 23 **************************************************************************************************************
jrsikken 1:8b001f936bb0 24 * INCLUDE HEADER FILES
jrsikken 1:8b001f936bb0 25 **************************************************************************************************************
jrsikken 1:8b001f936bb0 26 */
jrsikken 1:8b001f936bb0 27
jrsikken 1:8b001f936bb0 28 #include "usbhost_inc.h"
jrsikken 1:8b001f936bb0 29
jrsikken 1:8b001f936bb0 30 /*
jrsikken 1:8b001f936bb0 31 **************************************************************************************************************
jrsikken 1:8b001f936bb0 32 * MASS STORAGE SPECIFIC DEFINITIONS
jrsikken 1:8b001f936bb0 33 **************************************************************************************************************
jrsikken 1:8b001f936bb0 34 */
jrsikken 1:8b001f936bb0 35
jrsikken 1:8b001f936bb0 36 #define MS_GET_MAX_LUN_REQ 0xFE
jrsikken 1:8b001f936bb0 37 #define MASS_STORAGE_CLASS 0x08
jrsikken 1:8b001f936bb0 38 #define MASS_STORAGE_SUBCLASS_SCSI 0x06
jrsikken 1:8b001f936bb0 39 #define MASS_STORAGE_PROTOCOL_BO 0x50
jrsikken 1:8b001f936bb0 40
jrsikken 1:8b001f936bb0 41 #define INQUIRY_LENGTH 36
jrsikken 1:8b001f936bb0 42 /*
jrsikken 1:8b001f936bb0 43 **************************************************************************************************************
jrsikken 1:8b001f936bb0 44 * SCSI SPECIFIC DEFINITIONS
jrsikken 1:8b001f936bb0 45 **************************************************************************************************************
jrsikken 1:8b001f936bb0 46 */
jrsikken 1:8b001f936bb0 47
jrsikken 1:8b001f936bb0 48 #define CBW_SIGNATURE 0x43425355
jrsikken 1:8b001f936bb0 49 #define CSW_SIGNATURE 0x53425355
jrsikken 1:8b001f936bb0 50 #define CBW_SIZE 31
jrsikken 1:8b001f936bb0 51 #define CSW_SIZE 13
jrsikken 1:8b001f936bb0 52 #define CSW_CMD_PASSED 0x00
jrsikken 1:8b001f936bb0 53 #define SCSI_CMD_REQUEST_SENSE 0x03
jrsikken 1:8b001f936bb0 54 #define SCSI_CMD_TEST_UNIT_READY 0x00
jrsikken 1:8b001f936bb0 55 #define SCSI_CMD_INQUIRY 0x12
jrsikken 1:8b001f936bb0 56 #define SCSI_CMD_READ_10 0x28
jrsikken 1:8b001f936bb0 57 #define SCSI_CMD_READ_CAPACITY 0x25
jrsikken 1:8b001f936bb0 58 #define SCSI_CMD_WRITE_10 0x2A
jrsikken 1:8b001f936bb0 59
jrsikken 1:8b001f936bb0 60 /*
jrsikken 1:8b001f936bb0 61 **************************************************************************************************************
jrsikken 1:8b001f936bb0 62 * TYPE DEFINITIONS
jrsikken 1:8b001f936bb0 63 **************************************************************************************************************
jrsikken 1:8b001f936bb0 64 */
jrsikken 1:8b001f936bb0 65
jrsikken 1:8b001f936bb0 66 typedef enum ms_data_dir {
jrsikken 1:8b001f936bb0 67
jrsikken 1:8b001f936bb0 68 MS_DATA_DIR_IN = 0x80,
jrsikken 1:8b001f936bb0 69 MS_DATA_DIR_OUT = 0x00,
jrsikken 1:8b001f936bb0 70 MS_DATA_DIR_NONE = 0x01
jrsikken 1:8b001f936bb0 71
jrsikken 1:8b001f936bb0 72 } MS_DATA_DIR;
jrsikken 1:8b001f936bb0 73
jrsikken 1:8b001f936bb0 74 /*
jrsikken 1:8b001f936bb0 75 **************************************************************************************************************
jrsikken 1:8b001f936bb0 76 * FUNCTION PROTOTYPES
jrsikken 1:8b001f936bb0 77 **************************************************************************************************************
jrsikken 1:8b001f936bb0 78 */
jrsikken 1:8b001f936bb0 79
jrsikken 1:8b001f936bb0 80 USB_INT32S MS_BulkRecv ( USB_INT32U block_number,
jrsikken 1:8b001f936bb0 81 USB_INT16U num_blocks,
jrsikken 1:8b001f936bb0 82 volatile USB_INT08U *user_buffer);
jrsikken 1:8b001f936bb0 83
jrsikken 1:8b001f936bb0 84 USB_INT32S MS_BulkSend ( USB_INT32U block_number,
jrsikken 1:8b001f936bb0 85 USB_INT16U num_blocks,
jrsikken 1:8b001f936bb0 86 volatile USB_INT08U *user_buffer);
jrsikken 1:8b001f936bb0 87 USB_INT32S MS_ParseConfiguration(void);
jrsikken 1:8b001f936bb0 88 USB_INT32S MS_TestUnitReady (void);
jrsikken 1:8b001f936bb0 89 USB_INT32S MS_ReadCapacity (USB_INT32U *numBlks, USB_INT32U *blkSize);
jrsikken 1:8b001f936bb0 90 USB_INT32S MS_GetMaxLUN (void);
jrsikken 1:8b001f936bb0 91 USB_INT32S MS_GetSenseInfo (void);
jrsikken 1:8b001f936bb0 92 USB_INT32S MS_Init (USB_INT32U *blkSize, USB_INT32U *numBlks, USB_INT08U *inquiryResult);
jrsikken 1:8b001f936bb0 93 USB_INT32S MS_Inquire (USB_INT08U *response);
jrsikken 1:8b001f936bb0 94
jrsikken 1:8b001f936bb0 95 void Fill_MSCommand ( USB_INT32U block_number,
jrsikken 1:8b001f936bb0 96 USB_INT32U block_size,
jrsikken 1:8b001f936bb0 97 USB_INT16U num_blocks,
jrsikken 1:8b001f936bb0 98 MS_DATA_DIR direction,
jrsikken 1:8b001f936bb0 99 USB_INT08U scsi_cmd,
jrsikken 1:8b001f936bb0 100 USB_INT08U scsi_cmd_len);
jrsikken 1:8b001f936bb0 101 #endif