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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4188|回復: 12
打印 上一主題 下一主題
收起左側

關于8系PWM輸出設置 STC8H1K08單片機

  [復制鏈接]
跳轉到指定樓層
樓主
選用的單片機芯片8H1K08,只有定時器0,1,2 。 用了兩路串口分別是57600,9600.一個接屏幕,一個接讀卡器。占用兩個定時器,最后一個定時器用了計時和別的功能,現在還需要一路IO口輸出PWM功能,周期100us ,10us~20us可調,只能用硬件了。對著例程弄了一天了。沒輸出。IO我已經切換了,下面是我改的。還有時鐘也沒弄好。
void TxPulse()
{
    P_SW2 = 0x80;
    PWMA_CCER2 = 0x00;                          //寫CCMRx前必須先清零CCERx關閉通道
    PWMA_CCMR4 = 0x60;                          //設置CC為PWMA輸出模式
    PWMA_CCER2 = 0x10;                          //使能CC通道
    PWMA_CCR4 = 100;                            //設置占空比時間
    PWMA_ARR = 500;                             //設置周期時間
    PWMA_ENO = 0x80;                            //使能PWM4N端口輸出
    PWMA_BKR = 0x80;                            //使能主輸出
    PWMA_CR1 = 0x01;                            //開始計時

}



用的是PWM4N_2   P3.3

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:427868 發表于 2023-6-15 23:02 | 只看該作者
我也正在試驗它,也是P3.3輸出,我覺得例程是PWM1P腳輸出的,要用PWMA通道4在P3.3輸出,還需定義輸出腳才行,所以在例程的基礎上增加了:PWMA_PS = 0xC0;  //使能PWM4N端口選在P3.3(14腳),甚至還要改定義PWMA_CCER4和PWMA_CCMR4,但是否可以輸出,還沒有測試。
void        pwmout(u16 zhankong)       
{
        P_SW2 |= 0x80;                                                                                                //使能XFR
        PWMA_CCER1 = 0x00;                    //寫CCMRx前必須先清零CCERx關閉通道
        PWMA_CCMR1 = 0x60;                    //設置CC1為PWMA輸出模式
        PWMA_CCER1 = 0x01;                    //使能CC1通道
       
        PWMA_CCR1 = zhankong;               //設置占空比時間
        PWMA_ARR = 99;                         //設置周期時間24MHZ時,PWM輸出120KHZ
        PWMA_ENO = 0x80;                     //使能PWM4N端口輸出
        PWMA_PS = 0xC0;                       //使能PWM4N端口選在P3.3(14腳)
        PWMA_BKR = 0x80;                      //使能主輸出
        PWMA_CR1 = 0x01;                      //開始計時
}
回復

使用道具 舉報

板凳
ID:60656 發表于 2023-6-21 22:47 | 只看該作者
io要配置推挽輸出
回復

使用道具 舉報

地板
ID:1085649 發表于 2023-6-24 02:55 | 只看該作者
有些型號默認輸出高阻態,不知道你設置沒
還需要用輔助寄存器切換IO口
可以參考PCA相關例程
回復

使用道具 舉報

5#
ID:427868 發表于 2023-6-25 18:33 | 只看該作者
是設置的問題,以下我測試輸出正常,占空比符合設置預期。輸出端口也是P3.3

include<stc8h.h>        //STC8H1K08        TSSOP20
sbit out = P3^3;      //電機PWM信號輸出
/*************************主函數**********************************/       
void main()
{
   P0M0 = 0x00; P0M1 = 0x00;        P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;        P3M0 = 0x08; P3M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;

    P_SW2 = 0x80;
    PWMB_CCER2 = 0x00;              //寫CCMRx前必須先清零CCERx關閉通道
    PWMB_CCMR3= 0x60;               //設置CC7為PWMA輸出模式
    PWMB_CCER2 = 0x01;              //使能CC7通道
    PWMB_CCR7 = 5;                    //設置占空比時間
    PWMB_ARR = 999;                   //設置周期時間
    PWMB_ENO = 0x10;                //使能PWM7端口輸出
    PWMB_PS = 0x10;                         //PWM7在P3.3輸出
    PWMB_BKR = 0x80;                //使能主輸出
    PWMB_CR1 = 0x01;                //開始計時
    while (1);
}
回復

使用道具 舉報

6#
ID:1034262 發表于 2023-6-25 19:57 | 只看該作者
建議先測試STC官方的例程,然后再修改移植。
回復

使用道具 舉報

7#
ID:1088441 發表于 2023-7-14 09:39 | 只看該作者
劉佑紅 發表于 2023-6-25 18:33
是設置的問題,以下我測試輸出正常,占空比符合設置預期。輸出端口也是P3.3

include        //STC8H1K08        TSSOP2 ...

為什么我用這段代碼在keil上進行軟件仿真時P3.3一直輸出的是高電平呢
回復

使用道具 舉報

8#
ID:1088441 發表于 2023-7-14 09:42 | 只看該作者
樓主搞定了嗎,我用P5.4想輸出PWM也一直輸出不了
回復

使用道具 舉報

