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.
Revision 0:11cc29f22037, committed 2015-11-16
- Comitter:
- manitou
- Date:
- Mon Nov 16 16:56:32 2015 +0000
- Commit message:
- LPC1768 RTC freq check with WDT
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Nov 16 16:56:32 2015 +0000 @@ -0,0 +1,57 @@ +// use WDT to measure drift of RTC and IRC +// seems WDT ISR will only fire once +#include "mbed.h" + +DigitalOut led1(LED1); +uint32_t ticks; + +void kick() { + __disable_irq(); + LPC_WDT->WDFEED = 0xAA; + LPC_WDT->WDFEED = 0x55; + __enable_irq(); +} + +void isr_wdt(void) { + ticks++; + led1 = 1; + LPC_WDT->WDMOD |= (1<<3); + // LPC_WDT->WDMOD &= ~(1<<2); + // kick(); +} + +void wdt_init() { + LPC_WDT->WDCLKSEL = 0x2; // Set CLK src 0 IRC 1 PCLK 2 RTC + // uint32_t clk = SystemCoreClock / 16; // WD has a fixed /4 prescaler, PCLK default is /4 + LPC_WDT->WDTC = 0xfffffff; // max countdown + LPC_WDT->WDMOD = 0x01; // enable but no reset + NVIC_SetVector(WDT_IRQn, (uint32_t)&isr_wdt); + NVIC_ClearPendingIRQ(WDT_IRQn); + NVIC_EnableIRQ(WDT_IRQn); + kick(); +} + +int main() { + uint32_t t,t0=0,us,us0,prev; + int ppm; + Timer tmr; + tmr.start(); + printf("hello %x\n",LPC_WDT->WDMOD); + wait(1.0); + wdt_init(); + prev=LPC_WDT->WDTV; + while(1) { + t=LPC_WDT->WDTV; + us = tmr.read_us(); + if (t0==0 || t0 == 255) { + t0 = t; + us0 = us; + } + double tf = (t0-t)/8192.; // /8192 for rtc 1000000 for IRC + double secs = 1.e-6*(us-us0); + ppm = 1.e6*(tf-secs)/secs; + printf("ticks %d %d %u %d us %x %d ppm \n",ticks,prev-t,t0-t,us-us0,t,ppm); + prev=t; + wait(2.0); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Nov 16 16:56:32 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/da0ca467f8b5 \ No newline at end of file