main.c
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 122 行
C
122 行
/*************************************************************************
*
* Used with ICCARM and AARM.
*
* (c) Copyright IAR Systems 2005
*
* File name : main.c
* Description : Define main module
*
* History :
* 1. Data : October, 10 2005
* Author : Stanimir Bonev
* Description : Create
*
* $Revision: 5609 $
**************************************************************************/
#include <intrinsics.h>
#include <stdio.h>
#include "init.h"
#include "drv_twi.h"
#include "drv_1523.h"
#include "s1d13806.h"
#include "sys_tmr.h"
//* Message buffer
char MsgBuffer[256];
#define S1D13806_BASE ((unsigned char *) BASE_EBI_CS3_ADDRESS )
#define S1D13806_DISP_MEM_BASE (((int)S1D13806_BASE) + ((int) 0x200000))
const GUI_BITMAP * Bmps[] =
{
&bm0, /*&bm1,&bm2, &bm3,*/ &bm4, /*&bm6,*/ &bm7,
};
#define BMPS_NUMB (sizeof(Bmps)/sizeof(GUI_BITMAP *))
#define _1_0_SEC 10000
/*************************************************************************
* Function Name: main
* Parameters: none
*
* Return: none
*
* Description: Main routine
*
*************************************************************************/
void main(void)
{
char message[64];
int i,initial_timeout;
const GUI_BITMAP * pBmp;
AT91PS_S1D13806_Desc s1d13806_base = (AT91PS_S1D13806_Desc) S1D13806_BASE;
USR_LED2_ON();
// Debug message
AT91F_DBGU_Printk("\n\rBasicBoot Successfull: Enter main()\n\r");
// Init AIC
AT91RM9200InitAIC();
// Init System timer resolution 100us
SysTmrInit(1);
// Init TWI interface
if(Twi_Init(100KHZ,0) == TwiOk)
{
sprintf (message, " \n\rTWI interface Init OK\n\r" );
}
else
{
sprintf (message, " \n\rrTWI interface Init failed\n\r" );
}
AT91F_DBGU_Printk(message);
// Enable interrupts.
__enable_interrupt();
// Init Clock generator
// 640 x 480 85Hz - 36.000 MHz
// 800 x 600 85Hz - 40.000 Mhz
// if (Ics1523_Init(CRT_Display_Conf_640_480))
if (Ics1523_Init(CRT_Display_Conf_800_600))
{
sprintf (message, " \n\rICS1523 Clock Generator Init OK\n\r" );
}
else
{
sprintf (message, " \n\rICS1523 Clock Generator Init failed\n\r" );
}
AT91F_DBGU_Printk(message);
AT91F_DBGU_Printk("\n\r-I- ========================================================\n\r");
AT91F_DBGU_Printk( "-I- AT91RM9200 Epson Embedded Memory Display Controller Test\n\r");
AT91F_DBGU_Printk( "-I- --------------------------------------------------------\n\r");
// Epson S1D13806 Initialisation FOR A CRT Monitor !!!!!!!!!!!
AT91F_S1D13806_Init ( s1d13806_base,
S1D13806_DISP_MEM_BASE,
// CRT_Display_Conf_640_480,
CRT_Display_Conf_800_600,
// Display_Def_0,
Display_Def_1,
Char_Def_0,
Lut_Def_0,
Fmck ) ;
AT91F_DBGU_Printk("S1D13806 Display Controller Init OK\n\r");
// Show BMP pictures
AT91F_DBGU_Printk("\n\rShow BMPs pictures\n\r");
i = 0;
while (1)
{
pBmp = Bmps[i++ % BMPS_NUMB];
ShowBmp(pBmp);
sprintf ( message, "\n\rIAR Embedded Workbench for ARM - AT91RM9200-EK") ;
AT91F_S1D13806_16bpp_print_string ( s1d13806_base, message );
initial_timeout = AT91F_GetTickCount() + _1_0_SEC * 3;
while( AT91F_GetTickCount() < initial_timeout);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?