mbed library sources with internal temperature sensor for nucleo f401

Committer:
elessair
Date:
Sat Jan 17 18:03:58 2015 +0000
Revision:
0:7e2bd16f80af
nucleo f401re internal temperature added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elessair 0:7e2bd16f80af 1 /* mbed Microcontroller Library
elessair 0:7e2bd16f80af 2 * Copyright (c) 2006-2013 ARM Limited
elessair 0:7e2bd16f80af 3 *
elessair 0:7e2bd16f80af 4 * Licensed under the Apache License, Version 2.0 (the "License");
elessair 0:7e2bd16f80af 5 * you may not use this file except in compliance with the License.
elessair 0:7e2bd16f80af 6 * You may obtain a copy of the License at
elessair 0:7e2bd16f80af 7 *
elessair 0:7e2bd16f80af 8 * http://www.apache.org/licenses/LICENSE-2.0
elessair 0:7e2bd16f80af 9 *
elessair 0:7e2bd16f80af 10 * Unless required by applicable law or agreed to in writing, software
elessair 0:7e2bd16f80af 11 * distributed under the License is distributed on an "AS IS" BASIS,
elessair 0:7e2bd16f80af 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
elessair 0:7e2bd16f80af 13 * See the License for the specific language governing permissions and
elessair 0:7e2bd16f80af 14 * limitations under the License.
elessair 0:7e2bd16f80af 15 */
elessair 0:7e2bd16f80af 16 #include "rtc_api.h"
elessair 0:7e2bd16f80af 17
elessair 0:7e2bd16f80af 18 #include <time.h>
elessair 0:7e2bd16f80af 19 #include "rtc_time.h"
elessair 0:7e2bd16f80af 20 #include "us_ticker_api.h"
elessair 0:7e2bd16f80af 21
elessair 0:7e2bd16f80af 22 #ifdef __cplusplus
elessair 0:7e2bd16f80af 23 extern "C" {
elessair 0:7e2bd16f80af 24 #endif
elessair 0:7e2bd16f80af 25 #if defined (__ICCARM__)
elessair 0:7e2bd16f80af 26 time_t __time32(time_t *timer)
elessair 0:7e2bd16f80af 27 #else
elessair 0:7e2bd16f80af 28 time_t time(time_t *timer)
elessair 0:7e2bd16f80af 29 #endif
elessair 0:7e2bd16f80af 30
elessair 0:7e2bd16f80af 31 {
elessair 0:7e2bd16f80af 32 #if DEVICE_RTC
elessair 0:7e2bd16f80af 33 if (!(rtc_isenabled())) {
elessair 0:7e2bd16f80af 34 set_time(0);
elessair 0:7e2bd16f80af 35 }
elessair 0:7e2bd16f80af 36 time_t t = rtc_read();
elessair 0:7e2bd16f80af 37
elessair 0:7e2bd16f80af 38 #else
elessair 0:7e2bd16f80af 39 time_t t = 0;
elessair 0:7e2bd16f80af 40 #endif
elessair 0:7e2bd16f80af 41
elessair 0:7e2bd16f80af 42 if (timer != NULL) {
elessair 0:7e2bd16f80af 43 *timer = t;
elessair 0:7e2bd16f80af 44 }
elessair 0:7e2bd16f80af 45 return t;
elessair 0:7e2bd16f80af 46 }
elessair 0:7e2bd16f80af 47
elessair 0:7e2bd16f80af 48 void set_time(time_t t) {
elessair 0:7e2bd16f80af 49 #if DEVICE_RTC
elessair 0:7e2bd16f80af 50 rtc_init();
elessair 0:7e2bd16f80af 51 rtc_write(t);
elessair 0:7e2bd16f80af 52 #endif
elessair 0:7e2bd16f80af 53 }
elessair 0:7e2bd16f80af 54
elessair 0:7e2bd16f80af 55 clock_t clock() {
elessair 0:7e2bd16f80af 56 clock_t t = us_ticker_read();
elessair 0:7e2bd16f80af 57 t /= 1000000 / CLOCKS_PER_SEC; // convert to processor time
elessair 0:7e2bd16f80af 58 return t;
elessair 0:7e2bd16f80af 59 }
elessair 0:7e2bd16f80af 60
elessair 0:7e2bd16f80af 61 #ifdef __cplusplus
elessair 0:7e2bd16f80af 62 }
elessair 0:7e2bd16f80af 63 #endif