Commit Graph

66 Commits

Author SHA1 Message Date
nnhy f372c5391b 主要三大对象的析构函数用不着 2015-08-19 02:49:55 +00:00
nnhy 764de2543b 避免RTC没有启动而造成死循环 2015-08-18 09:49:57 +00:00
nnhy 19b5afe95a 2015-08-13 09:02:26 +00:00
nnhy e1ecb1673e 小睡眠低功耗生效,但是电流减少并不多 2015-08-13 05:32:18 +00:00
nnhy 89ec0e620e 支持通过配置指定RTC使用内部时钟还是外部时钟。
STM32外部RTC时钟很难启动,GD32不会。
但是为了保存时间,又得使用外部时钟。
对于没有纽扣电池的产品,可以使用内部时钟,仅用于低功耗等操作。
2015-08-13 05:23:16 +00:00
nnhy 430c2de2c6 每次上电打开RTC之前,都需要选择好LSI/LSE,否则会死循环等待。
设置报警时间时,不能清零后重新设置ms,还是老办法在原来基础上相加才有效。
Sleep时,判断RTC是否开启了低功耗
2015-08-13 05:08:14 +00:00
nnhy 00cfba7f73 Time::Sleep睡眠计算余量有误
RTC使用内部LSI
2015-08-13 03:58:43 +00:00
nnhy d6ca047052 10ms的休眠就允许进入低功耗模式 2015-08-12 15:30:32 +00:00
nnhy bf59b590c8 调试时,需要重新配置一次RTC,让它按毫秒来工作 2015-08-12 15:18:05 +00:00
nnhy d520e195bf 经过测试GD32F103VE的RTC可以保存时间 2015-08-12 14:54:37 +00:00
nnhy 76d8b7ff17 重构系统时钟架构,RTC独立,编译通过,未测试 2015-08-12 14:33:05 +00:00
nnhy d78cc3dc79 借助RVO优化系统当前时间的返回值 2015-08-12 13:31:55 +00:00
nnhy d6707ef77b 修改Time.Sleep,让它在死循环等待时,可根据外部条件退出。
修改Task调度,让它可中断正在死循环的Sleep,马上进行下一回合任务调度
2015-08-05 15:17:33 +00:00
nnhy 66067c91db RTC兼容GD32F130,编译通过,未测试 2015-07-24 12:36:14 +00:00
nnhy 4025d98fcd 修正保存数据的BUG 2015-07-24 10:10:19 +00:00
nnhy 4d52bf095f 退出睡眠后,在警报中断里面配置频率,关闭全局中断,避免这个时候有其它任务打断。
经过测试,貌似还是有代码在较低频率执行,串口收到了数据,但是无法显示出来,猜测是因为频率不同导致波特率错误
2015-07-24 09:39:17 +00:00
nnhy f4338bc7ef 加上SYSCLKConfig_STOP,就可以正确的睡眠并且定时唤醒了 2015-07-24 09:04:10 +00:00
nnhy 7631d93ab6 系统启动之前,不要做高级任务调度 2015-07-24 07:50:13 +00:00
nnhy 5745e4840f 从Time分离RTC,某些设备可能并不需要RTC时钟,经过分离以后,如果未使用RTC,其代码不参与编译。
成功解决Alarm中断没有收到的问题,原来要打开EXIT17。
睡眠测试仍然失败,RTC保存时间的测试成功通过。
2015-07-24 07:34:12 +00:00
nnhy 5a5a3a6a9a 任务空闲时,暂停系统,进入低功耗模式,编译通过,测试失败,怀疑GD32芯片损坏 2015-07-23 14:26:28 +00:00
nnhy f41a4312a2 STM32F0/STM32F4的RTC用法居然一样 2015-07-23 13:41:01 +00:00
nnhy 1e3d53fc6e RTC时间兼容STM32F4,编译通过,未测试 2015-07-23 13:34:41 +00:00
nnhy 3c02868655 从ApolloOS移植RTC时钟保持的代码过来,GD32F103VE编译通过,测试SmartOS可运行,但是没有使用纽扣电池测试 2015-07-23 12:51:11 +00:00
nnhy d0e33af967 把系统时钟中断间隔设到最大,此举可能影响Thread的抢占式调度,网关C测试通过,未测试Thread 2015-07-18 02:45:28 +00:00
nnhy abbc3abcc0 逐步减少Time.Current的使用 2015-07-17 09:40:49 +00:00
nnhy f3dfa825c2 高精度时间轮 2015-07-17 09:02:55 +00:00
nnhy 6c1a05349a TimeCost借助滴答数,精确计算耗时数 2015-07-17 08:54:56 +00:00
nnhy c4329ebfb6 时间默认拷贝构造函数足够 2015-07-02 03:57:33 +00:00
nnhy 1fcd0f0d80 增加DateTime构造函数 2015-06-23 09:57:34 +00:00
nnhy 4f17a22ab1 增加代码时间类,用于统计代码执行时间 2015-06-23 08:21:30 +00:00
nnhy 052dc14a66 改进时间轮,支持系统级休眠,调度其它任务 2015-06-23 07:53:22 +00:00
nnhy d95c7f18aa 修正计算当前微秒时间时没有加上上一次累加剩余量的错误 2015-06-23 01:57:26 +00:00
nnhy d689433802 SystemTime调整为DateTime 2015-06-17 06:24:50 +00:00
WangQiang e1e22d3646 转 UTF8 编码 2015-01-19 05:25:44 +00:00
Stone a5c30b27cf 修正毫秒的累加错误 2014-10-20 02:12:33 +00:00
Stone 672e3ac0a5 2014-10-20 01:52:46 +00:00
Stone 47b7f06d03 使用ulong表示总毫秒,部分需要的情况可以转为uint。
修正计算每中断滴答数时没有除以8的错误,那将导致滴答中断过慢
2014-10-17 12:26:29 +00:00
Stone 30bcea77fc 系统时钟增加全局毫秒数字段,避免需要毫秒数时采用又慢又容易出错的大整数除法 2014-10-17 12:02:45 +00:00
Stone 6e0727217f 重构系统、时间、线程三者的关系,Sleep优先使用线程级睡眠 2014-09-18 16:33:14 +00:00
Stone 4698b4481f 抢占式任务调度,使用系统滴答作为时间分片提供源 2014-09-16 17:14:12 +00:00
Stone 004fafd177 为了确保Time可以稳定中断,Current将不再操作SysTick的寄存器 2014-09-16 17:05:13 +00:00
Stone bf5dfeefb8 增加Time.InterruptsPerSecond,每秒的中断数,时间片抢占式系统调度算法基于此值调度,也即是线程时间片,默认100 2014-09-16 16:01:10 +00:00
Stone 4d5261ff3f 计算有问题,暂时还是先除以8吧 2014-09-12 16:47:10 +00:00
Stone ca687adb33 用系统频率作为滴答分频,而不是简单8分频 2014-09-10 18:04:45 +00:00
Stone f92f0f734a 优化掉一些长整型乘除法 2014-09-09 12:13:23 +00:00
Stone 6a1e884962 // 使用双计数时钟,Ticks累加滴答,Microseconds累加微秒,_usTicks作为累加微秒时的滴答余数
// 这样子可以避免频繁使用微秒时带来长整型乘除法
2014-09-09 11:29:31 +00:00
Stone 23b5d3ac26 不能通过累加的方式计算下一次时间,因为可能系统时间被调整 2014-09-09 07:33:20 +00:00
Stone 913135d14a 修正毫秒转系统时间时整型溢出的BUG,该BUG倒置系统时间最大只能表示1小时11分34秒 2014-09-09 07:09:48 +00:00
Stone ca5dc36cc7 解决运算溢出的问题 2014-08-30 16:11:45 +00:00
Stone 5b53a1757b 改进内存检查方式 2014-08-30 11:05:03 +00:00