欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1486|回復: 1
收起左側

請教單片機PCA做16位定時器使用的問題

[復制鏈接]
ID:961122 發表于 2022-5-25 22:31 | 顯示全部樓層 |閱讀模式
我用STC15F2K60S2的單片機,想在按下P32時啟動定時器,讀取當前[CH CL]值,加定時長度再存入[CCAP0L CCAP0H],每個中斷變接P11的狀態。實際運行時是按下P32后P1輸出的周期是73ms.想要的調定值是1ms.不知是什么原因,有高人幫忙看一下嗎?
#define _MAIN_C

#include <reg51.h>
unsigned int value;

sbit test_button        = P3^2;
sbit pulse_out          = P1^1;
sbit covery_motor       = P1^2;

bit test_flag=0;

void active(void);

unsigned int current_value;

#define Basetime    (0x039A) 1ms// (11059200/12/1000)

void main(void){
    P1M1=0x00;
    P1M0=0x0C;

    test_button=1;
    pulse_out=1;
    CCON = 0x00;
    CMOD = 0x00;                                //PCA時鐘為系統時鐘/12
    CR = 1;                                     //啟動PCA計時器
    EA = 1;


    while (1){
        if(test_button==0 && test_flag==0){
            test_flag=1;
            covery_motor= ~covery_motor;
                    active();
        }           
        if(test_button==1 && test_flag==1)
            test_flag=0;

    }   
}
void active(void){

    pulse_out=0;
    CCAPM0 = 0x49;                              //PCA模塊0為16位定時器模式
    current_value=(CH<<8+CL)+Basetime;
    CCAP0L=current_value;
    CCAP0H=current_value>>8;
}

void PCA_Isr() interrupt 7
{
    pulse=~pulse;
    CCF0 = 0;
    current_value=(CH<<8+CL)+Basetime;
    CCAP0L=current_value;
    CCAP0H=current_value>>8;


}
回復

使用道具 舉報

ID:961122 發表于 2022-5-25 23:05 | 顯示全部樓層
已解決,CH<8要加括號,沒有得刪帖功能,只能在這回復
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表