历史上的今天
今天是:2024年11月16日(星期六)
2019年11月16日 | ARM历程十——毕业设计(钟表)
2019-11-16
#include "S3C2440addr.h"
#include "math.h"
#define pi 3.141593
U16 SEC, MIN, HOUR, TmpSEC_10, TmpMIN_10, TmpHOUR_10,TmpSEC_1,TmpMIN_1,TmpHOUR_1;
U16 SEC_x, SEC_y, MIN_x, MIN_y, HOUR_x, HOUR_y, OldMIN=10000;
U16 PandColor_big[30][30];
U16 PandColor_sml[30][30];
extern U16 Flag;
extern U16 fz;
extern const unsigned char gImage_goback[7442];
extern const unsigned char gImage_yy[147968];
extern const unsigned char gImage_back[261120];
void DiyClk(void)
{
U16 k;
LCD_Img(gImage_back); //画背景图片
Paint_Clock(52,0,272,272,gImage_yy); //画钟表面板
Paint_Bmp_Rnd(200,95,61,61,2,30,gImage_goback);//画返回图标(右下角)
ReadPand( 347, 135, 5, 1 );//读以点(347,135)为圆心 5 为半径的
//像素点的信息,存入数组PandColor_big中
ReadPand( 311, 56, 5, 0 ); //读以点(347,135)为圆心 5 为半径的
//像素点的信息,存入数组PandColor_sml中
fz = 1 ;
while(Flag == 1) //Flag == 1表示进入时针子程序
{
//////////////////////////////////////////////////////////////
TmpSEC_1 = rBCDSEC & 0x0f;
TmpSEC_10 = rBCDSEC >> 4;
TmpMIN_1 = rBCDMIN & 0x0f;
TmpMIN_10 = rBCDMIN >> 4;
TmpHOUR_1 = rBCDHOUR & 0x0f;
TmpHOUR_10 = rBCDHOUR >> 4;
TmpHOUR_10 &= 0x0003;
SEC = (TmpSEC_10*10 + TmpSEC_1);
MIN = (TmpMIN_10*10 + TmpMIN_1);
HOUR = (TmpHOUR_10*10 + TmpHOUR_1);//把时间处理成常见的int
//变量形式,方便计算转角
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
SEC_x = 240 + (int)(107*sin(pi*SEC/30.0));
SEC_y = 135 - (int)(107*cos(pi*SEC/30.0));
MIN_x = 240 + (int)(90*sin(pi*MIN/30.0));
MIN_y = 135 - (int)(90*cos(pi*MIN/30.0));//把角度转化为坐标
HOUR_x = 240 + (int)(60*sin(pi*(30*HOUR+MIN/2)/180));
HOUR_y = 135 - (int)(60*cos(pi*(30*HOUR+MIN/2)/180));
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
if ( MIN != OldMIN ) //每分钟刷新一次钟面
{
Paint_Clock(52,0,272,272,gImage_yy); //显示表盘图片
heavyLine( MIN_x, MIN_y,0x3e0); //分针的位置和着色
heavyLine( HOUR_x, HOUR_y,0x01f); //时针的位置和着色
Pand(240,135,8,0x9871); //钟的中心位置显示一个
//半径为8 着色为0x9871
//的小圆斑
}
///////////////////////////////////////////////////////////////
RedPix( SEC_x, SEC_y ); //秒,在对应位置打点
if ( SEC % 5 == 0 )
WritePand( SEC_x, SEC_y, 5 ,0 );//将数组PandColor_big中的像素信息写入
//以(SEC_x,SEC_y)为圆心5 为半径的显示
//缓冲区内
else
WritePand( SEC_x, SEC_y, 5 ,1 );//将数组PandColor_sml中的像素信息写入
//以(SEC_x,SEC_y)为圆心5 为半径的显示
//缓冲区内
OldMIN = MIN ;
///////////////////////////////////////////////////////////////////
}
OldMIN = 10000;
fz = 0 ;
}
上一篇:ARM历程十一—(拨打电话)
下一篇:ARM历程九-ARM中断
史海拾趣
|
◎ 丹佛斯变频器能带同步电机吗? 可以。VLT5000,VLT2800的参数101应设为"特殊电机特性",通过设置参数422到432的电压/频率曲线来满足电机调速性能。电机电压 / 频率特性可从电动机生产商处获得或通过经验调整。 ◎ 一台变频器可带多台电 ...… 查看全部问答> |
|
据我的了解,wince的显示驱动在BootLoader和oal都要做,但是我为了让LOGO能够一直显示图像到显示CE桌面,就把OAL层的ResetDisplay给注释掉了,运行效果还是不错,但是偶尔出现现象:CE起来了但是始终见不到桌面,而且还有零星的白条纹!估计是OAL层 ...… 查看全部问答> |
|
-------------------------------------------------------------------------------- 我用的收音机芯片是CL6017S,它的01h制度寄存器的低10位显示的是频率,它的值和04h低10位的值相等,频率单元是10KHz,初始化后的电台频道是0x15E;我的家台程 ...… 查看全部问答> |
|
现在在搞这个韦根26,头都大了,RFID读卡器输出的是韦根26,准备是接到RS485, 然后再转换为RS232再接到电脑上读取数据的。但是不知道韦根26输出的波特率是 多少,有哪位大哥对这个熟悉?告诉小弟,计算机上写程序读韦根26的输出的话该 怎么写呢 ...… 查看全部问答> |




