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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC32G單片機編碼器模式

[復制鏈接]
跳轉到指定樓層
樓主
ID:25310 發表于 2022-6-20 17:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
有沒人測試過STC32G單片機的編碼器模式。
1.例程 中 P1口選擇P1.0 ,P1.2 ,STC32G 沒有P1.2   。這么郁悶的事也有。
2.換到P2 口也沒反應。
3.找到STC8H的編碼器歷程也不能用。

下面是STC8H編碼器模式歷程:
#include "reg51.h"
#include "intrins.h"

typedef struct TIM1_struct
{
    volatile unsigned char CR1;     /*!< control register 1 */
    volatile unsigned char CR2;     /*!< control register 2 */
    volatile unsigned char SMCR;    /*!< Synchro mode control register */
    volatile unsigned char ETR;     /*!< external trigger register */
    volatile unsigned char IER;     /*!< interrupt enable register*/
    volatile unsigned char SR1;     /*!< status register 1 */
    volatile unsigned char SR2;     /*!< status register 2 */
    volatile unsigned char EGR;     /*!< event generation register */
    volatile unsigned char CCMR1;   /*!< CC mode register 1 */
    volatile unsigned char CCMR2;   /*!< CC mode register 2 */
    volatile unsigned char CCMR3;   /*!< CC mode register 3 */
    volatile unsigned char CCMR4;   /*!< CC mode register 4 */
    volatile unsigned char CCER1;   /*!< CC enable register 1 */
    volatile unsigned char CCER2;   /*!< CC enable register 2 */
    volatile unsigned char CNTRH;   /*!< counter high */
    volatile unsigned char CNTRL;   /*!< counter low */
    volatile unsigned char PSCRH;   /*!< prescaler high */
    volatile unsigned char PSCRL;   /*!< prescaler low */
    volatile unsigned char ARRH;    /*!< auto-reload register high */
    volatile unsigned char ARRL;    /*!< auto-reload register low */
    volatile unsigned char RCR;     /*!< Repetition Counter register */
    volatile unsigned char CCR1H;   /*!< capture/compare register 1 high */
    volatile unsigned char CCR1L;   /*!< capture/compare register 1 low */
    volatile unsigned char CCR2H;   /*!< capture/compare register 2 high */
    volatile unsigned char CCR2L;   /*!< capture/compare register 2 low */
    volatile unsigned char CCR3H;   /*!< capture/compare register 3 high */
    volatile unsigned char CCR3L;   /*!< capture/compare register 3 low */
    volatile unsigned char CCR4H;   /*!< capture/compare register 3 high */
    volatile unsigned char CCR4L;   /*!< capture/compare register 3 low */
    volatile unsigned char BKR;     /*!< Break Register */
    volatile unsigned char DTR;     /*!< dead-time register */
    volatile unsigned char OISR;    /*!< Output idle register */
}TIM1_TypeDef;

#define TIM1_BaseAddress    0xFEC0

#define TIM1        ((TIM1_TypeDef xdata*)TIM1_BaseAddress)
#define PWMA_ENO    (*(unsigned char volatile xdata *)0xFEB1)
#define PWMA_PS     (*(unsigned char volatile xdata *)0xFEB2)

sfr     P0M0    =   0x94;
sfr     P0M1    =   0x93;
sfr     P1M0    =   0x92;
sfr     P1M1    =   0x91;
sfr     P_SW2   =   0xba;

sbit    P03     =   P0^3;

unsigned char cnt_H, cnt_L;

void main(void)
{
    P_SW2 = 0x80;

    P1M1 = 0x0f;
    P1M0 = 0x00;

    PWMA_ENO = 0x00;                            //配置成TRGI 的pin需關掉ENO對應bit并配成input
    PWMA_PS = 0x00;                             //00:PWM at P1

    TIM1-> PSCRH = 0x00;                        //預分頻寄存器
    TIM1-> PSCRL = 0x00;

    TIM1-> CCMR1  = 0x21;                       //通道模式配置為輸入,接編碼器,濾波器4時鐘
    TIM1-> CCMR2  = 0x21;                       //通道模式配置為輸入,接編碼器,濾波器4時鐘

    TIM1-> SMCR   = 0x03;                       //編碼器模式3

    TIM1-> CCER1  = 0x55;                       //配置通道使能和極性
    TIM1-> CCER2  = 0x55;                       //配置通道使能和極性

    TIM1-> IER  = 0x02;                         //使能中斷

    TIM1-> CR1 |= 0x01;                         //使能計數器

    EA = 1;

    while (1);
}

/******************** PWM中斷讀編碼器計數值**************************/
void PWMA_ISR() interrupt 26
{
    if (TIM1->SR1 & 0X02)
    {
        P03 = ~P03;
        cnt_H = TIM1->CCR1H;
        cnt_L = TIM1->CCR1L;
        TIM1->SR1 &= ~0X02;
    }
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:514317 發表于 2022-6-22 11:31 | 只看該作者
STC32沒試過   但STC8H使用P2口通過可以使用
回復

使用道具 舉報

板凳
ID:409878 發表于 2022-6-23 08:36 | 只看該作者
感覺和51有點類似啊。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一区二区三区在线观看 | 亚洲国产欧美在线 | 日韩激情在线 | 天堂久 | 亚洲精品一区二区三区蜜桃久 | 日韩欧美网 | 亚洲男女激情 | 天天干b| 欧美精品一区二区在线观看 | 欧美不卡一区 | 一区天堂| 免费看黄色视屏 | 免费在线视频一区二区 | 欧美精品久久一区 | www.国产一区 | 精品国产一区二区在线 | 国产日韩精品久久 | 欧美黄在线观看 | 免费在线一区二区 | 人人做人人澡人人爽欧美 | 国产视频中文字幕 | 国产精品一区二区在线播放 | 99re6在线视频精品免费 | 精品久久久久久久久久久久久久 | 日韩一区二区免费视频 | 成人在线免费观看 | 日韩中文字幕在线视频 | 日韩欧美国产精品一区二区三区 | 久久久www成人免费无遮挡大片 | 黄色国产大片 | 日韩精品一区二区三区在线观看 | 亚洲精品99999 | 日本在线视频不卡 | 北条麻妃av一区二区三区 | 日韩欧美中文在线 | 激情小视频 | 日日爽| 国产精品久久久久一区二区三区 | 日本精品一区二区 | 激情六月丁香婷婷 | 国产亚洲精品精品国产亚洲综合 |