On Sun, Jul 18, 2010 at 8:27 AM, vasile surducan <[email protected]>wrote:
> > > On Sun, Jul 18, 2010 at 4:55 AM, Rob Hamerling <[email protected]>wrote: > >> >> Hi Vasile, >> >> >> I don't have a library in jallib acception, however routines below works >>> OK for me. >>> >> >> If you don't mind I have some comments. >> >> >> >> const bit RTC_enabled = 1 >>> const bit RTC_disabled = 0 >>> >>> procedure RTC_writing (bit in value) is >>> RTCCFG_RTCWREN = value -- 1 enabled, 0 disabled >>> EECON2 = 0x55 -- \ required sequence >>> EECON2 = 0xAA -- / >>> RTCCFG_RTCWREN = 1 ; allow writting to RTCCFG >>> end procedure >>> >> >> I think this procedure doesn't work as you think/hope. >> > > It works OK, my RTCC is in test since about a month, however you may change > it as you wish to, or as Kyle said. > > >> >> 1. >> Kyle recommended to use >> 'asm bank RTCCFG' >> in stead of your >> RTCCFG_RTCWREN = value >> to prepare for accessing RTCCFG after EECON2 >> >> 2. >> Your statement sets the bank for RTCCFG properly, but the result of the >> procedure is always RTCWREN = '1' (the last statement), regardless if called >> with 'value' 0 or 1. >> >> >> >> >> procedure read_time () is >>> -- read hour >>> RTCCFG_RTCPTR1 = 0 >>> RTCCFG_RTCPTR0 = 1 >>> if RTCCFG_RTCSYNC == 0 then >>> hour = RTCVALL >>> end if >>> ;H2 = (hour & 0b0000_1111) + 0x30 >>> ;H1 = ((hour >> 4) & 0b0000_1111) + 0x30 >>> -- read minute >>> RTCCFG_RTCPTR1 = 0 >>> RTCCFG_RTCPTR0 = 0 >>> if RTCCFG_RTCSYNC == 0 then >>> minute = RTCVALH >>> end if >>> ;M2 = (minute & 0b0000_1111) + 0x30 >>> ;M1 = ((minute >> 4) & 0b0000_1111) + 0x30 >>> -- read seconds >>> RTCCFG_RTCPTR1 = 0 >>> RTCCFG_RTCPTR0 = 0 >>> if RTCCFG_RTCSYNC == 0 then >>> second = RTCVALL >>> end if >>> ;S2 = (second & 0b0000_1111) + 0x30 >>> ;S1 = ((second >> 4) & 0b0000_1111) + 0x30 >>> end procedure >>> >> >> 3. You simply skip reading a RTCVALL/H register when RTCSYNC is '1'. >> That might give strange results! >> > None. > >> 4. >> You don't make use of the automatic decrementation of the RTCPTR<1,0> >> bits (not required but is shorter). >> >> Except for item 3 my comments may not prevent your application from >> working properly. And even 3. might not harm when you read often enough. So >> it is more a matter of 'clean' programming. >> > Rob, fell free to make it nice. But as you saw a nice keypad routine is not enough to run properly... :) > >> Thanks again for publishing your source! >> I have my RTC library working pretty well. I need to do some cleanup and >> test the alarm-related parts before making it available in Jallib. When >> somebody urgently needs the time and date functions I might publish the >> library without alarm functions and save that for a later release. >> >> >> Regards, Rob. >> >> -- >> Rob Hamerling, Vianen, NL (http://www.robh.nl/) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "jallib" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<jallib%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/jallib?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jallib?hl=en.
