找回密码
 立即注册
查看: 809|回复: 10

8g1k08a 8pin pca高速脉冲 p54不输出

[复制链接]

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-10-13 21:36:57 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-10-13 22:21 编辑


#include "config.h"

#define     PCA_T1US        (MAIN_Fosc / 12 / 1000000)  // 1us 12分频
#define     PWM_DUTY        (20000*PCA_T1US)            // 20ms

u16 g_pwm_tmps[3];
u16 g_pwm_highs[3]={PCA_T1US*500, PCA_T1US*2500, PCA_T1US*500};
u16 g_pwm_lows[3]={PWM_DUTY-PCA_T1US*500, PWM_DUTY-PCA_T1US*2500, PWM_DUTY-PCA_T1US*500};

void PCA_Init(void)
{
    CCON = 0x00;
    CMOD = 0x00;                                //PCA时钟为系统时钟12分频
    CL = 0x00;
    CH = 0x00;

    CCAPM0 = 0x4d;                              //PCA模块0为16位定时器模式并使能脉冲输出
    g_pwm_tmps[0 = PCA_T1US*500;
    CCAP0L = g_pwm_tmps[0];
    CCAP0H = g_pwm_tmps[0 >> 8;
    g_pwm_tmps[0 += PCA_T1US*500;

    CCAPM1 = 0x4d;                              //PCA模块0为16位定时器模式并使能脉冲输出
    g_pwm_tmps[1 = PCA_T1US*500;
    CCAP1L = g_pwm_tmps[1];
    CCAP1H = g_pwm_tmps[1 >> 8;
    g_pwm_tmps[1 += PCA_T1US*500;

    CCAPM2 = 0x4d;
    g_pwm_tmps[2 = PCA_T1US*500;
    CCAP2L = g_pwm_tmps[2];
    CCAP2H = g_pwm_tmps[2 >> 8;
    g_pwm_tmps[2 += PCA_T1US*500;

    CR = 1;                                     //启动PCA计时器
}
void PCA_Isr() interrupt 7
{
    if(CCF0) {
        CCF0 = 0;
        if(P32) g_pwm_tmps[0 += g_pwm_highs[0];   
        else    g_pwm_tmps[0 += g_pwm_lows[0];
        CCAP0L = g_pwm_tmps[0];
        CCAP0H = g_pwm_tmps[0 >> 8;
    }

    if(CCF1) {
        CCF1 = 0;
        if(P33) g_pwm_tmps[1 += g_pwm_highs[1];   
        else    g_pwm_tmps[1 += g_pwm_lows[1];
        CCAP1L = g_pwm_tmps[1];
        CCAP1H = g_pwm_tmps[1 >> 8;
    }

    if(CCF2) {
        CCF2 = 0;
        if(P54) g_pwm_tmps[2 += g_pwm_highs[2];
        else   g_pwm_tmps[2 += g_pwm_lows[2];
        CCAP2L = g_pwm_tmps[2];
        CCAP2H = g_pwm_tmps[2 >> 8;
    }

    if(CF) CF = 0;         
}

void delay_ms(unsigned char ms)
{
    unsigned int i;
    do{
        i = MAIN_Fosc / 1000;
        while(--i);
    }while(--ms);
}

void main()
{
    P3M0 = 0x00;
    P3M1 = 0x00;

        P5M0 &= ~0x10; P5M1 &= ~0x10;



    delay_ms(100);

    PCA_Init();
    EA = 1;

    // CR = 0;
    // g_pwm_highs[0] = 3000*PCA_T1US;
    // g_pwm_lows[0] = PWM_DUTY-g_pwm_highs[0];
    // g_pwm_highs[1] = 500*PCA_T1US;
    // g_pwm_lows[1] = PWM_DUTY-g_pwm_highs[1];
    // g_pwm_highs[2] = 4000*PCA_T1US;
    // g_pwm_lows[2] = PWM_DUTY-g_pwm_highs[2];
    // CR = 1;

    while (1);
}




_cgi-bin_mmwebwx-bin_webwxgetmsgimg__&MsgID=4404248992228007865&skey=@crypt_a6bb.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-10-14 09:47:05 | 显示全部楼层
P54是黄色信号吗?
将P54设置推挽输出,或者断开外围电路,直接测量脚位信号试试。
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-10-14 10:11:04 | 显示全部楼层
乘风*** 发表于 2024-10-14 09:47
P54是黄色信号吗?
将P54设置推挽输出,或者断开外围电路,直接测量脚位信号试试。 ...

是黄色信号, 设置过推挽输出也没用的, 现在没有外围电路, 仅用裸芯片量脚位信号的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:288
  • 最近打卡:2025-05-02 15:37:40

0

主题

52

回帖

1284

积分

金牌会员

积分
1284
发表于 2024-10-14 10:26:23 | 显示全部楼层
    P5M0 = 0x10; P5M1 = 0x00;
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-10-14 10:30:53 | 显示全部楼层
蜗*** 发表于 2024-10-14 10:26
P5M0 = 0x10; P5M1 = 0x00;

这个我也试过了, 不太行
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:156
  • 最近打卡:2025-04-29 00:51:09

24

主题

229

回帖

1281

积分

金牌会员

积分
1281
发表于 2024-10-14 11:18:41 | 显示全部楼层
注意EAXFR设置,最好初始化时候先打开
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-10-14 11:30:43 | 显示全部楼层
CyberH*** 发表于 2024-10-14 11:18
注意EAXFR设置,最好初始化时候先打开

请问这里我该怎么改呀? 感谢
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-10-14 11:34:15 | 显示全部楼层
CyberH*** 发表于 2024-10-14 11:18
注意EAXFR设置,最好初始化时候先打开

而且p32 p33都可以正常输出, 就p54不行

点评

[attachimg]59709[/attachimg] 是否可能是这个选项选择错了?将IO变成复位引脚了  详情 回复 发表于 2024-10-14 11:38
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2024-10-14 11:38:55 | 显示全部楼层
peiti*** 发表于 2024-10-14 11:34
而且p32 p33都可以正常输出, 就p54不行

截图202410141138283318.jpg

是否可能是这个选项选择错了?将IO变成复位引脚了
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-10-14 11:40:31 | 显示全部楼层
peiti*** 发表于 2024-10-14 11:34
而且p32 p33都可以正常输出, 就p54不行

是否我需要配置这些
1728877107730.png
1728877150017.png
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:49 , Processed in 0.135149 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表