久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: C語言for循環的問題 [打印本頁]

作者: 706718242    時間: 2021-4-1 16:51
標題: C語言for循環的問題
我使用for讀取緩存區的rgb數據到lcd的緩存中無法顯示,這個循環是為了提取特定區域的rgb像素。
第一種方法就是初始化為指定的地址避免過多的加運算,但是lcd顯示有問題(沒反應或無顯示,花屏)。
         for(y=60; y<100 ; y++ ){
             for(x=100;  x <200 ; x++){
                 LCD_BUFFER[y][x] = pixelbuf[y][x] ;
                                                 }
                                              }

只有初始化為0才是正常的,但是下面需要加運算降低了效率。
         for(y=0;  y <100 ; y++ ){
             for(x=0;  x <200 ; x++){
                 LCD_BUFFER[y+60][x+100] = pixelbuf[y+60][x+100] ;
                                                 }
                                              }


作者: 名字不是重點    時間: 2021-4-2 00:30
很奇怪,但是你的LCD_BUFFER[y][x] 數組與pixelbuf[y][x] 數組的定義是多大?還有,你發送顯示的內容是從哪開始的?
作者: 77599585    時間: 2021-4-2 09:03
沒看懂  你想讓數組索引取值60-100 還是60-160 ?
作者: 706718242    時間: 2021-4-2 09:06
名字不是重點 發表于 2021-4-2 00:30
很奇怪,但是你的LCD_BUFFER[y][x] 數組與pixelbuf[y][x] 數組的定義是多大?還有,你發送顯示的內容是從哪 ...

LCD_BUFFER[y][x] 數組與pixelbuf[y][x] 都是240*320的,內容在pixelbuf[y][x]。
作者: 706718242    時間: 2021-4-2 09:06
77599585 發表于 2021-4-2 09:03
沒看懂  你想讓數組索引取值60-100 還是60-160 ?

我想讓它從60開始計數
作者: 名字不是重點    時間: 2021-4-2 09:28
706718242 發表于 2021-4-2 09:06
LCD_BUFFER[y][x] 數組與pixelbuf[y][x] 都是240*320的,內容在pixelbuf[y][x]。

這個問題,你可能要跟蹤一下,看LCD_BUFFER[y][x] = pixelbuf[y][x] 這里,LCD_BUFFER的指向與pixelbuf反映向是不是同步的?有可能是程序跑飛,或溢出數組范圍了
作者: 706718242    時間: 2021-4-2 09:34
名字不是重點 發表于 2021-4-2 09:28
這個問題,你可能要跟蹤一下,看LCD_BUFFER[y][x] = pixelbuf[y][x] 這里,LCD_BUFFER的指向與pixelbuf反 ...

各位大佬都沒轍,只有這個辦法了。
作者: 烈火    時間: 2021-4-2 09:36
LCD_BUFFER[y][x] 數組和pixelbuf[y][x] 都是240*320的,可能是數值超出數組范圍。
作者: 706718242    時間: 2021-4-2 09:38
烈火 發表于 2021-4-2 09:36
LCD_BUFFER[y][x] 數組和pixelbuf[y][x] 都是240*320的,可能是數值超出數組范圍。

for(y=60; y<100 ; y++ ){
             for(x=100;  x <200 ; x++){
                 LCD_BUFFER[y][x] = pixelbuf[y][x] ;
                                                 }
                                              }


從程序上看不出來,只能debug了。
作者: sync763    時間: 2021-4-2 12:58
你這兩個for循環最終LCD_BUFFER[y][x] 賦值是不一樣的,第一個是LCD_BUFFER[60][100]到LCD_BUFFER[100][200],  第二個是LCD_BUFFER[60][100]到LCD_BUFFER[160][300]。最終顯示的可能不是你想要的畫面。  
作者: 706718242    時間: 2021-4-2 16:35
sync763 發表于 2021-4-2 12:58
你這兩個for循環最終LCD_BUFFER[y][x] 賦值是不一樣的,第一個是LCD_BUFFER[60][100]到LCD_BUFFER[100][200 ...

我的緩沖大小是240*320的,但是沒顯示。我本意是讓它從60開始計數。
作者: 706718242    時間: 2021-4-2 16:47
當我把100和200改為200,300時正常.太奇怪了!

for(y=60; y<100; y++ ){
             for(x=100;  x <200 ; x++){
                 LCD_BUFFER[y][x] = pixelbuf[y][x] ;
                                                 }
                                              }

作者: sync763    時間: 2021-4-3 09:22
706718242 發表于 2021-4-2 16:47
當我把100和200改為200,300時正常.太奇怪了!

for(y=60; y

for(y=60; y<160; y++ ){
             for(x=100;  x <300 ; x++){
                 LCD_BUFFER[y][x] = pixelbuf[y][x] ;
                                                 }
                                              }

這樣就應該可以,這樣就和第二個for循環賦值的數組數量是一樣多的。
作者: xhaity    時間: 2021-4-3 10:02
第二個比第一個賦值多好多
作者: 706718242    時間: 2021-4-4 01:23
xhaity 發表于 2021-4-3 10:02
第二個比第一個賦值多好多

不太明白,第二個循環應該不會影響到第一個循環?
作者: 706718242    時間: 2021-4-5 05:26
謝謝大家,找到問題了!
問題不在循環里,是因為pixelbuf[y][x] 由硬件刷新的,可能是程序太快硬件沒反應過來(因為把數字改大才正常),解決辦法是把pixelbuf[y][x]轉給另一個緩沖區然后在另一個緩沖區讀。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲综合字幕 | jdav视频在线观看免费 | 久久久久久国模大尺度人体 | 日韩视频三区 | 国产精品久久久久久久久久久免费看 | 日韩一区二区福利 | 国产一区二区久久 | 精品国产一区二区三区久久久蜜月 | 黄色毛片网站在线观看 | 日日骚网 | 久久骚| 欧美一区视频 | 四虎在线观看 | 亚洲美女视频 | 91视频国产精品 | 国产成人免费视频网站高清观看视频 | 浴室洗澡偷拍一区二区 | 欧美中文字幕一区二区三区 | 一级黄在线观看 | 久久夜色精品国产 | 国产在线一区二区 | 亚洲一区精品在线 | 国产日产久久高清欧美一区 | 国产激情在线看 | 国产精品视频一区二区三区 | 综合九九 | 国产精品久久99 | 一区在线免费视频 | 亚洲毛片一区二区 | 一级看片| 久久小视频 | 亚洲精品一区中文字幕乱码 | 99精品视频免费观看 | 国产91 在线播放 | 欧美一区二区视频 | 久久九九99| 午夜影院在线观看 | 久久久久亚洲 | h在线免费观看 | 日韩精品一区二 | 日韩激情免费 |