Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
rtcalarm.c
Package: arm_exam.rar [view]
Upload User: mhstny
Upload Date: 2022-08-05
Package Size: 793k
Code Size: 3k
Category:
ARM-PowerPC-ColdFire-MIPS
Development Platform:
Unix_Linux
- #include "2410lib.h"
- #include "2410addr.h"
- #include "def.h"
- char *week[8] = { "","SUN","MON", "TUES", "WED", "THURS","FRI", "SAT" } ;
- int year,month,date,weekday,hour,min,sec;
- int enable_beep = 1;
- extern void Buzzer_PWM_Run(void);
- void __irq IsrAlarm(void);
- void __irq Tick_Isr(void);
- //设置RTC ALARM 时间
- void setRTCalm(U8 almyear,U8 almmon,U8 almdate,
- U8 almhour,U8 almmin,U8 almsec)//年、月、日、时、分、秒
- { rRTCCON=0x0001;
- rALMYEAR = almyear;
- rALMMON = almmon;
- rALMDATE = almdate;
- rALMHOUR = almhour;
- rALMMIN = almmin;
- rALMSEC = almsec;
- rRTCCON = 0; //disable RTC write
- }
- //置时钟定时时间
- void setRTCtime(U8 wRTCyear,U8 wRTCmon,U8 wRTCdate,
- U8 wRTCday,U8 wRTChour,U8 wRTCmin,U8 wRTCsec)//年、月、日、星期、时、分、秒
- {
- rRTCCON=0x01;
- rBCDYEAR = wRTCyear;
- rBCDMON = wRTCmon;
- rBCDDATE = wRTCdate;
- rBCDDAY = wRTCday;
- rBCDHOUR = wRTChour;
- rBCDMIN = wRTCmon;
- rBCDSEC = wRTCsec;
- rRTCCON = 0x00; //disable RTC write
- }
- //open rtc
- void OpenRtc(void)
- {
- pISR_TICK=(unsigned)Tick_Isr;
- rTICNT=0xFF;//Tick time interrupt enable;Tick time count value=127
- EnableIrq(BIT_TICK);//open RTC TICK INTERRUPT
- }
- //close rtc
- void CloseRtc(void)
- {
- rTICNT &= ~(1<<7);
- DisableIrq(BIT_TICK);
- }
- //open rtc alarm
- void OpenAlarm()
- {
- pISR_RTC = (unsigned)IsrAlarm;
- ClearPending(BIT_RTC);
- rRTCALM = (0x7f); //enable alarm
- EnableIrq(BIT_RTC);
- }
- //close rtc alarm
- void CloseAlarm(void)
- {
- rRTCALM = 0; //disable alarm
- DisableIrq(BIT_RTC);
- }
- // get rtc
- void Get_Rtc(void)
- {
- rRTCCON = 0x01; //RTC读写使能,选择BCD时钟、计数器,无复位,1/32768
- if (rBCDYEAR == 0x99)
- year = 0x1999;
- else
- year = 0x2000 + rBCDYEAR;
- month=rBCDMON;
- date=rBCDDATE;
- weekday=rBCDDAY;
- hour=rBCDHOUR;
- min=rBCDMIN;
- sec=rBCDSEC;
- rRTCCON = 0x0; //RTC读写禁止,选择BCD时钟、计数器,无复位,1/32768
- }
- /****************************************************/
- void xmain(void)
- {
- ChangeClockDivider(1,1);
- ChangeMPllValue(0xa1,0x3,0x1);
- Port_Init();
- Uart_Select(0);
- Uart_Init(0,115200);
- Uart_Printf("the main is runningn");
- setRTCalm(06,04,15,1,5,1);//年、月、日、时、分、秒
- setRTCtime(06,04,15,2,1,4,29);//年、月、日、星期、时、分、秒
- OpenAlarm();
- OpenRtc();
- while(1);
- // Buzzer_PWM_Run();
- }
- void __irq IsrAlarm(void)
- {
- ClearPending(BIT_RTC);
- Uart_Printf("s3c244A RTCALM oucer n");
- Buzzer_PWM_Run();
- }
- void __irq Tick_Isr(void)
- {
- Get_Rtc();
- Uart_Printf("RTC TIME : %4x-%02x-%02x - %s - %02x:%02x:%02xn",year,month,date,week[weekday],hour,min,sec);
- ClearPending(BIT_TICK);
- }