Platform drivers for Mbed.

Dependents:   EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more

Committer:
Kjansen
Date:
Mon Nov 29 12:39:54 2021 +0000
Revision:
20:4951ea6abee5
Parent:
17:af1f2416dd26
The following changes were made:
1.) Modified udelay() function for generating more accurate smaller usec delays
2.) Implemented the irq_enable and irq_disable functions
3.) Removed the confusion b/w application created peripheral object and interrupt specific object
4.) Created PWM extra init structure and added PWM pin
5.) Added a module for timer and its related header file

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mahphalke 17:af1f2416dd26 1 /***************************************************************************//**
mahphalke 17:af1f2416dd26 2 * @file delay.cpp
mahphalke 17:af1f2416dd26 3 * @brief Implementation of Mbed specific delay functionality
mahphalke 17:af1f2416dd26 4 ********************************************************************************
mahphalke 17:af1f2416dd26 5 * Copyright (c) 2019 - 2021 Analog Devices, Inc.
mahphalke 17:af1f2416dd26 6 * All rights reserved.
mahphalke 17:af1f2416dd26 7 *
mahphalke 17:af1f2416dd26 8 * This software is proprietary to Analog Devices, Inc. and its licensors.
mahphalke 17:af1f2416dd26 9 * By using this software you agree to the terms of the associated
mahphalke 17:af1f2416dd26 10 * Analog Devices Software License Agreement.
mahphalke 17:af1f2416dd26 11 *******************************************************************************/
mahphalke 17:af1f2416dd26 12
mahphalke 17:af1f2416dd26 13 /******************************************************************************/
mahphalke 17:af1f2416dd26 14 /***************************** Include Files **********************************/
mahphalke 17:af1f2416dd26 15 /******************************************************************************/
mahphalke 17:af1f2416dd26 16
mahphalke 17:af1f2416dd26 17 #include <mbed.h>
mahphalke 17:af1f2416dd26 18
mahphalke 17:af1f2416dd26 19 // Platform drivers needs to be C-compatible to work with other drivers
mahphalke 17:af1f2416dd26 20 #ifdef __cplusplus
mahphalke 17:af1f2416dd26 21 extern "C"
mahphalke 17:af1f2416dd26 22 {
mahphalke 17:af1f2416dd26 23 #endif // _cplusplus
mahphalke 17:af1f2416dd26 24
mahphalke 17:af1f2416dd26 25 #include "delay.h"
mahphalke 17:af1f2416dd26 26
mahphalke 17:af1f2416dd26 27 /******************************************************************************/
mahphalke 17:af1f2416dd26 28 /********************** Macros and Constants Definitions **********************/
mahphalke 17:af1f2416dd26 29 /******************************************************************************/
mahphalke 17:af1f2416dd26 30
mahphalke 17:af1f2416dd26 31 /******************************************************************************/
mahphalke 17:af1f2416dd26 32 /************************ Functions Definitions *******************************/
mahphalke 17:af1f2416dd26 33 /******************************************************************************/
mahphalke 17:af1f2416dd26 34
mahphalke 17:af1f2416dd26 35 /**
mahphalke 17:af1f2416dd26 36 * @brief Generate microseconds delay.
mahphalke 17:af1f2416dd26 37 * @param usecs - Delay in microseconds.
mahphalke 17:af1f2416dd26 38 * @return None.
mahphalke 17:af1f2416dd26 39 */
mahphalke 17:af1f2416dd26 40 void udelay(uint32_t usecs)
mahphalke 17:af1f2416dd26 41 {
Kjansen 20:4951ea6abee5 42 /* wait_ns is more time efficient function compared to wait_us
Kjansen 20:4951ea6abee5 43 * Note: For higher values of delay (more than few msec), it is better to use
Kjansen 20:4951ea6abee5 44 * mdelay() function as no error/limit checking is done in this function */
Kjansen 20:4951ea6abee5 45 wait_ns(usecs * 1000);
mahphalke 17:af1f2416dd26 46 }
mahphalke 17:af1f2416dd26 47
mahphalke 17:af1f2416dd26 48 /**
mahphalke 17:af1f2416dd26 49 * @brief Generate miliseconds delay.
mahphalke 17:af1f2416dd26 50 * @param msecs - Delay in miliseconds.
mahphalke 17:af1f2416dd26 51 * @return None.
mahphalke 17:af1f2416dd26 52 */
mahphalke 17:af1f2416dd26 53 void mdelay(uint32_t msecs)
mahphalke 17:af1f2416dd26 54 {
mahphalke 17:af1f2416dd26 55 if (msecs) {
Kjansen 20:4951ea6abee5 56 thread_sleep_for(msecs);
mahphalke 17:af1f2416dd26 57 }
mahphalke 17:af1f2416dd26 58 }
mahphalke 17:af1f2416dd26 59
mahphalke 17:af1f2416dd26 60 #ifdef __cplusplus // Closing extern c
mahphalke 17:af1f2416dd26 61 }
mahphalke 17:af1f2416dd26 62 #endif // _cplusplus