📄 lcdc.c
字号:
/*************************************************************************
*
* Used with ICCARM and AARM.
*
* (c) Copyright IAR Systems 2007
*
* File name : lcdc.c
* Description : Main file
*
* History :
* 1. Date : September 6, 2007
* Author : Stanimir Bonev
* Description : Create
*
* This example project shows how to use the IAR Embedded Workbench for ARM
* to develop code for the Samsung-S3F4A0K evaluation board. It shows
* basic use of LCDC.
*
* Jumpers:
* All jumpers are in default position regarding board's manual
*
* $Revision: 18084 $
**************************************************************************/
#include <samsung\ios3f4a0k.h>
#include <assert.h>
#include "arm_comm.h"
#include "board.h"
#include "gic.h"
/*************************************************************************
* Function Name: LCDC_Init
* Parameters: none
* Return: none
*
* Description: Init LCD block
*
*************************************************************************/
void LCDC_Init (void)
{
// Enable PIO1, PIO2 blocks for LCD I/O configuration
PIO1_ECR = 1;
PIO2_ECR = 1;
// Disable PIO1, PIO2 function for LCD signals - COM0, SEG0-SEG-S39
// (P1.12, P1.16 - P1.31 and P2.00 - P2.23)
PIO1_PDR = (1UL << 12) | (1UL << 16) | (1UL << 17)
|(1UL << 18) | (1UL << 19) | (1UL << 20)
|(1UL << 21) | (1UL << 22) | (1UL << 23)
|(1UL << 24) | (1UL << 25) | (1UL << 26)
|(1UL << 27) | (1UL << 28) | (1UL << 29)
|(1UL << 30) | (1UL << 31) ;
PIO2_PDR = (1UL << 0) | (1UL << 1) | (1UL << 2)
|(1UL << 3) | (1UL << 4) | (1UL << 5)
|(1UL << 6) | (1UL << 7) | (1UL << 8)
|(1UL << 9) | (1UL << 10) | (1UL << 11)
|(1UL << 12) | (1UL << 13) | (1UL << 14)
|(1UL << 15) | (1UL << 16) | (1UL << 17)
|(1UL << 18) | (1UL << 19) | (1UL << 20)
|(1UL << 21) | (1UL << 22) | (1UL << 23);
IOCONF_MR5_bit.PIO1_12_F3EN =1;
IOCONF_MR5_bit.PIO1_13_F3EN =1;
IOCONF_MR5_bit.PIO1_14_F3EN =1;
IOCONF_MR5_bit.PIO1_15_F3EN =1;
IOCONF_MR5_bit.PIO1_16_F3EN =1;
IOCONF_MR5_bit.PIO1_17_F3EN =1;
IOCONF_MR5_bit.PIO1_18_F3EN =1;
IOCONF_MR5_bit.PIO1_19_F3EN =1;
IOCONF_MR6_bit.PIO1_20_F3EN =1;
IOCONF_MR6_bit.PIO1_21_F3EN =1;
IOCONF_MR6_bit.PIO1_22_F3EN =1;
IOCONF_MR6_bit.PIO1_23_F3EN =1;
IOCONF_MR6_bit.PIO1_24_F3EN =1;
IOCONF_MR6_bit.PIO1_25_F3EN =1;
IOCONF_MR6_bit.PIO1_26_F3EN =1;
IOCONF_MR6_bit.PIO1_27_F3EN =1;
IOCONF_MR7_bit.PIO1_28_F3EN =1;
IOCONF_MR7_bit.PIO1_29_F3EN =1;
IOCONF_MR7_bit.PIO1_30_F3EN =1;
IOCONF_MR7_bit.PIO1_31_F3EN =1;
IOCONF_MR8_bit.PIO2_0_F3EN =1;
IOCONF_MR8_bit.PIO2_1_F3EN =1;
IOCONF_MR8_bit.PIO2_2_F3EN =1;
IOCONF_MR8_bit.PIO2_3_F3EN =1;
IOCONF_MR8_bit.PIO2_4_F3EN =1;
IOCONF_MR8_bit.PIO2_5_F3EN =1;
IOCONF_MR8_bit.PIO2_6_F3EN =1;
IOCONF_MR8_bit.PIO2_7_F3EN =1;
IOCONF_MR9_bit.PIO2_8_F3EN =1;
IOCONF_MR9_bit.PIO2_9_F3EN =1;
IOCONF_MR9_bit.PIO2_10_F3EN =1;
IOCONF_MR9_bit.PIO2_11_F3EN =1;
IOCONF_MR9_bit.PIO2_12_F3EN =1;
IOCONF_MR9_bit.PIO2_13_F3EN =1;
IOCONF_MR9_bit.PIO2_14_F3EN =1;
IOCONF_MR9_bit.PIO2_15_F3EN =1;
IOCONF_MR10_bit.PIO2_16_F3EN =1;
IOCONF_MR10_bit.PIO2_17_F3EN =1;
IOCONF_MR10_bit.PIO2_18_F3EN =1;
IOCONF_MR10_bit.PIO2_19_F3EN =1;
IOCONF_MR10_bit.PIO2_20_F3EN =1;
IOCONF_MR10_bit.PIO2_21_F3EN =1;
IOCONF_MR10_bit.PIO2_22_F3EN =1;
IOCONF_MR10_bit.PIO2_23_F3EN =1;
// LCDC init
// Enable LCDC block
LCD_ECR = (1UL << 1);
LCD_CLKDIVR_bit.DIVVAL = 0x4E1F; // 1kHz
LCD_MR_bit.OP_MODE = 4; // Static Mode
LCD_MR_bit.LCD_FREQ = 0; // 62.5 Hz
// Clear LCD memory
for(pInt32U pData= (pInt32U)&LCD_DM0; pData <= (pInt32U)&LCD_DM4; pData++)
{
*pData = 0;
}
// Enable LCDC
LCD_CR = (1UL << 31) | (1UL << 15);
}
/*************************************************************************
* Function Name: main
* Parameters: none
* Return: none
*
* Description: Main
*
*************************************************************************/
void main (void)
{
LCDC_Init();
while(1)
{
for(volatile Int32U i = 1000000; i; i--);
for(pInt32U pData= (pInt32U)&LCD_DM0; pData <= (pInt32U)&LCD_DM4; pData++)
{
*pData = *pData ^ 0x11111111;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -