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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    #include "STC15Fxxxx.h"4 b6 O" a% V) Z: i9 _8 ~
    #include "intrins.h"
    # {) J( E" O- K3 S7 E- i6 ]#define uint unsigned int 5 P& X4 Y! F: {; q- Q. i' Z5 F9 v% M

    & q- o% {' M2 |- N, j  a/ @4 q6 }6 R- B, u+ E4 \
    sbit lamp=P3^7; //指示灯! D! f3 j7 s4 Z" ^( M
    uint i,k=0;  V7 v; ?/ y* u. ^. z% `: \
    uint led_pinlu=50;//% s- @3 Z% D. ]4 Q+ C) b  s7 o
    uint  remotedata[800];//这个数组设900以上就不闪灯了
    : L: w$ G1 a/ S$ g8 n  |void Timer1Init(void);! f; t- w" m% V5 q( X
    2 l; e& N  m8 U- q6 r, A! @

    0 w0 D9 ^/ Z0 h! ?: ]7 T4 G/******主函数****/                                                                                                                                                                        9 Q1 P6 a9 Z% F2 w! Q% Q
    void main()
    5 N& i; O- L6 r+ |{    a8 U4 d6 m" J/ ~
                    Timer1Init();4 ~2 P! h* R0 H8 s3 O4 g/ [
                    EA=1; //开总中断5 ~6 |7 I8 G0 L0 y9 l& D9 h9 Y
                    while(1)
    5 g- `9 m# e1 D* f1 G* n                {  I- T+ c  [0 ]3 h. [
                                    if(k>led_pinlu)//上电正常慢闪灯,计数大于频率和频率不等于0是闪) w) A' ]' D0 D7 D8 L" s& b
                                    {        
    " k( B; @% Z8 P( A7 W: \' c                                                k=0;, O. p/ Y( C  e3 {) {
                                                    lamp=!lamp;5 g% @' s% W% ?& u
                                    }/ [  Y  O6 y! d6 R
                    }0 W( O) [0 Z) {" d. H- Q
    }( l9 X+ g: @# m% ~) h: O

    ' p9 P5 O; Q% ]  B
    ) D/ V$ M5 c3 N4 @' Z" L0 C8 fvoid Timer1Init(void)               
    $ j/ \$ l2 t; p$ ?& L! q. Y3 r{" \( H' T- A2 N; H
            AUXR &= 0x7F;                //定时器时钟12T模式; q9 S, O1 C( k+ _8 O2 f
            TMOD &= 0xF0;                //设置定时器模式
    % ?5 Q) M+ r1 r5 U6 E$ @% t8 a        TH0=(65535-9000)/256;        //10毫秒一次% U: K% c% t' U' S3 d9 F, y$ z) Q9 ^
            TL0=(65535-9000)%256;
    . h" ]3 l% n+ n, }! k        ET0=1;//开T0中断4 e% n$ e* l1 Z
            TR0 = 1;                //定时器0开始计时               
      V: f7 Y( l9 \3 O        * O6 {+ d- p) z; e; R
    }; i+ g; c7 W& M0 [

    & `- k. v# ^4 @! t  `3 [) i" Rvoid time0()interrupt 1/ I9 E; O( U5 k" i  E8 E! Q
    {
    6 q" O7 W+ G! s        k++;
    8 M/ p& ]% Q5 ^/ P7 g& q. O}
    : ?9 P% p; L8 w2 ~
    ) Q! j8 ^2 u. N! _& x' {
    " K9 h; l& Y% N) X: ^0 h全部程序如上,当定义数组uint  remotedata[800];为800以下时程序运行后LED灯闪,当定义数组为900以上时LED灯就不闪了,求各位大侠指点迷津,谢谢了!!!* I4 _* S# J  p0 {2 T
    用的芯片型号 : STC15F2K08S2* W) n8 l4 A; ?1 c& y

    该用户从未签到

    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-11-2 02:51 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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