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

📄 main.c

📁 此例程基于MDK-ARM(KEIL)开发环境编写
💻 C
字号:
/*
这是个简单的mini2440(micro2440)开发板例程。
通过这个例程可以简单测试开发板LED指示灯和仿真器的好坏。
此例程涉及到的2440片内寄存器为:"GPBCON(0x56000010)"、"GPBDAT(0x56000014)"、"GPBUP(0x56000018)"。(详见2440数据手册)
此例程涉及到的2440硬件管脚为:"PORT B"的GPB5~GPB8。(详见mini2440原理图)
片内寄存器、硬件管脚和LED指示灯的对应关系:(LED为管脚输出低电平发光)

               片内寄存器                    硬件管脚      LED指示灯
   GPBCON[11:10]、GPBUP[5]、GPBDAT[5]   --->   GPB5   --->   LED1
   GPBCON[13:12]、GPBUP[6]、GPBDAT[6]   --->   GPB6   --->   LED2
   GPBCON[15:14]、GPBUP[7]、GPBDAT[7]   --->   GPB7   --->   LED3
   GPBCON[17:16]、GPBUP[8]、GPBDAT[8]   --->   GPB8   --->   LED4

选择Debug->Start/Stop Debug Session->Run,可通过模拟运行观察到LED1~LED4依次点亮。
提示:1.修改"delay(int a)"函数"a"的值,可调整延时的时间间隔。
      2.尝试修改LED1~LED4的点亮顺序,达到不同的闪灯效果。
	  3.修改此例程,使蜂鸣器发声。(蜂鸣器为GPB0管脚输出高电平发声)

E-mail:987823315@qq.com
*/

#include "def.h"  //此头文件对程序中常用的字符或数据进行简单的字符替代。 
#include "2440addr.h"  //此头文件对2440的所有片内寄存器进行了重新定义,各寄存器功能详见2440数据手册。


void delay(int a)  //一个软件延时子函数,修改"a"的值可调整延时时间。如需精确延时,需计算指令周期和CPU工作频率。
{
	for(;a!=0;a--)
	{
	}
}

int main (void)  //main函数,S3C2440A.s初始化完成后由主程序入口即跳转到此。 
{
	//片内寄存器"0x56000010""0x56000014""0x56000018"在"2440addr.h"中分别被"rGPBCON""rGPBDAT""rGPBUP"替换。
	//查询2440数据手册得知它们是"PORT B"的控制寄存器,修改它们的参数可以配置"PORT B"的工作方式和内容。
    //详细内容参见2440数据手册284页。
	rGPBCON = 0x015400; //PORT B的GPB5~GPB8管脚设置为输出,其余设置为输入。  
    rGPBUP  = 0x7ff;  //关闭所有PORT B管脚的上拉电阻。
	while(1)  //此处进入死循环。
	{
		rGPBDAT = 0x01C0;
		delay(500000);

        rGPBDAT = 0x01A0;
		delay(500000);

		rGPBDAT = 0x0160;
		delay(500000);

		rGPBDAT = 0x00E0;
		delay(500000);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -