桑稚♕ 2022-06-02 19:29 采纳率: 100%
浏览 75
已结题

智能循迹小车程序报告

  • 程序算法 总框图
    程序设计总思路 方法与算法
    程序设计结果
    写一个实验报告

    img

img

2.

****

-

  • 写回答

1条回答 默认 最新

  • 白驹_过隙 算法领域新星创作者 2022-06-02 19:59
    关注
    
    #include <msp430f5529.h>
    #define CPU_F ((double)1000000)
    #define delay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))
    #define delay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))    //定义延时函数
    
    unsigned int DC_motor=142;                    //初始化车速值
    unsigned int i=100;
    unsigned int j=50;
    unsigned int i_20=20;
    
    void Duoji_init()                             //初始化舵机函数
    {
        P2DIR |= BIT0;                            // P2.0 output
        P2SEL |= BIT0;                            // P2.0 options select
        TA1CCR0 = 13000;                          // PWM Period = 20ms
        TA1CCTL1 = OUTMOD_7;                      // 选择复位/置位模式
        TA1CCR1 = 1300;                           // CCR1 PWM duty cycle
        TA1CTL = TASSEL_2 + MC_1 + TACLR ;        // SMCLK, up mode, clear TAR.
    }
    
    void DC_Motor_init()                           //初始化电机函数
    {
        P2DIR |= BIT4 + BIT5;                      // P2.4,P2.5 output.
        P2SEL |= BIT4 + BIT5;                      // P2.4,P2.5 options select
        TA2CCR0 = 200;                             // PWM Period = 0.2ms
        TA2CCTL1 = OUTMOD_7;                       // CCR1 reset/set
        TA2CCR1 = 0;                               // CCR1 PWM duty cycle
        TA2CCTL2 = OUTMOD_7;                       // CCR2 reset/set
        TA2CCR2 = 0;                               // CCR2 PWM duty cycle
        TA2CTL = TASSEL_2 + MC_1 + TACLR ;         // SMCLK, up mode, clear TAR.
    }
    
    void main(void)
    {
       WDTCTL = WDTPW + WDTHOLD;                  // Stop WDT
        delay_ms(1000);
        Duoji_init();                               //调用初始化舵机和电机的函数
        DC_Motor_init();
    
        TA0CCTL0 = CCIE;                           // CCR0 interrupt enabled
        TA0CCR0 = 1000;                            //设置定时时间
        TA0CTL = TASSEL_2 + MC_1 + TACLR;          // SMCLK, upmode, clear TAR
    
        TA2CCR1 = DC_motor;
        TA2CCR2 = DC_motor;                          //设置小车初始化速度
    
    
      __bis_SR_register(LPM0_bits + GIE);          // Enter LPM0, enable interrupts
      __no_operation();                            // For debugger
    }
    
    #pragma vector=TIMER0_A0_VECTOR                // Timer0 A0 interrupt service routine
    __interrupt void TIMER0_A0_ISR(void)
    {
        switch(P6IN&0x1f)
          {
            case 0x0f:                            //右1传感器识别到黑线,大右转
               TA1CCR1 = 1570+4*j+3*i_20;
               TA2CCR1 = 157;
               TA2CCR2 = 122;
               break;
            case 0x17:                           //右2传感器识别到黑线,小右转
               TA1CCR1 = 1490+2*j+2*i_20;
               TA2CCR1 = 152;
               TA2CCR2 = 142;
                  break;
            case 0x1b:                               //中间传感器识别到黑线,直行
               TA1CCR1 = 1450;
               TA2CCR1 = 161;
               TA2CCR2 = 161;
               break;
            case 0x1d:                             //左2传感器识别到黑线,小左转
               TA1CCR1 = 1330-3*j-5*i_20;
               TA2CCR1 = 152;
               TA2CCR2 = 182;
               break;
            case 0x1e:
               TA1CCR1 = 1260-6*j-10*i_20;               //左1传感器识别到黑线,大左转
               TA2CCR1 = 162;
               TA2CCR2 = 197;
               break;
            case 0:                          //进入十字时,所有传感器都检测到黑线,继续直行
                TA1CCR1 = 1450;
                TA2CCR1 = 161;
                TA2CCR2 = 161;
            default:
               break;
          }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月10日
  • 已采纳回答 6月2日
  • 创建了问题 6月2日

悬赏问题

  • ¥18 深度学习tensorflow1,ssdv1,coco数据集训练一个模型
  • ¥100 关于注册表摄像头和麦克风的问题
  • ¥30 代码本地运行正常,但是TOMCAT部署时闪退
  • ¥15 关于#python#的问题
  • ¥15 主机可以ping通路由器但是连不上网怎么办
  • ¥15 数据库一张以时间排好序的表中,找出多次相邻的那些行
  • ¥50 关于DynamoRIO处理多线程程序时候的问题
  • ¥15 kubeadm部署k8s出错
  • ¥15 Abaqus打不开cae文件怎么办?
  • ¥15 小程序准备上线,软件开发公司需要提供哪些资料给甲方