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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    #include "STC15Fxxxx.h"
    8 S: c) H% h3 g! @0 A#include "intrins.h"
    + c0 N% t( q2 g  }#define uint unsigned int ( U0 {- F9 Z& G$ Y( G& X

    5 e. K: O  D4 }& J. ]2 ?+ R* k* w$ Z- }4 `7 Z" o6 H0 ?
    sbit lamp=P3^7; //指示灯
    " h9 P  P2 C8 fuint i,k=0;
    : a% ]; f  g/ _4 E2 }" Wuint led_pinlu=50;//
    9 R& T4 S" J. F9 }1 luint  remotedata[800];//这个数组设900以上就不闪灯了
    % c8 F7 b; b$ F& @3 d2 }void Timer1Init(void);
    " J, L: ~9 v3 p& b8 Y$ Q1 I7 V: V

    ( |6 a2 \' i% u. y$ s/******主函数****/                                                                                                                                                                        $ w; g5 J* I  \' I! h
    void main()
    ! b# }+ y, }' u/ X9 a/ r. m{  
    " Z( S# Z+ U; V5 G5 q                Timer1Init();# o- M: J3 S( t6 x4 h
                    EA=1; //开总中断
    & p5 y( F; A. ?3 v* J3 H                while(1)2 h& g  N& M) E0 c( a
                    {
    6 w5 X* ]! W7 P4 }: y' p  o- \                                if(k>led_pinlu)//上电正常慢闪灯,计数大于频率和频率不等于0是闪
    8 k' ]& N- t( {3 c% }+ E/ @- G                                {        " x: t" u' M9 r; W+ Q% P
                                                    k=0;) w6 E) S+ A) b$ w8 \  Q  n9 x
                                                    lamp=!lamp;6 D$ Q3 Q7 [7 l- u/ j. d
                                    }
    ; O3 r! ~! o7 k) C3 O5 S1 ~                }
    $ h; m: p! T7 y4 E3 z/ ^}
    * ~* O) O0 Y5 }8 f7 ]- c' x, \$ j  W. Q2 J* v. b# H
    3 x; I$ l" v1 m4 ]' W8 R
    void Timer1Init(void)               
    : N, `: L! v4 Y$ e( l0 {1 B{
    # i3 y# t4 b7 E2 b8 `% q& D        AUXR &= 0x7F;                //定时器时钟12T模式
    1 z; z* O8 k3 @; @. D, Q        TMOD &= 0xF0;                //设置定时器模式
    6 i" |9 x+ M8 p, p  D        TH0=(65535-9000)/256;        //10毫秒一次
    & _: F1 T) h  ]" Y/ l/ {        TL0=(65535-9000)%256;4 p: a/ b- }5 f5 [. J! c* G7 y
            ET0=1;//开T0中断/ w- s, p0 j3 s4 e/ a2 P
            TR0 = 1;                //定时器0开始计时               
    2 d$ M. k5 p7 F        
    - H/ d* a' p  c' y8 k}
    1 y1 ~8 Z; t2 g( X
    " ~/ y2 O4 u$ M9 A( k5 ovoid time0()interrupt 1
    7 K+ _3 m* B& p" ~{
    ) Y& J4 N3 x  Z" s7 c! u) X  @        k++;# c! P' B! E) Z& q
    }
    5 F. E3 g6 |# `; J+ s
    0 s$ r; r, a) {# n7 e
    ( w" T! _' V' k9 ~8 L- _9 Y( c全部程序如上,当定义数组uint  remotedata[800];为800以下时程序运行后LED灯闪,当定义数组为900以上时LED灯就不闪了,求各位大侠指点迷津,谢谢了!!!+ _3 c% u8 m& N" t
    用的芯片型号 : STC15F2K08S2% y' ^2 L4 P: l1 b1 y4 @5 S6 L

    该用户从未签到

    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-10-6 19:01 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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