⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdc.c

📁 最新版IAR FOR ARM(EWARM)5.11中的代码例子
💻 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 + -