有输出总会有输入,今日测验一下按键的功用,第一节现已说过了与GPIO端口相关的寄存器,这儿不在重复,想要从端口读取数据,首先把FIODIR这个寄存器设置为输入,再从
图1-1 Joystick按键连线图
这次试验没有涉及到外部中止,都是做一般的IO输入运用的,所以在这儿外部中止就做学习总结了。下面给出这次试验的主程序:
#include”main.h”
volatile unsigned long SysTickCnt;
void SysTick_Handler (void)
{
}
void DelayMs (unsigned long tick)
{
}
void PortInit(void)
{
}
int main(void)
{
}
上一节对程序没有做过多的解说,这儿详细分析一下,工程中包含的源文件如下图所示:
工程中startup_LPC17XX.s是M3的发动文件,发动文件由汇编语言写的,它的效果一般是下面这几个:
1)堆和栈的初始化
2)向量表界说
3)地址重映射及中止向量表的搬运
4)设置体系时钟频率
5)中止寄存器的初始化
6)进入C应用程序
工程中main.c是我写的应用程序,也便是这次试验的程序,core_cm3.c与core_cm3.h首要是M3外围驱动源代码与头文件,运用时一般不需要修正,直接调用就能够。system_LPC17xx.c与system_LPC17xx.h是关于体系的文件,里边首要供给了体系初始化函数SystemInit(),文件中默许状况下界说的晶振的巨细为12M,运用的是外部晶振,还运用了PLL0倍频,关于倍频的问题,今后渐渐再总结。芯片LPC1768的初始化首要包含时钟装备,电源办理,功耗办理等。相比较而言,时钟装备相对杂乱,因为它包含两个PLL倍频电路,一个是主PLL0首要是为体系和USB供给时钟,另一个是PLL1专门
下面扼要总结一下main()函数,首先是体系初始化函数SystemInit(),上面说过它在system_LPC17xx.c这个源文件中,这个函数首要完成了对时钟的装备,体系功耗PCONP,时钟输出,flash加快等体系资源装备。假如要进行修正能够参阅源文件的修正办法,虽然是英文注释,但都十分简略,有爱好的能够翻开看看,不过一般状况下咱们拿来直接用就好了不必修正的。
函数
最终再说一下数据类型的问题,在8位机中数据位找一般便是8位的所以,界说变量时一般选用单字节处理速度会快些,但到了32位机中,数据位宽一般是32位的,所以界说变量时一般用4字节会好些。在core_cm3.c中有关于数据类型的界说,有爱好的能够翻开看看。