PTD0-PTD8都连接着一个led灯(PORT DIRECTION)
输出逻辑0灭,输出1就亮
3如何像IO模块编程
IO模块抽象出6个寄存器,我们目前只用这三个寄存器
41章节771页
外设寄存器由芯片分配的,都在从4000 0000开始的地址段,相应IO都在这几个地址段。
看771页
这里要控制最后八个引脚,所以就是最后八位
由于是32位寄存器,0xFF实际是0000 00FF,最后八个比特是1111 1111,写成16进制是FF.,PDDR方向应该是输出,最后8个比特要都是1代表输出。
这里要量最后8位是00,低电位就亮了
寄存器由32个引脚,刚才全是赋值语句,最后8个引脚赋了值,最后把前面24个也改变了,所以这是不规范的。
因此要尽量使用c语言的与或
要打开时钟模块
用到那个端口引脚就要打开那个时钟
system integration module SIM模块里头SCGC5寄存器,portD这个bit置1,把1左移12位与他或
只把模块给IO用,不给其他如通讯之类的用
可以发现引脚首先属于port A,B,C,D。其次自己还有一个序号0 1 2 3 4 5 6 7,每一个物理存在引脚都有独立的寄存器。
刚才可以知道32个引脚每个对应一个比特,在对引脚功能进行配置时候,在章节port control and interpret,每个引脚对应一个寄存器PORTx PCRn,n可以使0,1,2,3,4,5,6,7
有32个bit,每个引脚都有32个比特来配置,表灰色是可以忽略的保留的比特,标为白色可以控制很多功能,比如说16-20比特这4个比特,是控制引脚的中断功能。0-7控制是否有上拉电阻,输出电流是否大小,8 9 10组合8种选择,来确定使用第几个功能
0100就是比特8到比特10这3个比特,正好二进制是001,这样语句重复8遍从PORTD_PCR0到PORTD_PCR7,都赋值喜欢只给0100,就是告诉我们程序,这八个引脚都用第一个功能,IO使用