找回密码
 立即注册
查看: 950|回复: 18

求助下数组流水灯

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 15:26:17 | 显示全部楼层 |阅读模式
本帖最后由 以莹唤星 于 2024-8-4 15:30 编辑

求助下关于数组的问题,本想做流水灯的,但是在实验箱9.62上每次两三四个LED,希望大佬帮看下代码有什么问题。




#include <STC32G.H>

#define MAIN_Fosc 35000000UL                //定义主频35MHz,请根据实际使用频率修改(用于delay函数自适应主频)

typedef unsigned char u8;                                //unsigned char                                 类型,用u8表示
typedef unsigned int u16;                                //unsigned int                                 类型,用u16表示
typedef unsigned long int u32;        //unsigned long int         类型,用u32表示

void delayms(u16 ms);                                                //延时函数声明
       
void main()
{
       
        u8 LED[8] = {0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
        u8 i;
    P4M0 = 0x00; P4M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
        P40 = 0;
       
         while(1)
         {
                 for(i=0;i<8;i++)
                 {
                         P6=LED;
                         delayms(500);
                         P6=0xFF;
                         delayms(500);
                 }
         }
}


void  delayms(u16 ms)                //简单延时函数,自适应主频,1毫秒*ms
{
        u16 i;
        do{
                        i = MAIN_Fosc / 6000;
                        while(--i);
                }while(--ms);
}


studio_video_1722756528761.mp4

9.44 MB, 下载次数: 63

已加速三倍

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:524
  • 最近打卡:2025-05-07 07:52:10
已绑定手机

46

主题

1724

回帖

2674

积分

金牌会员

积分
2674
发表于 2024-8-4 16:20:01 | 显示全部楼层
不应该是P6=LED[i];嘛?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 16:37:26 来自手机 | 显示全部楼层
好像是哦,晚上回去试下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 16:37:26 来自手机 | 显示全部楼层
好像是哦,晚上回去试下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3193

回帖

4946

积分

论坛元老

积分
4946
发表于 2024-8-4 17:43:35 来自手机 | 显示全部楼层
P6 = LED这个不对吧,如果要一个一个亮变量i要加进去是LED[i]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 18:47:55 | 显示全部楼层
file:///C:/Users/SONG/Pictures/Screenshots/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202024-08-04%20184608.png
屏幕截图 2024-08-04 184608.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 18:49:44 来自手机 | 显示全部楼层
代码还是这个代码,只是往论坛上发的时候,那个不知道怎么丢了,效果就是视频那个样子,按理说应该不对呀
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 20:05:40 来自手机 | 显示全部楼层
wnagming 发表于 2024-8-4 19:13
不可能,绝对不可能

但是为什么是这个效果呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-07 07:52:11
已绑定手机

2

主题

13

回帖

673

积分

高级会员

积分
673
发表于 2024-8-4 21:10:26 | 显示全部楼层
但是不用数组(如下)就没问题,就想知道代码哪里有问题
void main()
{
    P4M0 = 0x00; P4M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
        P40 = 0;

         P6=0x7F;
         delayms(500);
         P6=0xFF;
         delayms(500);
}


void  delayms(u16 ms)                //简单延时函数,自适应主频,1毫秒*ms
{
        u16 i;
        do{
                        i = MAIN_Fosc / 6000;
                        while(--i);
                }while(--ms);
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3193

回帖

4946

积分

论坛元老

积分
4946
发表于 2024-8-4 21:15:33 | 显示全部楼层
先用位移法看一下能不能正常,P6=~(0x01 << i);
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 11:23 , Processed in 0.123979 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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