150 likes | 181 Views
This calendar alarm app by Sydney Tang features eight alarm events, direct data entry, and a creative design. Top-level views, control features, and resource utilization make it user-friendly. The app tracks time and date efficiently using cascaded counters and a Julian calendar. Enhancements include upgraded calendars, weekday auto-select, and more event types with user-entered descriptions.
E N D
The Calendar Alarm Sydney Tang Su-tarn Lim Chen-song Qin
Overview • Introduction • Demo • Design • Enhancements
Key Features • View the time and date, including the weekday • Program up to eight alarm events • Enter data directly
Design Overview • Top-level view • Control • Time and Date • Keypad • Display • Resource utilization
Control • Contains 3 state machines • User interface • LCD state • LCD handshaking • Manages memory for event programming • Keeps track of time and date
Time and Date • Implemented by cascaded counters • Month counter has a variable maximum value • Uses Julian Calendar
Resource Utilization • Total logic cell usage > 95% • Lessons learned: • The cost of UI • Data-entry error checking: 6-7% • Showing variable text: 14% • Formatting the display: 10-20% • The value of modularity
Enhancements • Upgrade from Julian to Gregorian Calendar • Auto-select weekday • Add more types of events • once only • yearly • daily • Allow user-entered event descriptions
Getting the day of the week • Lookup table • 400 elements for Gregorian • 28 elements for Julian • Nasty formula* • W = (k + floor(2.6m - 0.2) - 2C + Y + floor(Y/4) + floor(C/4)) mod 7 • Let the user supply it *source: sci.math FAQ
Calendar schemes Which of these are leap years? • 1900 • 1998 • 1999 • 2000 • 2100 • 2400 • It depends on the Calendar you use