📄 Ȧ-
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**------File Info-----------------------------------------------------------------------------------------
** File name: main.c
** Latest modified Date: 2008-07-22
** Latest Version: 1.0
** Descriptions: Something about this file
**
**--------------------------------------------------------------------------------------------------------
** Created by: 张展威
** Created date: 2008-07-22
** Version: 1.0
** Descriptions:
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#include "main.h"
/*
** 定义Timer
*/
#define T0_A TIMER0_BASE , TIMER_A
#define T0_CFG_32_PER TIMER0_BASE , TIMER_CFG_32_BIT_PER
#define T0_A_INT_TIMEOUT TIMER0_BASE , TIMER_TIMA_TIMEOUT
/*********************************************************************************************************
定义全局的系统时钟变量
*********************************************************************************************************/
volatile unsigned long GulSysClock = 12000000UL;
ZOOMINFO GsImgSizeInfo;
ZOOMINFO *GpsImgInfo;
#define BUFFER_LENGTH (256)
INT16U GuiOutBuf[BUFFER_LENGTH];
#ifndef __USE_IDM
#if (BUFFER_LENGTH < (240 * 320))
#error The array length of GuiOutBuf[] at least 240 *320 !
#endif
#else
#if (BUFFER_LENGTH < 256)
#error The array length of GuiOutBuf[] at least 256 !
#endif
#endif
volatile INT32U GulDelayMs;
/*********************************************************************************************************
** 示例图片列表
*********************************************************************************************************/
const INT8U * GpucPicture[]={
(INT8U *)GucGril,
(INT8U *)GucFlower,
(INT8U *)GucGrassland,
(INT8U *)GucLibrary,
(INT8U *)GucSky,
// (INT8U *)GucStar100,
};
/*********************************************************************************************************
主函数(程序入口)
*********************************************************************************************************/
int main(void)
{
volatile INT32U ulTimer;
INT16U * puiOutBuf;
INT16U i,j;
RECTANGLE zoon = {0,0,239,319,0,0}; /* 定义一矩形显示区域 */
jtagWait(); /* 防止JTAG失效,重要! */
sysInit(); /* 系统初始化 */
GpsImgInfo =& GsImgSizeInfo;
puiOutBuf = &GuiOutBuf[0];
Formike240x320x16_ILI9320Init(); /* 显示屏初始化 */
Formike240x320x16_ILI9320BacklightOn(); /* 点亮背景灯 */
j = sizeof(GpucPicture)/4; /* 注意:sizeof()返回的是字节数 */
lcmClr((tRectangle *)&zoon, GUIBACKCOLOR); /* 初始化zone区域 */
writeString("基于Luminary的JPEG图片浏览器", 8, 100,IDMCOLOR(RED));
delayMs(2000); /* 精确延时2S */
while (1) {
for (i = 0; i < j; i++) {
lcmClr((tRectangle *)&zoon, JPEGBACKCOLOR); /* 初始化zone区域 */
if (jpgDecode((INT8U *)GpucPicture[i], GpsImgInfo, puiOutBuf) == false) {
/* jpg图片解码并显示 */
lcmClr((tRectangle *)&zoon, GUIBACKCOLOR); /* 初始化zone区域 */
writeString("解码错误!", 80, 100,IDMCOLOR(RED));
//ledOn(LED3);
}
//ledToggle(LED1);
delayMs(2000); /* 精确延时2S */
}
}
}
/*********************************************************************************************************
** 定时器的中断服务函数
** 每毫秒中断一次
*********************************************************************************************************/
void Timer0A_ISR(void)
{
TimerIntClear(T0_A_INT_TIMEOUT); /* 清除定时器超时中断,重要! */
if (GulDelayMs < 4294967295) {
GulDelayMs++; /* 在delayMs()函数中清零,用于 */
/* 精确延时 */
}
}
/*********************************************************************************************************
精确延时函数 GulDelayMs由定时器中断每1ms加1
*********************************************************************************************************/
void delayMs(unsigned long ulVal)
{
GulDelayMs = 0;
while (GulDelayMs < ulVal);
}
/*********************************************************************************************************
LCM清屏函数
*********************************************************************************************************/
void lcmClr(tRectangle *psZone,unsigned long ulValue)
{
psZone->uiXMin = 0;
psZone->uiYMin = 0;
psZone->uiXMax = 239;
psZone->uiYMax = 319;
psZone->uiXinZoon = 0;
psZone->uiYinZoon = 0;
Formike240x320x16_ILI9320RectFill((void *)0, psZone, ulValue); /* 画一矩形 */
}
/*********************************************************************************************************
定时器初始化
*********************************************************************************************************/
void timer0Init(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_TIMER0); /* 使能定时器模块 */
TimerConfigure(T0_CFG_32_PER); /* 配置定时器为32位周期定时器 */
TimerLoadSet(T0_A , GulSysClock/1000); /* 设置定时器初值 */
TimerIntEnable(T0_A_INT_TIMEOUT); /* 使能定时器超时中断 */
IntEnable(INT_TIMER0A); /* 使能定时器中断 */
IntMasterEnable(); /* 使能处理器中断 */
TimerEnable(T0_A); /* 使能定时器计数 */
}
/*********************************************************************************************************
系统初始化
*********************************************************************************************************/
void sysInit(void)
{
INT32U i,j;
SysCtlLDOSet(SYSCTL_LDO_2_75V); /* 设置LDO输出电压 */
SysCtlClockSet(SYSCTL_USE_PLL | /* 系统时钟设置,采用主振荡器 */
SYSCTL_OSC_MAIN |
SYSCTL_XTAL_6MHZ |
SYSCTL_SYSDIV_4);
GulSysClock = SysCtlClockGet(); /* 获取系统时钟,单位:Hz */
j = sizeof(GuiOutBuf)/2; /* 注意sizeof()返回的是字节数 */
for (i = 0; i < j; i++) {
GuiOutBuf[i] = 0xFFFF;
}
timer0Init(); /* 定时器初始化 */
}
/*********************************************************************************************************
防止JTAG失效
*********************************************************************************************************/
void jtagWait(void)
{
INT32U GulDelayMs = 2000;
SysCtlPeriEnable(KEY_PERI); /* 使能KEY所在的GPIO端口 */
GPIOPinTypeIn(KEY_BASE , KEY_PIN); /* 设置KEY所在管脚为输入 */
while (GulDelayMs--) {
;
}
SysCtlPeriDisable(KEY_PERI); /* 禁止KEY所在的GPIO端口 */
}
/*********************************************************************************************************
** End of File
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -