91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

pic16f716在spwm半橋輸出

pic16f716單片機spwm輸出模式半橋狀態,可是有相波形的第一個脈寬不對啊(如圖一),圖二是另外一相波形,這個是我想要的,不明白第一個為什么,

  圖一

 

還有一個問題為什么我設置的死去時間的一個單位時間是:SPWM的周期時間啊,而不是datasheet上講的是Fosc/4

全部回復(4)
正序查看
倒序查看
wubaoxue
LV.1
2
2013-10-12 15:32

這個是我的半橋程序,有哪位大俠能幫我看看啊!!!,這波形怎么會是上面這個樣子,還有死去時間,我實在無語了!!

//spwm調制,逆變器,

#include

#define uchar unsigned char

#define uint unsigned int

__CONFIG(0X3F32);

const uchar sinTab[200]={   //調制度M=0.9;正弦波代碼數組

0,1,2,3,4,5,6,7,8,10,

11,12,13,14,15,16,17,18,19,20,

21,22,23,24,25,26,27,28,29,30,

31,32,33,33,34,35,36,37,38,39,

40,41,41,42,43,44,45,45,46,47,

48,48,49,50,51,51,52,53,53,54,

55,55,56,56,57,58,58,59,59,60,

60,61,61,62,62,62,63,63,64,64,

64,65,65,65,65,66,66,66,66,66,

67,67,67,67,67,67,67,67,67,67,

67,67,67,67,67,67,67,67,67,

67,66,66,66,66,66,65,65,65,65,

64,64,64,63,63,62,62,62,61,61,

60,60,59,59,58,58,57,56,56,55,

55,54,53,53,52,51,51,50,49,48,

48,47,46,45,45,44,43,42,41,41,

40,39,38,37,36,35,34,33,33,32,

31,30,29,28,27,26,25,24,23,22,

21,20,19,18,17,16,15,14,13,12,

11,10,8,7,6,5,4,3,2,1,0

};

/*基波50Hz,載波20KHz,半周期內的采樣點數為100,則pwm的周期=1/20ms=50us*/

/*SPWM初始化*/

uchar B_D=0,i;

void init()

{

TRISB=0X28; //

PR2=149; //SPWM為50uS=150*4*(1/12)

CCP1CON=0XBd;   //spwm模式選擇,半橋1011,1101,A、c高有效,b、d低有效

CCPR1L=0; //占空比為0

PWM1CON=0X00; //


TMR2IF=0;

T2CON=0X04; //不分頻,使能TMR2

}

void  tmr2()

{

if(TMR2IF)

{

if(i==200)

{

i=0;

B_D=!B_D;

}

if(B_D)

{

TRISB=0X20; //B...C


}

else

{

TRISB=0X08; //D...A

}


PR2=149; //SPWM為50uS=150*4*(1/12)

CCPR1L=sinTab[i];

TMR2IF=0;


i++;

}

}

void main ()

{

init();

while(1)

{

 tmr2();

}

}


0
回復
2013-10-21 14:57
@wubaoxue
這個是我的半橋程序,有哪位大俠能幫我看看啊!!!,這波形怎么會是上面這個樣子,還有死去時間,我實在無語了!!//spwm調制,逆變器,#include#defineucharunsignedchar#defineuintunsignedint__CONFIG(0X3F32);constucharsinTab[200]={ //調制度M=0.9;正弦波代碼數組0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,33,34,35,36,37,38,39,40,41,41,42,43,44,45,45,46,47,48,48,49,50,51,51,52,53,53,54,55,55,56,56,57,58,58,59,59,60,60,61,61,62,62,62,63,63,64,64,64,65,65,65,65,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,66,66,66,66,66,65,65,65,65,64,64,64,63,63,62,62,62,61,61,60,60,59,59,58,58,57,56,56,55,55,54,53,53,52,51,51,50,49,48,48,47,46,45,45,44,43,42,41,41,40,39,38,37,36,35,34,33,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,8,7,6,5,4,3,2,1,0};/*基波50Hz,載波20KHz,半周期內的采樣點數為100,則pwm的周期=1/20ms=50us*//*SPWM初始化*/ucharB_D=0,i;voidinit(){TRISB=0X28;//PR2=149;//SPWM為50uS=150*4*(1/12)CCP1CON=0XBd; //spwm模式選擇,半橋1011,1101,A、c高有效,b、d低有效CCPR1L=0;//占空比為0PWM1CON=0X00;//TMR2IF=0;T2CON=0X04;//不分頻,使能TMR2}void tmr2(){if(TMR2IF){if(i==200){i=0;B_D=!B_D;}if(B_D){TRISB=0X20;//B...C}else{TRISB=0X08;//D...A}PR2=149;//SPWM為50uS=150*4*(1/12)CCPR1L=sinTab[i];TMR2IF=0;i++;}}voidmain(){init();while(1){ tmr2();}}
半橋SPWM上下橋臂的驅動應該是互補的吧....
0
回復
zy_eric
LV.3
4
2013-10-21 20:19
你是公司做產品否?如果是我這邊可以幫你解答 Q1723549569
0
回復
daihui713
LV.6
5
2013-10-29 17:25
@wubaoxue
這個是我的半橋程序,有哪位大俠能幫我看看啊!!!,這波形怎么會是上面這個樣子,還有死去時間,我實在無語了!!//spwm調制,逆變器,#include#defineucharunsignedchar#defineuintunsignedint__CONFIG(0X3F32);constucharsinTab[200]={ //調制度M=0.9;正弦波代碼數組0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,33,34,35,36,37,38,39,40,41,41,42,43,44,45,45,46,47,48,48,49,50,51,51,52,53,53,54,55,55,56,56,57,58,58,59,59,60,60,61,61,62,62,62,63,63,64,64,64,65,65,65,65,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,66,66,66,66,66,65,65,65,65,64,64,64,63,63,62,62,62,61,61,60,60,59,59,58,58,57,56,56,55,55,54,53,53,52,51,51,50,49,48,48,47,46,45,45,44,43,42,41,41,40,39,38,37,36,35,34,33,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,8,7,6,5,4,3,2,1,0};/*基波50Hz,載波20KHz,半周期內的采樣點數為100,則pwm的周期=1/20ms=50us*//*SPWM初始化*/ucharB_D=0,i;voidinit(){TRISB=0X28;//PR2=149;//SPWM為50uS=150*4*(1/12)CCP1CON=0XBd; //spwm模式選擇,半橋1011,1101,A、c高有效,b、d低有效CCPR1L=0;//占空比為0PWM1CON=0X00;//TMR2IF=0;T2CON=0X04;//不分頻,使能TMR2}void tmr2(){if(TMR2IF){if(i==200){i=0;B_D=!B_D;}if(B_D){TRISB=0X20;//B...C}else{TRISB=0X08;//D...A}PR2=149;//SPWM為50uS=150*4*(1/12)CCPR1L=sinTab[i];TMR2IF=0;i++;}}voidmain(){init();while(1){ tmr2();}}

增強型的CCP PWM,16F690好像也可以

0
回復
主站蜘蛛池模板: 长顺县| 屯门区| 邯郸县| 共和县| 宝鸡市| 兖州市| 乌海市| 南丰县| 静乐县| 阜南县| 东乡族自治县| 阿图什市| 苗栗县| 平乐县| 巴东县| 望谟县| 武宣县| 高安市| 万山特区| 遂川县| 桃园县| 兴化市| 含山县| 田阳县| 肇庆市| 阿克陶县| 石狮市| 岐山县| 化州市| 湘潭市| 钦州市| 云霄县| 上高县| 武陟县| 汝阳县| 甘德县| 贺兰县| 梨树县| 泗水县| 遂昌县| 桐乡市|