欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1603|回復(fù): 1
收起左側(cè)

C語言數(shù)組奇怪地址少一位,發(fā)生溢出

[復(fù)制鏈接]
ID:734017 發(fā)表于 2021-11-13 02:29 | 顯示全部樓層 |閱讀模式
當(dāng)SK_Data_KHz調(diào)到190的時(shí)候SK_Data_KHz_switch=0,SK_PWM=632 ,第0位發(fā)生溢出。
已經(jīng)檢查了好幾次,關(guān)閉eeprom,刷了幾次程序還是溢出。
后面發(fā)現(xiàn)地址錯(cuò)了一位,就是往前了一位。現(xiàn)在SK_Data_KHz=250 ,實(shí)際對(duì)應(yīng)該SK_Data_KHz_switch=59;SK_PWM[59]=482.
當(dāng)SK_Data_KHz=190時(shí)SK_PWM數(shù)據(jù)為空 溢出。
不知為何會(huì)減1,就是加載的時(shí)候已以發(fā)生錯(cuò)誤。


unsigned int SK_Data_KHz=250; //默認(rèn)頻率25K 每次加0.1
unsigned char SK_Data_KHz_switch=60; //默認(rèn) 地址


                                                // 0  1 2 3 4 5 6 7 8 9 10
                                                // 190 191 192 193  194 195  196  197   198  199 200
code unsigned int SK_PWM[101]={ 632,   628, 625,  622,  619,  615,  612 ,609,  606 ,603, 600,
                                         //   11  12   13    14   15     16  17    18  19  20
                                         //   201 202  203    204   205  206  207  208  209   210
                                         597,  594,  591,  588,  585,  583,  580,  577,  574, 571,
                                        //    21  22   23  24   25  26 27 28   29   30
                                       //    211   212 213  214  215  216  217  218  219 220
                                        569,  566,  563,  561,  558,  556,  553, 550,  548, 545,
                                       //    31   32  33 34  35  36 37  38 39  40
                                       //  221 222  223  224  225  226 227 228 229 230
                                        543,  541  ,538,  536,  533, 531, 529,  526,   524, 522,
                                        //   41 42  43 44  45 46  47 48 49 50
                                       //   231  232  233 234  235 236  237  238  239 240
                                       519,  517,  515,  513,  511,  508, 506,  504,  502, 500,
                                       //   51  52  53  54  55  56   57   58  59 60
                                         //  241  242 243  244  245  246 247 248  249  250
                                         498,  496,  494,  492,  490,  488,  486, 484,  482, 480,
                                                                    ..............};


switch(buf[1])                              
            {
            case 0x71:  
                if( buf[3]==0x01 )                          //后臺(tái)頻率加+
                {   
                    memset(buf, 0, 18); //清空緩存區(qū)                 
                    if(SK_Data_KHz<280)
                    {
                        SK_Data_KHz++;
                        SK_Data_KHz_switch++;
                        SK_HZ_satar(SK_PWM[SK_Data_KHz_switch]);
                        send_string(ASCII_Data_add,18);                     
                        
                    }
                        
                    break;
                }
                if( buf[3]==0X02 )                          //后臺(tái)頻率加-
                {   
                    memset(buf, 0, 18); //清空緩存區(qū)                 
                    if(SK_Data_KHz>190)
                    {
                        SK_Data_KHz--;       //當(dāng)SK_Data_KHz=190溢出
                        SK_Data_KHz_switch--;
                        SK_HZ_satar(SK_PWM[SK_Data_KHz_switch]);
                        send_string(ASCII_Data_subtract,18);
                    }
                    break;
                }
                if( buf[3]==0x03 )                          //返回保存
                    {   
                        memset(buf, 0, 18); //清空緩存
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-11-13 19:26 | 顯示全部樓層
你光發(fā)個(gè)數(shù)組,別人幫你數(shù)一遍也不會(huì)發(fā)現(xiàn)什么問題。
最簡(jiǎn)單的方法:
把你覺得錯(cuò)位的數(shù)組, 從0開始依次 從串口 給你發(fā)過來,然后你核對(duì)那個(gè)位置開始錯(cuò)位了,方便你查找原因,為了方便核對(duì) 可以用TEXT 方式,按:
0)   0x....
1)   0x....
一行一個(gè),
如果這樣沒錯(cuò),說明數(shù)組是沒有問題的,
那么你就用你調(diào)用數(shù)組的代碼,讀數(shù)組后,讓串口發(fā)給你,

有時(shí)候自己的代碼盯著看,怎么看怎么對(duì),換幾個(gè)方式也許很快就能發(fā)現(xiàn)問題。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表