找回密码
 立即注册
查看: 684|回复: 16

请教, 我在测试8G系列-PCA相关程序时存在问题

[复制链接]

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-8-26 00:24:32 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-8-26 09:23 编辑

我在测试<STC8G系列-PCA相关程序>捕捉天地飞接收机pwm数据时, 打印不出任何信息, 请问这一般是什么原因? (我使用的是stc8g-8pin单片机)

STC8G系列-PCA相关程序.rar

309.7 KB, 下载次数: 65

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4851

回帖

8390

积分

超级版主

DebugLab

积分
8390
发表于 2024-8-26 09:26:49 | 显示全部楼层
建议使用高级PWM同时捕捉周期和占空比
DebugLab
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2024-8-26 10:04:25 | 显示全部楼层
先确认你用的芯片是否有PCA功能
STC8G1K08-8PIN的芯片是没有PCA功能的
截图202408261003306936.jpg
STC8G1K08A-8PIN的芯片才有PCA功能
截图202408261004209651.jpg
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-8-26 11:20:21 | 显示全部楼层
乘风*** 发表于 2024-8-26 10:04
先确认你用的芯片是否有PCA功能
STC8G1K08-8PIN的芯片是没有PCA功能的

我是用的是stc8g1k08a-8pin是有pca功能的, 我用它产生了pwm, 我的测试情况是, 放在接收机上之后, 我插拔的瞬间会有数据打印出来
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-8-26 11:21:23 | 显示全部楼层
Debu*** 发表于 2024-8-26 09:26
建议使用高级PWM同时捕捉周期和占空比

stc8g的高级pwm可以在哪里查找到例程? 我测试一下, 万分感谢

点评

高级pwm8H才有  详情 回复 发表于 2024-8-26 11:28
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-8-26 11:24:14 | 显示全部楼层
Debu*** 发表于 2024-8-26 09:26
建议使用高级PWM同时捕捉周期和占空比

我查了一下, 我使用的芯片不支持这个功能, 还是非常感谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4851

回帖

8390

积分

超级版主

DebugLab

积分
8390
发表于 2024-8-26 11:28:08 | 显示全部楼层
peiti*** 发表于 2024-8-26 11:21
stc8g的高级pwm可以在哪里查找到例程? 我测试一下, 万分感谢

高级pwm8H才有
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4851

回帖

8390

积分

超级版主

DebugLab

积分
8390
发表于 2024-8-26 11:31:39 | 显示全部楼层
截图202408261131216478.jpg

截图202408261131361537.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

16

主题

57

回帖

366

积分

中级会员

积分
366
发表于 2024-8-26 11:34:00 | 显示全部楼层

ok, 感谢, 我去查一下相关芯片, 玩玩
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4851

回帖

8390

积分

超级版主

DebugLab

积分
8390
发表于 2024-8-26 11:39:30 | 显示全部楼层

以前写的15W104读天地飞7通道PPM接收机的程序(还带低压报警,之前想做遥控鸭子玩来着,还定做了鸭子叫声的语音OTP芯片):
#include <STC15F2K60S2.H>
#define LVDF 0x20
#define PWM P33
#define CH1 P30
#define CH4 P31
#define CH5 P34
#define CH6 P35
unsigned char Channel;
unsigned int Counter;
unsigned int On_Time;Off_Time,Max_Time,Min_Time;
unsigned int Ch1,Ch2,Ch3,Ch4,Ch5,Ch6,Ch7,Ch8;

void Init(void)
{
        P3M0=0x3b;
        P3M1=0x00;
        PWM=0;
        CH5=0;
        CH6=1;
        TMOD=0x01;
        IT0=1;
        TH0=0;
        TL0=0;
        PCON&=~LVDF;
        EA=1;
        EX0=1;
        ELVD=1;
        Max_Time=2000;
        Min_Time=1000;
}

void Time(void)
{
        Counter=TH0;
        Counter<<=8;
        Counter=Counter+TL0;
}

void main(void)
{
        Init();
        while(1)
        {
                On_Time=Ch3-Min_Time;
                if(Ch3>=Max_Time&&Ch3<(Max_Time+1500))
                        On_Time=Max_Time-Min_Time;
                if(On_Time>=(Max_Time+1500))
                        On_Time=0;
                Off_Time=Max_Time-Min_Time-On_Time;
                if(PWM==1)
                {
                        PWM=0;
                        while(Off_Time--);
                }
                else
                {
                        PWM=1;
                        while(On_Time--);
                }
                if(900<Ch5&&Ch5<1400)
                        CH5=1;
                if(1600<Ch5&&Ch5<2100)
                        CH5=0;
                if(900<Ch6&&Ch6<1400)
                        CH6=1;
                if(1600<Ch6&&Ch6<2100)
                        CH6=0;
        }
}

void Int0(void) interrupt 0
{
        TR0=0;
        Time();
        if(Counter>3000)
        {
                Channel=0;
        }
        else
        {
                Channel++;
        }
        switch(Channel)
        {
                case 0:
                        CH1=1;
                break;
                case 1:
                        Ch1=Counter;
                        CH1=0;
//                        CH2=1;
                break;
                case 2:
                        Ch2=Counter;
//                        CH2=0;
//                        CH3=1;
                break;
                case 3:
                        Ch3=Counter;
//                        CH3=0;
                        CH4=1;
                break;
                case 4:
                        Ch4=Counter;
                        CH4=0;
//                        CH5=1;
                break;
                case 5:
                        Ch5=Counter;
//                        CH5=0;
//                        CH6=1;
                break;
                case 6:
                        Ch6=Counter;
//                        CH6=0;
//                        CH7=1;
                break;
                case 7:
                        Ch7=Counter;
//                        CH7=0;
//                        CH8=1;
                break;
                case 8:
                        Ch8=Counter;
//                        CH8=0;
                break;
        }
        TH0=0;
        TL0=0;
        TR0=1;
}

//void LVD() interrupt 6
//{
//        PCON&=~LVDF;
//        CH6=1;
//}
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-4 04:05 , Processed in 0.185106 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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