📄 main.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 + -