9#
ID:427868 發表于 2023-7-17 21:02 | 只看該作者
     剛測,正常輸出可調PWM,ARR和CCR采用預裝載方式,在使用中可隨時改變,寄存器初始化可參照設置。采用的STC8H1K16,P2.7腳輸出(PWM4N)
        P_SW2 |= 0x80;                                //開啟P_SW2寄存器1000 0000
        PWMA_CCER2 = 0x00;                 //寫CCMRx前必須先清零CCERx關閉通道
        PWMA_CCMR4 = 0x68;                 //設置CC4為PWM輸出模式,開啟預裝載CCR4 0110 1000
        //PWMA_CCMR4 = 0x78;             //設置CC4為PWM輸出模式,開啟預裝載CCR4 0111 1000(負極性輸出)
        PWMA_CCER2 = 0x40;                 //0100 0000單獨使能CC4N通道(不開CC4P),輸出高電平
        PWMA_CCR4 = 2500;                  //設置占空比時間
        PWMA_ARR = 5000;                   //設置周期時間
        PWMA_PS = 0x40;                    //PWM4N在P2.7輸出0100 0000
        PWMA_ENO = 0x80;                   //使能PWM4N端口輸出1000 0000
        PWMA_BKR = 0x80;                   //使能主輸出1000 0000
        PWMA_CR1 = 0x81;                   //開始計時 1000 0001開啟自動預裝載PWMA_ARR
回復

使用道具 舉報

10#
ID:1088441 發表于 2023-7-18 09:29 | 只看該作者
劉佑紅 發表于 2023-7-17 21:02
剛測,正常輸出可調PWM,ARR和CCR采用預裝載方式,在使用中可隨時改變,寄存器初始化可參照設置。采用 ...

請問你的頻率設置的多少呢,為什么我用你這個改一下在P54口輸出就沒有效果呢
回復

使用道具 舉報

11#
ID:427868 發表于 2023-7-18 10:35 | 只看該作者
Aresxiaogui 發表于 2023-7-18 09:29
請問你的頻率設置的多少呢,為什么我用你這個改一下在P54口輸出就沒有效果呢

我的PWM輸出頻率范圍是1-25KHZ(由外部電壓改變頻率),系統是12MHZ,PWM時鐘不分頻。STC8H1K08的P5.4是PWM6口輸出,相應的寄存器需作對應修改。
回復

使用道具 舉報

12#
ID:427868 發表于 2023-7-18 11:45 | 只看該作者
     STC8H單片機PWM的寄存器太多,且有些寄存器的功能看著比較相似,手冊介紹的也不太清楚,難以區別,設置起來非常困難,我前前后后閱讀器多次并反復設置測試,PWM才正常,但其捕捉功能我現在還沒明白。
       樓主的PWM沒有輸出,我在STC8H1K164N已輸出正常,頻率和占空比按照預設要求輸出,經對比發現對寄存器的設置有以下不同:





1. PWMA_CCMR4。 樓主設置 0x60=0110 0000,我設置的是0x68=0110 1000,我與樓主相比是多開啟了占空比數值預裝載功能。官方的例程僅是輸出PWM測試,不改變占空比CCR和計數周期ARR的數值,所以官方例程沒有開啟占空比和計數周期預裝載功能,在實際應用時大都需要是是調整占空比和頻率,更改預裝載值,故大多數情況下是開啟。
2. PWMA_CCER2。樓主設置0x10=0001 0000,使B4位的CC4E=1,開啟的是4P比較功能,我設置的是0x40=0100 0000,使B6位的CC4NE=1,開啟的是4N比較功能。
我們開啟的是4N功能,故PWMA_CCER2應該設置為0x40才行。
3.樓主沒有設置PWMA_PS,即PWMA_PS是復位值0x00,其設置為4N在P1.7腳輸出;我設置PWMA_PS = 0x40=0100 0000,設置4N在P2.7腳輸出。樓主的是STC8H1K08,4N欲在P3.3輸出,設置PWMA_PS= 0xC0才行(11000000)。
4.PWMA_CR1。區別同1,我是開啟了ARR預裝載功能。

回復

使用道具 舉報

13#
ID:645889 發表于 2023-8-5 08:31 | 只看該作者
劉佑紅 發表于 2023-7-18 11:45
STC8H單片機PWM的寄存器太多,且有些寄存器的功能看著比較相似,手冊介紹的也不太清楚,難以區別,設 ...

說得很詳細,剛好有個項目要用,參考下,謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91 久久 | 亚洲伊人精品酒店 | 国产精品日日摸夜夜添夜夜av | 91久久综合亚洲鲁鲁五月天 | 午夜影院在线观看免费 | 精品视频免费 | 日韩欧美一级精品久久 | 免费成人高清 | 中文字幕亚洲在线 | 日韩电影中文字幕 | 日韩精品在线一区 | 日本午夜免费福利视频 | 国产成人精品999在线观看 | 韩日一区二区 | 天天爱天天操 | 日本精品在线播放 | 日韩在线综合 | 美女二区 | 国产乱码精品一区二区三区忘忧草 | 免费在线观看av片 | 81精品国产乱码久久久久久 | 欧美在线一二三 | 久草资源在线 | 国产成人区| 色婷婷av一区二区三区软件 | 精品国产18久久久久久二百 | 免费a国产 | 狠狠的干 | 91极品尤物在线播放国产 | 国产三级国产精品 | 美女一区 | 日韩爱爱网 | 精品久久香蕉国产线看观看亚洲 | 中文字幕精品视频 | 成人福利视频 | 欧美日韩国产高清视频 | 久久av资源网 | 日日夜夜天天 | 国产一区二区精品在线 | 精品久久久久久久久久久久久久 | 国产男女精品 |