- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM9教学平台 1、相关寄存器定义 工程-include文件夹-gpio文件夹-led.h,在led.h中添加: #define GPCCON (*((volatile unsigned *)0) //端口C的配置寄存器 #define GPCDAT (*((volatile unsigned *)0) //端口C的数据寄存器 void led_init(void); void led_on(void); void led_off(void); 2、实现驱动 在工程中新建drivers文件夹,在drivers中新建gpio文件夹,在gpio中新建led.c文件,在led.c中添加如下代码: #include gpio/led.h void led_init(void) { // GPC5输出控制led1 GPCCON[11:10] = 0b01 GPCCON = ~(0x3 10); GPCCON |= 0x1 10; // GPC6输出控制led2 GPCCON[13:12] = 0b01 GPCCON = ~(0x3 12); GPCCON |= 0x1 12; // GPC7输出控制led3 GPCCON[15:14] = 0b01 GPCCON = ~(0x3 14); GPCCON |= 0x1 14; } void led_on(void) { // led1清0点亮 GPCDAT[5] = 0b0 GPCDAT = ~(0x1 5); // led2清0点亮 GPCDAT[6] = 0b0 GPCDAT = ~(0x1 6); // led3清0点亮 GPCDAT[7] = 0b0 GPCDAT = ~(0x1 7); } void led_off(void) { // led1 置1熄灭 GPCDAT[5] = 0b1 GPCDAT |= 0x1 5; // led2置1熄灭 GPCDAT[6] = 0b1 GPCDAT |= 0x1 6; // led3置1熄灭 GPCDAT[7] = 0b1 GPCDAT |= 0x1 7; } 3、编写main.c common文件夹- main.c,在main.c中添加: #include gpio/led.h int main(void) { //GPIO test 3个灯一直同时闪烁 int i; led_init(); while(1){ led_off(); for(i=0;i1000000;i++); led_on(); for(i=0;i1000000;i++); } return 0; } 4、修改两个Makefile (1)复制工程中common文件夹中的Makefile文件到drivers-gpio中,在drivers-gpio下的Makefile中, 找到:“COBJS:=” 改为: COBJS:= led.o //即将led.c编译成led.o 找到“LIB=” 改为: LIB= libgpio.a //将 led.o生成库文件libgpio.a (2)找到工程中的Makefile文件,在其中添加: LIBS += drivers/gpio/libgpio.a //将libgpio.a 链接到工程中 实验报告要求 实验题目 实验目的、意义 主要设备、仪器 程序、基本原理 实验步骤:1、2、3、…… 实验现象、结果 心得、总结:实验中学到了什么、遇到什么问题、怎么解决的。 * 5.2.2 I/O口编程实例 举例:通过对I/O口的操作控制实验箱的LED1、LED2和LED3实现闪烁。 实验目的: (1)掌握S3C2410X芯片的I/O控制寄存器的配置。 (2)通过实验掌握ARM芯片使用I/O端口控制LED显示。 (3)掌握驱动的编写步骤 (4)熟悉eclipse+keil的开发环境。 在led.c中继续添加点亮灯的函数: 在led.c中继续添加熄灭灯的函数: *
文档评论(0)