久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1958|回復: 11
收起左側

請教單片機MCU定時器產生互補帶死區PWM

[復制鏈接]
ID:284571 發表于 2022-4-9 12:56 來自手機 | 顯示全部樓層 |閱讀模式
如何用一個單片機定時產生互補帶死區的PWM信號?
互補PWM可以實現、死區怎么弄?謝謝
回復

使用道具 舉報

ID:883242 發表于 2022-4-9 13:35 | 顯示全部樓層
看你的單片機定時器是否支持PWM死區了,連單片機型號都不說,我們也不會算命。
回復

使用道具 舉報

ID:161164 發表于 2022-4-9 13:35 來自手機 | 顯示全部樓層
周期要多快?說說你的互補是如何實現的?
回復

使用道具 舉報

ID:213173 發表于 2022-4-9 15:28 | 顯示全部樓層
                if(PWMA==1)
                {
                        PWMA=0;                                        //A通道關閉
                        Delay10us();                        //死區延時
                        PWMB=1;                                        //B通道打開
                }
                else
                {
                        PWMB=0;                                        //B通道關閉
                        Delay10us();                        //死區延時
                        PWMA=1;                                        //A通道打開
                }
回復

使用道具 舉報

ID:284571 發表于 2022-4-10 11:51 | 顯示全部樓層
本帖最后由 WCM1998 于 2022-4-11 08:10 編輯

void TIM1_PWM_Init(void)
{
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_OCInitTypeDef  TIM_OCInitStructure;
  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);

    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Period    =   arr;               
    TIM_TimeBaseStructure.TIM_Prescaler =   psc;              
    //Setting Clock Segmentation
    TIM_TimeBaseStructure.TIM_ClockDivision = (TIMCKD_TypeDef)0;
    TIM_TimeBaseStructure.TIM_RepetitionCounter = 1;        
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;//中心對齊;
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
  
     /**  通道 1              **/
    TIM_OCStructInit(&TIM_OCInitStructure);
    //Select Timer Mode: TIM Pulse Width Modulation Mode 2
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
    TIM_OCInitStructure.TIM_OutputState =  TIM_OutputState_Enable;   //OC*輸出
    TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable; // 互補輸出關閉。關

閉OC*N輸出
    TIM_OCInitStructure.TIM_Pulse = 200;                             //占空比
     
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;        //匹配時輸出高電平
    TIM_OC1Init(TIM1, &TIM_OCInitStructure);
    TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Disable);   
   
    /**  通道 3              **/
    TIM_OCStructInit(&TIM_OCInitStructure);
    //Select Timer Mode: TIM Pulse Width Modulation Mode 2
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
    TIM_OCInitStructure.TIM_OutputState =  TIM_OutputState_Enable;   //OC*輸出
    TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable; // 互補輸出關閉。關

閉OC*N輸出
    TIM_OCInitStructure.TIM_Pulse = 200;                             //占空比
     
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;        //匹配時輸出高電平
    TIM_OC3Init(TIM1, &TIM_OCInitStructure);
    TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Disable);      
    TIM_ARRPreloadConfig(TIM1, ENABLE);                              //重裝載ARR
   
    TIM_Cmd(TIM1, ENABLE);
    TIM_CtrlPWMOutputs(TIM1, ENABLE);
}
//===占空比
void TIM1_PWM_Duty(u8 Duty)

{   
  Puls1=arr-Duty-dy;//dy是死區時間,72M/13.89ns一個周期,1000ns;dy=1000/2/((psc+1*13.89))=36
  Puls3=arr-CCR1;  TIM_SetCompare1(TIM1,Puls1);
   TIM_SetCompare3(TIM1,Puls3);

}
這種方法不正確。如果占空比太小就沒死區了
回復

使用道具 舉報

ID:284571 發表于 2022-4-10 13:51 | 顯示全部樓層
本帖最后由 WCM1998 于 2022-4-11 08:08 編輯

大們指教一下。。。
回復

使用道具 舉報

ID:684084 發表于 2022-4-11 13:34 | 顯示全部樓層
51單片機麻煩一點,STM之類的PWM有死區設置的
回復

使用道具 舉報

ID:382454 發表于 2022-4-11 21:51 | 顯示全部樓層
定時器不好搞吧,現在用STC8系列有PWM模塊啊。這個才是專業的。
回復

使用道具 舉報

ID:284571 發表于 2022-4-12 08:53 來自手機 | 顯示全部樓層
Ecole 發表于 2022-4-11 13:34
51單片機麻煩一點,STM之類的PWM有死區設置的

stm有互補帶死區的pwm、但是現在很多都用一通道和另一個通道互補也不知道有什么好處、這樣配置也是在別人的硬件上抄下的、
回復

使用道具 舉報

ID:123289 發表于 2022-4-12 10:55 | 顯示全部樓層
先讀通芯片手冊。
如果是自己用定時器做的(不用PWM模塊),就規定一個最小脈沖寬值。
回復

使用道具 舉報

ID:284571 發表于 2022-4-12 15:25 | 顯示全部樓層
是定時器PWM模塊,我以配好互補。但沒有配出死區。所以請教。。程序在5樓
回復

使用道具 舉報

ID:61883 發表于 2022-4-12 17:51 | 顯示全部樓層
兩種辦法,一種是使用定時器GPIO模擬;另一種是使用支持死區輸出的單片機。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久av麻豆果冻 | 欧美黄色一区 | 日韩欧美中文字幕在线观看 | 美女久久视频 | 久久久av | 日韩在线精品视频 | 在线观看黄免费 | 国产精品精品 | 日韩久久久久久 | 成人欧美一区二区 | 欧美精品国产一区二区 | 午夜欧美 | av黄色免费 | 亚洲精品中文字幕在线 | japanhd成人 | 亚洲国产成人在线视频 | 国产91久久久久久 | 久久久亚洲一区 | 久久国产精品一区 | 欧美激情亚洲 | 免费网站在线 | 亚洲精品9999 | 久草新视频 | 在线视频第一页 | 成人在线视频免费观看 | 亚洲国产18 | 中文字幕在线观看第一页 | 国产91精品久久久久久久网曝门 | 国产a区 | 一区二区三区影院 | 日本成人二区 | 成人在线观看免费观看 | 欧美一区在线视频 | 日韩精品| 国产福利一区二区 | 国产高清精品一区二区三区 | 亚洲综合日韩精品欧美综合区 | 日韩欧美在线视频 | 亚洲一区 中文字幕 | 九九热久久免费视频 | 久久成人一区 |