ImageVerifierCode 换一换
格式:DOCX , 页数:54 ,大小:26.40KB ,
资源ID:5905020      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5905020.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(闹钟裸奔核心代码.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

闹钟裸奔核心代码.docx

1、闹钟裸奔核心代码/*NAME: u2440mon.cDESC: u2440mon entry point,menu,download */#define GLOBAL_CLK 1#define REQCNT 30#define ADCPRS 9#define LOOP 1void _irq AdcTsAuto(void);int count = 0;volatile int xdata, ydata;/extern volatile int xdata, ydata;/extern int count;/volatile bool RTC_flag;#include #include #inc

2、lude def.h#include option.h#include 2440addr.h#include 2440lib.h#include 2440slib.h#include mmu.h#include profile.h#include memtest.h#include LCD_TFT.h/我添加的一句,消除了编译错误Paint_Bmp(0, 0, 480, 272, TQ_LOGO_480272);#include stdarg.h#includecstm_lcd.h#define X_NULL (0UL)U8 g_type;extern char Image$RO$Limit;

3、extern char Image$RO$Base;extern char Image$RW$Limit;extern char Image$RW$Base;extern char Image$ZI$Limit;extern char Image$ZI$Base;extern unsigned char _CHS; /我添加的字库实验extern unsigned char _VGA;void Lcd_PutASCII(unsigned int x, unsigned int y, unsigned char ch, unsigned int c, unsigned int bk_c, uns

4、igned int st); /英文void Lcd_PutHZ(unsigned int x, unsigned int y, unsigned short int QW, unsigned int c, unsigned int bk_c, unsigned int st); /中文void Lcd_printf(unsigned int x, unsigned int y, unsigned int c, unsigned int bk_c, unsigned int st, char *fmt, .); /输出void Isr_Init(void);void HaltUndef(voi

5、d);void HaltSwi(void);void HaltPabort(void);void HaltDabort(void);void ClearMemory(void);void Clk0_Enable(int clock_sel);void Clk1_Enable(int clock_sel);void Clk0_Disable(void);void Clk1_Disable(void);extern void Lcd_TFT_Init(void);extern void KeyScan_Test(void);extern void Lcd_ClearScr(U32 c);exter

6、n void Lcd_ClearScr1(int x0, int y0, int h, int l, U32 c);extern void Glib_Rectangle(int x1, int y1, int x2, int y2, int color);extern void Glib_Line(int x1, int y1, int x2, int y2, int color);volatile U32 downloadAddress;void(*restart)(void) = (void(*)(void)0x0;volatile unsigned char *downPt;volati

7、le U32 downloadFileSize;volatile U16 checkSum;volatile unsigned int err = 0;volatile U32 totalDmaCount;volatile int isUsbdSetConfiguration;int download_run = 0;U32 tempDownloadAddress;int menuUsed = 0;extern char Image$RW$Limit;U32 *pMagicNum = (U32*)Image$RW$Limit;int consoleNum;int a, b, c, d, e;s

8、tatic U32 cpu_freq;static U32 UPLL;static void cal_cpu_bus_clk(void) U32 val; U8 m, p, s; int start = 0; val = rMPLLCON; m = (val 12) &0xff; p = (val 4) &0x3f; s = val &3; /(m+8)*FIN*2 不要超出32位数! FCLK = (m + 8)*(FIN / 100) *2) / (p + 2)*(1 1) &3; p = val &1; val = rCAMDIVN; s = val 8; switch (m) case

9、 0: HCLK = FCLK; break; case 1: HCLK = FCLK 1; break; case 2: if (s &2) HCLK = FCLK 3; else HCLK = FCLK 2; break; case 3: if (s &1) HCLK = FCLK / 6; else HCLK = FCLK / 3; break; if (p) PCLK = HCLK 1; else PCLK = HCLK; if (s &0x10) cpu_freq = HCLK; else cpu_freq = FCLK; val = rUPLLCON; m = (val 12) &

10、0xff; p = (val 4) &0x3f; s = val &3; UPLL = (m + 8) *FIN) / (p + 2)*(1 1): UPLL;/*我添加的一段程序*void RTC_Time_Set(void) rRTCCON = 1; /RTC read and write enable rBCDYEAR = 0x10; /年 rBCDMON = 0x01; /月 rBCDDATE = 0x28; /日 rBCDDAY = 0x05; /星期 rBCDHOUR = 0x12; /小时 rBCDMIN = 0x00; /分 rBCDSEC = 0x00; /秒 rRTCCON

11、 &= 1; /RTC read and write disable /RTC_flag=false; /这是我添加的,用于标记时钟设置时间。/*我添加的一段程序*double sin(double x) int n; double i = 0.0000001; double j = 0; double k; k = x; n = 1; do j = j + k; n+; k = - k * x * x / (2 *n - 1) / (2 *n - 2); while (k i | - k i); return (j);double cos(double x) int n; double i

12、= 0.0000001; double j = 0; double k; k = 1; n = 1; do j = j + k; k = - k * x * x / (2 *n) / (2 *n - 1); n+; while (k i | - k i); return (j);void Main(void) double aas, aam, aah; int ssbit, sgbit, msbit, mgbit, hsbit, hgbit; double xxs, yys, xxm, yym, xxh, yyh; double xxs1, yys1, xxm1, yym1, xxh1, yy

13、h1; /这句调适很重要 int secondp, minutep, hourp; int Alarm_flag; int Alm_count; int x0, y0; int x1, y1;/-add bgn- U32 pix_x,pix_y,offset_x,offset_y;/-add end- U16 year, rBCDYEAR1; U8 month, day; / week U8 hour, minute, second, sec_cfg, hour_cfg, min_cfg; U8 rBCDYEARS, rBCDYEARG; U8 rBCDMON1, rBCDDATE1, rBC

14、DHOUR1, rBCDMIN1, rBCDSEC1; /闹钟临时变量 char *mode; int i, ii; U8 key; U32 mpll_val = 0; /U32 divn_upll = 0 ; / #if ADS10 / _rt_lib_init(); /for ADS 1.0 / #endif Port_Init(); Isr_Init(); i = 2; /dont use 100M! switch (i) case 0: /200 key = 12; mpll_val = (92 12) | (4 4) | (1); break; case 1: /300 key =

15、13; mpll_val = (67 12) | (1 4) | (1); break; case 2: /400 key = 14; mpll_val = (92 12) | (1 4) | (1); break; case 3: /440! key = 14; mpll_val = (102 12) | (1 4) | (1); break; default: key = 14; mpll_val = (92 12) | (1 12) &0xff, (mpll_val 4) &0x3f, mpll_val &3); ChangeClockDivider(key, 12); cal_cpu_

16、bus_clk(); consoleNum = 0; / Uart 1 select for debug. Uart_Init(0, 115200); Uart_Select(consoleNum); Beep(2000, 100);Uart_SendByte(n);Uart_Printf(n);Uart_Printf( TQ2440 Test Programn);Uart_Printf( n);Uart_Printf( Build time is: %s %sn, _DATE_ , _TIME_ ); /wangwang如果不删掉,pc串口依然可以工作Uart_Printf(n); rMIS

17、CCR = rMISCCR &(1 3); / USBD is selected instead of USBH1 rMISCCR = rMISCCR &(1 13); / USB port 1 is enabled. rDSC0 = 0x2aa; rDSC1 = 0x2aaaaaaa; /Enable NAND, USBD, PWM TImer, UART0,1 and GPIO clock, /the others must be enabled in OS! rCLKCON = 0xfffff0; MMU_Init(); / pISR_SWI = (_ISR_STARTADDRESS +

18、 0xf0); /for pSOS Led_Display(0x66); mode = DMA; Clk0_Disable(); Clk1_Disable(); mpll_val = rMPLLCON;#ifdef CSTM_LCD cstmLcd_init();#else Lcd_TFT_Init(); / LCD initial#endif download_run = 1; /The default menu is the Download & Run mode. rADCDLY = 50000; /Normal conversion mode delay about (1/3.6864

19、M)*50000=13.56ms rADCCON = (1 14) + (ADCPRS (270+offset_x) & xdata (320+offset_x) & ydata (210+offset_y) break; /返回键 /电子时钟/ if (xdata (0+offset_x) & ydata (70+offset_y) Lcd_ClearScr(0x0000); Paint_Bmp(0+offset_x, 0+offset_y, 320, 240, electro_320240); xdata = X_NULL; while (1) if (rBCDSEC != second)

20、 Alm_count+; if (0x2000 + rBCDYEAR = rBCDYEAR1 & rBCDMON = rBCDMON1 & rBCDDATE = rBCDDATE1 & rBCDHOUR = rBCDHOUR1 & rBCDMIN = rBCDMIN1 & rBCDSEC = rBCDSEC1) U16 freq = 800; Buzzer_Freq_Set(freq); /闹钟检查 if (Alm_count = 60) Buzzer_Stop(); if (xdata (0+offset_x) & ydata (30+offset_y) break; /切换键 if (xd

21、ata (260+offset_x) & ydata (210+offset_y) break; /返回键 /* 时间调整 bgn */ /小时调整 if (xdata (70+offset_x) & ydata (40+offset_y) & ydata (130+offset_x) & xdata (40+offset_y) & ydata (70+offset_y) rRTCCON = 1; rBCDMIN = 0x01 + rBCDMIN; if (rBCDMIN = 0x0A | rBCDMIN = 0x1A | rBCDMIN = 0x2A | rBCDMIN = 0x3A | rBCDMIN = 0x4A | rBCDMIN = 0x5A) rBCDMIN = rBCDMIN + 0x06; /wang我添加的代码,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1