好可爱的小多C

    1. MSP430F5529的AD转换问题 3/4386 微控制器 MCU 2017-11-13
      tei333 发表于 2015-8-6 10:39 OK了   已解决
      楼主怎么解决的,能教下我不:Cry:
    2. 电赛必备资料! 217/49426 电子竞赛 2016-08-28
      楼主,求资料,2446445103@qq.com,万分感谢
    3. ldc1000移植到STM32上的程序, 296/42674 电子竞赛 2016-07-23
      2446445103@qq.com
    4. 电赛 摄像头 9/5047 电子竞赛 2016-07-21
      wajuka 发表于 2016-7-21 13:22 好贵的说
      学校舍得花钱,不要紧,重要的是合不合适用
    5. 电子设计大赛 17/3268 微控制器 MCU 2016-07-20
      请给我C代码 发表于 2016-7-20 16:24 所有省省赛要用的东西都一样吗?我们列出来的元器件清单也是这个
      据说有20个省是一样的
    6. 有没有用MSP430F149驱动LDC1000的 7/3249 微控制器 MCU 2016-07-20
      楼主调好了说声
    7. 电子设计大赛 17/3268 微控制器 MCU 2016-07-20
      请给我C代码 发表于 2016-7-20 10:18 楼主是江苏的?
      我是湖北的
    8. 电子设计大赛 17/3268 微控制器 MCU 2016-07-19
      flashtt 发表于 2016-7-19 10:00 指定了DC/DC变换器件和mos?
      MOS管有啥用?
    9. 循迹小车,PWM 8/3664 微控制器 MCU 2016-07-19
      wanyisq 发表于 2016-7-19 08:55 每次我遇到像你这样提问题的 简单而笼统 没有具体的程序或者截图  你是让大家猜问题吗
      不好意思啊,这是我写的程序,麻烦大神帮我看看 #include #define  uint   unsigned int    void  Initclock(); void  InitIO(); void  Speed(uint a,uint b,uint c,uint d,uint e,uint f); void  Mydelay(uint t); void  Back(uint x,uint y,uint z); void  main() {    WDTCTL = WDTPW + WDTHOLD;    Initclock();//主时钟和子系统时钟频率为4M,辅助时钟为10khz    InitIO();    while(1)    {      switch(P3IN&0xf0)      {      case 0x00:            //四个全不在黑带上      case 0xf0:         Back(2300,2300,2500);//倒退         P1SEL&=~(BIT4+BIT5);         P1OUT&=~(BIT4+BIT5);         Mydelay(20);         break;      case 0x10:      //最左边一个在黑带上        Speed(2200,2200,2490,2490,2500,2500);//循迹左转    周期为0.5S        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;      case 0x20:     //最左边旁边一个在黑带上         Speed(2300,2300,2400,2400,2500,2500);//循迹左转  周期为0.5S         P1SEL&=~(BIT2+BIT3);         P2SEL&=~(BIT4+BIT5);         P1OUT&=~(BIT2+BIT3);         P2OUT&=~(BIT4+BIT5);         Mydelay(20);//反应时间         break;      case 0x30:    //最左边和它旁边的一个在黑带上         Speed(2300,2300,2400,2400,2500,2500);//循迹左转         P1SEL&=~(BIT2+BIT3);         P2SEL&=~(BIT4+BIT5);         P1OUT&=~(BIT2+BIT3);         P2OUT&=~(BIT4+BIT5);         Mydelay(20);//反应时间           break;      case 0x60:            //中间两个在黑带上        Speed(2200,2200,2200,2200,2500,2500);//循迹直        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;      case  0x40:      //最右边旁边一个在黑带上        Speed(2490,2490,2300,2300,2500,2500);//循迹右转        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;      case 0x80:      //最右边一个在黑带上        Speed(2490,2490,2200,2200,2500,2500);//循迹右转        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;      case 0xC0:         //最右边和它旁边的一个在黑带        Speed(2490,2490,2300,2300,2500,2500);//循迹右转        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;      case 0x70:     //左边三个在黑带上        Speed(1400,1400,2495,2495,2500,2500);//循迹左直转        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;      case 0xe0:     //右边三个在黑带上        Speed(2495,2495,1400,1400,2500,2500);//循迹右直转        P1SEL&=~(BIT2+BIT3);        P2SEL&=~(BIT4+BIT5);        P1OUT&=~(BIT2+BIT3);        P2OUT&=~(BIT4+BIT5);        Mydelay(20);//反应时间        break;         default:         P1SEL&=~(BIT2+BIT3);         P2SEL&=~(BIT4+BIT5);         P1OUT&=~(BIT2+BIT3);         P2OUT&=~(BIT4+BIT5);         Mydelay(10);        break;      }    } }   void  Initclock() {    int i;    P5SEL |= BIT2+BIT3; //将IO配置为XT2功能    UCSCTL6&=~XT2OFF;//选择XT2作为时钟源  4M    UCSCTL3 |= SELREF_2;                  //FLL模块的参考时钟源选择REFO    UCSCTL4 = UCSCTL4&(~(SELA_7))|SELA_1; //先将ACLK配置为VLOCLK  10khz    do{      UCSCTL7&=~(XT2OFFG+DCOFFG+XT1LFOFFG);      SFRIFG1&=~OFIFG;//清除振荡器失效标志     for(i=0xff;i>0;i--);//稳定时间     }while((SFRIFG1&OFIFG)!=0);//如果振荡器失效则继续循环   UCSCTL4|=SELM__XT2CLK + SELS__XT2CLK ;//主时钟的信号源为XT2,子系统时钟的信号源也为XT2,   //UCSCTL5 =DIVS__4;//子系统时钟4分频  1M,主时钟4M } void  InitIO() {    P1SEL|=BIT2+BIT3; //声明有特殊功能,不做普通 I/O使用    P2SEL|=BIT4+BIT5;    P1DIR|=BIT2+BIT3;   //输出    P2DIR|=BIT4+BIT5;    //P1DS|=BIT2+BIT3;    //P2DS|=BIT4+BIT5;        P3DIR|=BIT0+BIT1;   //输出    P3OUT&=~(BIT0+BIT1);//输出低电平        P1DIR|=BIT4+BIT5;    //接两个后轮负端    P1SEL|=BIT4+BIT5;      //声明有特殊功能,不做普通I/O口使用    P1OUT&=~(BIT4+BIT5);//输出低电平        P3DIR&=~(BIT4+BIT5+BIT6+BIT7);//红外对管读取高低电平    P3REN|=BIT4+BIT5+BIT6+BIT7; } /*a为TAOCCR1的值,b为TAOCCR2的值 ,c为TA2CCR1的值 ,d为TA2CCR2的值,e为TA0CCR0的值,f为TA2CCR0的值 TA0CCR1控制D轮,TA0CCR2控制B轮,TA2CCR1控制C轮,TA2CCR2控制A轮*/ void  Speed(uint a,uint b,uint c,uint d,uint e,uint f) {    P1SEL|=(BIT2+BIT3);    P2SEL|=(BIT4+BIT5);       //TA0CCTL0=CCIE;   //定时器 A0的捕获比较器0开启 CCIFG位中断      TA0CCR0=e;    //置入计数终值,则 PWM周期为4s    //TA0CCTL1=CCIE;   //捕获比较器1开启中断    TA0CCR1=a;    //TA0CCTL2=CCIE;   //捕获比较器2开启中断    TA0CCR2=b;        //TA2CCTL0=CCIE;   //定时器 A2的捕获比较器0开启 CCIFG位中断       TA2CCR0=f;       //周期为2S    //TA2CCTL1=CCIE;   //捕获比较器1开启中断    TA2CCR1=c;       //TA2CCTL2=CCIE;   //捕获比较器4开启中断    TA2CCR2=d;   //d为47000时,6.4ms        TA0CTL|=TACLR;   //将计时器 A0清零      TA2CTL|=TACLR;    TA0CTL|=TASSEL_1+MC_3;  //定时器选择 ACLK作为时钟源,且为 连续计数模式    TA2CTL|=TASSEL_1+MC_3;  //定时器选择 ACLK作为时钟源,且为 连续计数模式        TA0CCTL1=OUTMOD_4;  //定时器 A1中的捕获比较器1,输出模式为4翻 转    TA0CCTL2=OUTMOD_4;    TA2CCTL1=OUTMOD_4;    TA2CCTL2=OUTMOD_4;        Mydelay(50);    } void  Back(uint x,uint y,uint z) {    //TA0CCTL0=CCIE;   //定时器 A0的捕获比较器0开启 CCIFG位中断      TA0CCR0=z;    //置入计数终值,则 PWM周期为4s    //TA0CCTL3=CCIE;   //捕获比较器3开启中断    TA0CCR3=x;    //TA0CCTL4=CCIE;   //捕获比较器4开启中断    TA0CCR4=y;    P1SEL&=~(BIT2+BIT3);   //关闭第二功能    P2SEL&=~(BIT4+BIT5);    P1OUT&=~(BIT2+BIT3);      P2OUT&=~(BIT4+BIT5);    P1SEL|=BIT4+BIT5;    TA0CTL|=TACLR;   //将计时器 A0清零    TA0CTL|=TASSEL_1+MC_3;    TA0CCTL3=OUTMOD_4;    TA0CCTL4=OUTMOD_4;    Mydelay(50); } void  Mydelay(uint t) {    int i;    while(t--)    {      for(i=0;i
    10. 工作建议 26/6200 机器人开发 2016-07-14
      走吧,相信以你的技术,在别的公司会混的很好的
    11. 430F5529 智能小车 舵机 避障 13/4588 微控制器 MCU 2016-07-12
      雨后的梧桐 发表于 2016-7-12 16:44 小事,回头做好了可以上传一份视频,大家都看看能不能再改进啥的。
      好的
    12. 430F5529 智能小车 舵机 避障 13/4588 微控制器 MCU 2016-07-12
      雨后的梧桐 发表于 2016-7-12 15:22 这个简单啊,可以用一个中间传感器啊,这个中间传感器就是加在小车的中间位置,检测方向朝外,当校车转弯转 ...
      嗯嗯,谢谢指教
    13. 430F5529 智能小车 舵机 避障 13/4588 微控制器 MCU 2016-07-12
      雨后的梧桐 发表于 2016-7-12 15:03 直接控制电机怎么会让你觉得很难呢?你是怎么控制?PID调节?至于转动一分钟后舵机自己停下可能是你的死 ...
      我不是觉得直接控制电机难,如果直接控制电机的话,比如避障的时候,前面有障碍物,要转弯,这个转弯的角度就不好控制了,到底要转到一个什么程度 TA1CCR1=38000; //45        Mydelay(100);               TA1CCR1=37000; //90        Mydelay(100);               TA1CCR1=36000; //0       Mydelay(100);              TA1CCR1=37000; //45        Mydelay(100);               TA1CCR1=38000; //90        Mydelay(100); 上面是while(1)里面死循环的程序,舵机可以按照这个程序来回转几次,但时间不长。
    14. 430F5529 智能小车 舵机 避障 13/4588 微控制器 MCU 2016-07-12
      雨后的梧桐 发表于 2016-7-12 14:47 用舵机来转向就是控制电机转动,就是通过机械连接,可以使用齿轮带动,或者利用杠杆连接。这种用舵机控制 ...
      但是直接控制电机的话,避障的时候感觉好难控制,其实我用舵机是做支架,让超声波模块自由转动,检测障碍物,我调的舵机还有个问题,它来回转动大概一分钟后,就会自己停下,不知道为啥??
    15. 430F5529 智能小车 舵机 避障 13/4588 微控制器 MCU 2016-07-12
      雨后的梧桐 发表于 2016-7-12 14:11 1.小车的转弯时转动角度和速度的控制 简单点的就是利用小车上的传感器,当检测到有障碍的时候保持电机转动 ...
      但是我不知道舵机的偏角反映在前轮上大概是怎么实现的,大神可以教教我吗
    16. 楼主发给我一下吧,2446445103@qq.com
    17. 电设之F5529(4)定时器 6/2730 微控制器 MCU 2016-07-11
      。。。。。。。。。。。。。。。。。。。。。。。。。
    18. MSP430F5529 13/3604 微控制器 MCU 2016-07-10
      阿拉斯没有家 发表于 2016-7-10 14:17 楼主 ,解决了 可以贴下程序么
      加我,2446445103,我把程序发给你
    19. 楼主我想问一下,那个舵机是怎么控制的啊,我再写用430控制舵机的程序,可是舵机就是不转
    20. 2015电赛专家组命题会议透露的一些消息 1605/94324 电子竞赛 2016-06-20
      是啥是啥啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

最近访客

< 1/1 >

统计信息

已有11人来访过

  • 芯积分:--
  • 好友:2
  • 主题:6
  • 回复:33

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言