求解msp430IO口配置问题,值得你一看!
如图:简单说说就是要求初始化,复位时,p1.1,p1.2为低电平,输入方向要读取p1IN的值。因为开关断开时,p1.1,p1.2是高电平,闭合是低电平。问题是如果复位p1.1,p1.2是高电平的话,开关断开时,读取p1IN的值,p1.1,p1.2是低电平,这样就影响判断了,所以,请教下,怎么配置IO的输入方向,而且用万用表测出端口是低电平,我现在写的这样的: P1SEL =0X00;
P1DIR =0X00;
P1IE =0X00;(不希望用中断,查询的方式)
查询判断的就是 Sw_state1=P1IN & 0x06;
if(Sw_state1==0x04) if(Sw_state1==0x02)
{ {
开关P1.1闭合执行程序段 开关p1.2闭合执行程序段
} }
这是一般的电机量程设置设计方法,我现在也可以用,没什么问题,就是想问问,初始化为什么有的IO是低电平,有的是高电平?我是当然选取的低电平的IO(p1.1,p1.2),因为我之前弄的,IO高低电平好像初始化是有时候不同的,生怕哪天变化了,就崩溃了。是不是我的配置有问题?应该怎么配置?
求解啊!
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_698046YZ956J.png
(原文件名:pp.png) 回复【楼主位】wjackson
-----------------------------------------------------------------------
用的是F149的片子。 149的输入是不带上下拉的,所以引脚的状态是不确定的,没有高低电平,是悬空的。
复位后所有IO引脚默认为输入状态,你的初始化值就是复位后默认的值。
还有你的问题描述的不是很清楚
以上是个人观点。 回复【2楼】lcofjp C语言砖家
-----------------------------------------------------------------------
呵呵,可能自己说的不好了,我的意思就是复位后p1.1,p1.2就是低电平就好,是输入方向。按上面配置
P1SEL =0X00;
P1DIR =0X00;
P1IE =0X00;
复位后p1脚应该都是低电平吧?可我用万用表测出有的是高电平,有的是低电平。不知道每次复位是不是一样?如果一样,我现在做的就没问题,我就是怕哪天复位后不一样,就才惨了,所以,我想问问,我上面的配置对不对啊? 回复【楼主位】wjackson
------------------------------------------------------------------
还是没理解啊,今天在试试看看 lz,您的表达太乱了,看电路没啥问题
如果你只想取某个脚状态,最好单取
if(P1IN & BIT1 ) if(P1IN & BIT2)
{ {
开关P1.1闭合执行程序段 开关p1.2闭合执行程序段
} } 我怎么觉得这个电路就这样设置就可以呀 回复【5楼】rengo
-----------------------------------------------------------------------
你这个也对啊,我前面就是设置一个变量,我问的是,P1脚的初始化配置对不对,前面的配置感觉不对,所以问问的啊 回复【6楼】wangyehuiwang
-----------------------------------------------------------------------
恩,这样配置是可以的,不过自己调试的时候倒是让人产生幻觉,当P1DIR=0x00时,P1OUT怎么设置也应该对p1脚电平没影响吧,但是调试的时候就不是的,后来自己在单独拿块板子试了下,和自己想的一样,所以很困惑啊。前面我那样设置,想要的就是:1,初始化是输入方向;2,电平为低。就好了 同意楼上观点 遇到类似问题
页:
[1]