找回密码
 注册
关于网站域名变更的通知
查看: 104|回复: 3
打印 上一主题 下一主题

一个数组影响指示灯的闪烁是什么原因

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-8-10 14:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    #include "STC15Fxxxx.h"
    3 L; R, n1 g& r3 }4 M( u#include "intrins.h"
    ( W! A1 [* m& d( i- f3 K5 U/ P#define uint unsigned int
    7 P" D& O% Y/ q; [# ~+ @) o" G1 R5 ~3 C: m; t% m

    6 u5 X1 o' ^, r- g9 X7 [( csbit lamp=P3^7; //指示灯0 A) _$ ]3 B4 Y/ l- a
    uint i,k=0;; ]+ t' {  N( i$ ~5 _9 {- j
    uint led_pinlu=50;//2 k: K2 O/ ]" v
    uint  remotedata[800];//这个数组设900以上就不闪灯了
    8 O9 q$ W3 C$ x8 Z9 y  Zvoid Timer1Init(void);8 I& O4 ]  d. H+ f- i' _! ~  D9 Z- p- E

    2 A: {. d+ |( \$ j  C1 U0 K' Z: Q; o' P& M$ F2 m
    /******主函数****/                                                                                                                                                                        * e3 _; g  z0 l7 s* @- x
    void main()
    5 `1 D4 @9 P/ o5 Z% Q: m. I4 D{  5 C$ K7 t$ L1 I2 \5 M5 K
                    Timer1Init();8 `- d( E; F: O4 Y* r5 [1 @
                    EA=1; //开总中断) x$ x% G7 Z& q6 C! {. D, x- M' X
                    while(1)
    1 k" l/ M# J; _" U9 d                {6 W7 |; [( c  C) L5 {% e4 [" Y
                                    if(k>led_pinlu)//上电正常慢闪灯,计数大于频率和频率不等于0是闪( ~& t6 ?' ]) _* K! d
                                    {        % B1 U- m( C. _
                                                    k=0;
      t5 t4 I6 L" t; ^! r                                                lamp=!lamp;
    , V* S# s" k" `- D( I9 v                                }
    8 g6 ^6 {5 O* \' f* D! [* M                }- B9 ^- o7 R% b) ]9 [: ?. V/ r
    }1 K8 t2 w7 K: ?/ W% m/ X8 l, E

    " y; U* f+ G6 ], E* D  ^- a7 |# a- V1 f8 ^5 O6 @1 V3 p8 H2 P
    void Timer1Init(void)                1 {- e/ f* C( i$ y
    {5 m$ l& n  [6 ~
            AUXR &= 0x7F;                //定时器时钟12T模式
    2 T8 U+ R% B3 i% G6 z7 r; ?        TMOD &= 0xF0;                //设置定时器模式
    8 K9 e0 A0 V& N) |- P. @        TH0=(65535-9000)/256;        //10毫秒一次
    , }% w- f7 t, b& ~% }' o/ J; Q        TL0=(65535-9000)%256;
    * g9 [2 E" @7 b6 \3 B- r- S        ET0=1;//开T0中断+ c2 Z1 b& @* g: h8 ~4 U
            TR0 = 1;                //定时器0开始计时                - g+ x- G2 J. Y' Z8 Q5 G7 A
            
    1 H4 |, h5 x8 }}. T# E$ n" [* D$ Q' B! k! h2 g3 {

    ; j' m; Y4 P- x" w) y- evoid time0()interrupt 1
    * [/ b% s' m7 ~. y& ?9 \4 z  U! q{. z. R& Z% d' W4 K" ]
            k++;1 R: D- S: U. S% G2 u
    }
    1 g6 ?8 E: H8 {4 P8 m$ F, T/ C
    $ C. r, T# P/ T1 F: q# R1 G# H' d( M  O/ g+ r
    全部程序如上,当定义数组uint  remotedata[800];为800以下时程序运行后LED灯闪,当定义数组为900以上时LED灯就不闪了,求各位大侠指点迷津,谢谢了!!!0 {  A' D; z0 x* Z( J
    用的芯片型号 : STC15F2K08S2, m5 D% m  n: g& i/ l/ B) K

    该用户从未签到

    2#
    发表于 2022-8-10 14:41 | 只看该作者
    内存容量有限,remotedata[ ];虽然没有被使用
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
    发表于 2022-8-10 14:49 | 只看该作者
    不用900,只有896以上就出问题了吧?溢出了!
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2022-8-10 15:02 | 只看该作者
    如果只是固定不变的数据就存放在ROM区,用const code修饰。如非有必要存储那么大的数字 可以把数组类型改为unsigned char型,否则只有更换更大ram型号芯片了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-22 08:54 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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