完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Ti杯电子竞赛,有些题目要求必须用ti的430做主控芯片,以下介绍电子竞赛中430最常用功能的几个例程(这里使用的是MSP430F5529型号的单片机)
io使用例程 在使用io口时,我们需要先了解1个与io有关常用的寄存器 PXDIR:方向就寄存器:设置为输出引脚,置1;设置为输入引脚,置0; 例程1:将p2.3作为输出引脚,并使它初始化为输出0。 #include 《msp430.h》 int main(void) { //关闭看门狗,必须要这一步 WDTCTL = WDTPW | WDTHOLD; /*这段代码等价于 P2DIR |= 00000100 (按位或,将第三位寄存器置为1)。最后的功能就是将2.3口配置 为输出口。*/ P2DIR |= BIT3; //将2.3口配置为输出口 /*将P2OUT寄存器的第三位置0,执行的效果也就是p2.3输出为0,如果要将p2.3口置为1,就将第三位置1: 即P2OUT |=BIT3*/ P2OUT &=~BIT3; //让2.3输出0 return 0; } 例程2:将2.4设置为输入引脚,并读取到2.4口的信号状态 #include 《msp430.h》 int main(void) { WDTCTL = WDTPW | WDTHOLD; //关闭看门狗 P2DIR &=~BIT4; //将2.4口设置为输入引脚 if(P2IN&BIT4==1) //如果2.4口输入的电平是高电平,就干什么 { } if(P2IN&BIT4==0) //如果2.4口输入的电平是低电平,就干什么 { } return 0; } pwm使用例程 此例程是用pwm来驱动小车,具体哪些io口能输出pwm,可参考芯片手册如图: 如上图右边所示,比如P2.4口,他的pwm时钟控制寄存器为TA2 CCR1,所以配置pwm要先看io口是否有TA CCR的标识 #include 《msp430.h》 #define p1_2 TA0CCR1 //该引脚置一,右边电机正转 #define p1_4 TA0CCR3 //该引脚置一,左边电机正转 #define p1_3 TA0CCR2 //该引脚置一,左边电机反转 #define p1_5 TA0CCR4 //该引脚置一,右边电机反转 void initpwm(){ P1DIR |=BIT3+BIT2+BIT5+BIT4; //配置P1.2,3,4,5口的为输出口 P1SEL |=BIT3+BIT2+BIT5+BIT4; //开启1.2,3,4,5口的io复用,因为要用来输出pwm unsigned const PWM=1500; //设置PWM周期参数 TA0CCR0 =PWM; //设置PWM周期 TA0CTL=TASSEL_2+MC_1; TA0CCTL1 = OUTMOD_7; //设置TA0CCR1的PWM的输出模式为7模式 TA0CCTL2 = OUTMOD_7; TA0CCTL3 = OUTMOD_7; TA0CCTL4 = OUTMOD_7; } int main(void) { //关闭看门狗,必须要这一步 WDTCTL = WDTPW | WDTHOLD; initpwm(); /*以下代码效果就是让小车转弯,因为左右两边轮胎的转速不一样*/ p1_2=1000; //右边电机得到占空比为1000/1500 p1_4=500; //左边电机得到的占空比为500/1500 p1_3=0; p1_5=0; } 中断使用例程: 注意:在使用中断之前,我们先要查看用户手册,找到那些引脚有 port interrupt(中断)功能的,再去配置中断。 如上图所有引脚都有中断功能。 例程:将2.3口的中断设置为上升沿触发 #include 《msp430.h》 int main(){ //关闭看门狗,必须要这一步 WDTCTL = WDTPW | WDTHOLD; P2DIR &=~BIT3 ; //开启2.3口中断 也就是设置2.3为输入io口 P2IES |= BIT3 ; //设定2.3口为下降沿触发,如果是上升沿触发则P2IE &=~BIT3 P2IFG &=~BIT3 ; //清除中断标志 __bis_SR_register(GIE);//打开全局中断 } #pragma vector = PORT2_VECTOR //中断服务开启,是哪个端口就填哪个具体请查看5529的头文件 //中断函数固定写法: __interrupt void port1_zhongduan (void){ //如果是2.3口产生了中断 if(P2IFG&BIT3){ P2IFG &=~BIT3; //固定写法,每次中断产生都要清除中断标志位 /*然后写中断产生后,你想要执行的代码,如:让2.4io口置1*/ P2DIR|=BIT4; //配置2.4为输出口 P2OUT|=BIT4; //让2.4输出1 } } |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1143浏览 2评论
743浏览 1评论
496浏览 0评论
261浏览 0评论
422浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 13:57 , Processed in 1.480351 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号