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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    #include "STC15Fxxxx.h"
    " v* b/ |' U2 I7 K4 x+ k# @5 S0 x, z" C#include "intrins.h"
    . B8 Y# K3 b8 G' t3 H$ {#define uint unsigned int 5 t1 O5 {# x) g* b
    / u" W' G! _0 D

    8 j$ n" k7 h  h& d5 Ssbit lamp=P3^7; //指示灯
    7 `* u( ]7 l' Duint i,k=0;. P9 I! Q0 L1 j- o# P
    uint led_pinlu=50;//# W8 B% c# n% }( k% P0 E) w  j3 Y1 H
    uint  remotedata[800];//这个数组设900以上就不闪灯了; \# }0 V# y" `: ?% M4 ^# d! y
    void Timer1Init(void);
    ) x  [8 R1 |9 _. u8 H6 z+ ^" d" Y' x4 c

    6 Y9 k( n& e- U' Z/******主函数****/                                                                                                                                                                        & c& _) n- Q/ U# J$ @$ w1 U3 ]
    void main()* |! Z$ h- b4 b* b' o
    {  + ~' W6 x; i  @3 J" e8 r4 r) k
                    Timer1Init();( Q+ h6 V8 I8 f: p0 G4 b
                    EA=1; //开总中断
    6 Q5 @9 B; ]" C: J                while(1)
    , S- V, |1 ^7 \3 z  Y2 x! s4 q                {
    $ c5 B+ e9 m8 Z                                if(k>led_pinlu)//上电正常慢闪灯,计数大于频率和频率不等于0是闪
    % f5 M5 [7 w; f                                {        
    ) F* O1 u0 @0 x$ @4 U6 _                                                k=0;, l. r, O/ h9 L0 t$ f1 c2 i0 e
                                                    lamp=!lamp;) l0 H" B* p5 Z( P; l
                                    }
    0 y  z; ?; Z8 i* C, l. D                }
    ) O0 v6 S7 B' |3 N: p}6 `) a3 f; k0 @
    # R/ t  o5 g6 [  p- X! F+ ?. i& @
    . w; }3 b6 v, {- k
    void Timer1Init(void)                1 ?! j6 H  k: a! t4 W+ }7 }
    {
    - H' ?; n+ R: Q+ T: G. C6 b/ {$ U1 X/ X- G        AUXR &= 0x7F;                //定时器时钟12T模式2 b" P1 @. ^) Q4 k- C5 Z' ~
            TMOD &= 0xF0;                //设置定时器模式4 j! h. G8 n6 v7 Q4 @! ^" M
            TH0=(65535-9000)/256;        //10毫秒一次, ^1 d. p1 ?: V
            TL0=(65535-9000)%256;7 p- f/ f# Y( a: H+ a$ t4 t
            ET0=1;//开T0中断- d% K3 x7 d1 c3 ?- E6 G4 E
            TR0 = 1;                //定时器0开始计时               
    : U2 Q% c$ k4 I" X1 \' e        
    & ~* U# H+ r& W% Q) J8 G9 e, u}$ Z: a' L; @& V
    ( Q- s8 x% C. w' F, I
    void time0()interrupt 1* ~+ ?% v& v4 O3 m1 o9 ]
    {
    # R8 C+ [, N- Z" K7 v# {6 H        k++;
    ; h3 q. e3 @. `9 Z}
    . [& t2 G3 Q3 f1 ]; C# z
    6 S9 L* s/ D0 }- g
    2 F' f. G- D+ O5 e: m全部程序如上,当定义数组uint  remotedata[800];为800以下时程序运行后LED灯闪,当定义数组为900以上时LED灯就不闪了,求各位大侠指点迷津,谢谢了!!!
    5 @, g& ?4 `  m0 r% Z6 Z9 q7 @用的芯片型号 : STC15F2K08S24 [( J" R0 l) \* X% w# E! a3 B

    该用户从未签到

    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-23 12:23 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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