#include"msp430g2553.h"
#define uchar unsigned char
#define uint unsigned int
#define hongwai1 P1IN&BIT5
#define hongwai2 P1IN&BIT7
#define IN1_H P1OUT |=BIT3 //電機輸入IN1高電平
#define IN1_L P1OUT &=(~BIT3)//IN1 L
#define IN2_H P1OUT |=BIT4// IN2 H
#define IN2_L P1OUT &=(~BIT4) //電機輸入IN2低電平
#define IN3_H P1OUT |=BIT6 //電機輸入IN3高電平
#define IN3_L P1OUT &=(~BIT6)// IN3 L
#define IN4_H P2OUT |=BIT5//IN4 H
#define IN4_L P2OUT &=(~BIT5) //電機輸入IN4低電平
#define uchar unsigned char
void xunji();
void kong_zhi(uchar a0,uchar a1,uchar a2,uchar a3);
unsigned int buf=0;
void delay(unsigned int i) //延時子函式
{
unsigned int j,k;
for(j=0;j<i;j++)
for(k=0;k<10;k++);
}
int main(void)
{
WDTCTL=WDTPW+WDTHOLD; //關看門狗
TA0CCTL1=OUTMOD_7; //PWM 復位/置位模式
TA1CCTL1=OUTMOD_7;//計數上限值,計數到該值時計數器清零,輸出置位
TA0CCR0=0x0500;
TA0CCR1=0x0000;
TA1CCR0=0x0500;
TA1CCR1=0x0000;
//計數到該值時輸出復位
TA0CTL=TASSEL_2+MC_1; //設定Timer0
P1DIR|=BIT3+BIT4;
P1DIR|=BIT2+BIT6; //1.2和1.6置成輸出
P2DIR|=BIT1+BIT5;//2.1和2.5置成輸出
P1SEL|=BIT2;//開啟1.2第二功能
//P1DIR|=0x40; //P1.6 輸出PWM
//P1SEL|=0x40;
TA1CTL=TASSEL_2+MC_1;
P2SEL|=BIT1;//2.1開啟第二功能
P2SEL2&=~BIT1;//P2SEL2埠p2選擇2
P1DIR&=(~BIT5)+(~BIT7);
P1OUT|=BIT5+BIT7;//1.5 1.7高電平輸出
P1REN|=BIT5+BIT7;//電阻使能
while(1)
{xunji();
delay(10);
for(buf=0;buf<0x500;buf++) //改變占空比,形成呼吸燈效果
{
TA0CCR1=buf;
delay(10);
}
for(buf=0x500;buf>0;buf--)
{
TA0CCR1=buf;
TA1CCR1=buf;
delay(10);
}
}
}
void kong_zhi(uchar a0,uchar a1,uchar a2,uchar a3)
{
if(a0==1)
IN1_H;
else
IN1_L;
if(a1==1)
IN2_H;
else
IN2_L;
if(a2==1)
IN3_H;
else
IN3_L;
if(a3==1)
IN4_H;
else
IN4_L;
}
void xunji() //循跡子程式
{
if((P1IN&BIT5)==0x00&&(P1IN&BIT7)==0x00)
{
kong_zhi(1,0,1,0); //全部檢測到白線。小車前進
}
if((P1IN&BIT5)==0x00&&(P1IN&BIT7)!=0x00)
{
kong_zhi(1,0,0,1); //若7檢測到黑線⑥白線檢測到說明向左偏。小車右轉
}
if((P1IN&BIT5)!=0x00&&(P1IN&BIT7)==0x00)
{
kong_zhi(0,1,1,0);//若④檢測到黑線,③⑤⑥檢測到白線向右偏。小車左轉
}
if((P1IN&BIT5)!=0X00&&(P1IN&BIT7)!=0X00)
{--------------------------------------
kong_zhi(1,0,1,0);
}
}
想問下這個的輸出引腳接到l298n哪個地方,l298n使能端接哪,急求答案謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/102834.html
標籤:單片機/工控
上一篇:求助:通過無線路由器找不到設備
