P1.7和 P7.6 控制阀门开关P1.5公共端 输出高电平P1.4 , P1.6 设置为输入模式,检测到位开关开到位,P1.6 变成高电平 // 关到位P1.4变成高电平。任一个到位开关闭合状态,不能仿真~~连接不上程序如下:#include<msp430x41x2.h> typedef unsignedchar Uchar8;typedef unsigned int Uint16;typedef unsigned long Uint32;#define FMON_LOW P7OUT &= (~BIT6) // FMON=0#defineFMON_HIGH P7OUT |= BIT6 // FMON=1#defineFMOFF_LOW P1OUT &= (~BIT7) //FMOFF=0#defineFMOFF_HIGH P1OUT |= BIT7 // FMOFF=1#defineFMCOM_HIGH P1OUT |= BIT5 //FMCOM=1void IO_Init(void);void main(void){ OSC_Init(); IO_Init(); FMCOM_HIGH; while(1) { if(P1IN==0XB0) { FMON_HIGH; 进入到这里就出现错误。仿真器连不上了 FMOFF_LOW; } else { FMON_LOW; FMOFF_HIGH; } }}void IO_Init(void){ P7DIR |=0xFF; // P7.6 输出模式P7OUT = 0x00; // All P7.xresetP1DIR |=0XAF; // P1.7 P1.5输出模式P1.6 P1.4输入模式P1OUT =0x00; // All P7.x reset}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
FMON_HIGH; 进入到这里就出现错误。仿真器连不上了
FMOFF_LOW;
这两行换一下,就好了。
原因 我觉得 应该是, 我的电路是一个联动的,控制阀门开关的两个引脚不能同时为高电平,也就是说,P1.7和 P7.6 控制阀门开关,P1.7 高,P1.6低,,转换为P1.6 高,P1.7低,逻辑上没有问题,但是程序执行到P1.6 高时,P1.7 也是高,导致电源对地功耗大,编程器连不上了,所以先将P1.7 低,,再把P1.6置高,~~~搞了好几天,一直以为逻辑有问题,还是电路没看透啊~~
一周热门 更多>