پاسخ : راه اندازی موتور براشلس (BLDC)
در switch a پایه های 0 و 1 پورت a کنترل میشوند. درست؟
در switch b پایه های 2 و 3 کنترل میشوند. اینم درست.
اما در switch c باید پایه های 4 و 5 کنترل شوند اما همچنان هما 2 و 3 کنترل میشوند.
ببخشید اگر از کلمه های علمی استفاده نکردم. اگر هم غلط اشتباه گرفتم باز هم ببخشید.
سلام,
فکر کنم مشکل از تابع bldc باشه.
void BLDC (char a ,char b , char c){
switch (a)
{
case 'H': //HIGH
avr(PORTA).P0=1;
avr(PORTA).P1=1;
break;
case 'L': //LOW
avr(PORTA).P0=0;
avr(PORTA).P1=0;
break;
case 'T': //Three-state
avr(PORTA).P0=0;
avr(PORTA).P1=1;
break;
}
switch (b)
{
case 'H': //HIGH
avr(PORTA).P2=1;
avr(PORTA).P3=1;
break;
case 'L': //LOW
avr(PORTA).P2=0;
avr(PORTA).P3=0;
break;
case 'T': //Three-state
avr(PORTA).P2=0;
avr(PORTA).P3=1;
break;
}
switch (c)
{
case 'H': //HIGH
avr(PORTA).P2=1;
avr(PORTA).P3=1;
break;
case 'L': //LOW
avr(PORTA).P2=0;
avr(PORTA).P3=0;
break;
case 'T': //Three-state
avr(PORTA).P2=0;
avr(PORTA).P3=1;
break;
}
}
فکر کنم مشکل از تابع bldc باشه.
void BLDC (char a ,char b , char c){
switch (a)
{
case 'H': //HIGH
avr(PORTA).P0=1;
avr(PORTA).P1=1;
break;
case 'L': //LOW
avr(PORTA).P0=0;
avr(PORTA).P1=0;
break;
case 'T': //Three-state
avr(PORTA).P0=0;
avr(PORTA).P1=1;
break;
}
switch (b)
{
case 'H': //HIGH
avr(PORTA).P2=1;
avr(PORTA).P3=1;
break;
case 'L': //LOW
avr(PORTA).P2=0;
avr(PORTA).P3=0;
break;
case 'T': //Three-state
avr(PORTA).P2=0;
avr(PORTA).P3=1;
break;
}
switch (c)
{
case 'H': //HIGH
avr(PORTA).P2=1;
avr(PORTA).P3=1;
break;
case 'L': //LOW
avr(PORTA).P2=0;
avr(PORTA).P3=0;
break;
case 'T': //Three-state
avr(PORTA).P2=0;
avr(PORTA).P3=1;
break;
}
}
در switch a پایه های 0 و 1 پورت a کنترل میشوند. درست؟
در switch b پایه های 2 و 3 کنترل میشوند. اینم درست.
اما در switch c باید پایه های 4 و 5 کنترل شوند اما همچنان هما 2 و 3 کنترل میشوند.
ببخشید اگر از کلمه های علمی استفاده نکردم. اگر هم غلط اشتباه گرفتم باز هم ببخشید.
دیدگاه