伊莉討論區

標題: atmega8 七段顯示器迴圈 [打印本頁]

作者: a1357422    時間: 2019-1-20 11:05 PM     標題: atmega8 七段顯示器迴圈

本帖最後由 a1357422 於 2019-1-20 11:26 PM 編輯

學校老師出了一份作業給我
需要按鈕1 按下1次 切換為一種模式 在按下在切換
我現在卡在第二種模式 作業要求我 按下按鈕後 讓上方2顆七段顯示器顯示
0 0 - 0 2 - 2 0
前面2顆設定成 0~99 迴圈
        case 0x02:
                for(int i = 0;i <= 9;i++){
                Buff[0] = seg;
                Buff[1] = seg;
                Buff[2] = seg[10];
                Buff[3] = seg[0];
                Buff[4] = seg[2];
                Buff[5] = seg[10];
                Buff[6] = seg[2];
                Buff[7] = seg[0];
                ledshow();
                }
                break;
我這樣打 只能直接讓他跳到99
請版上的各位大大幫我一下
void switchkey(void){                                                //判斷KEY是否被按
        newkey = ReadKey();
         if (newkey!=oldkey){
                 if(newkey == 1){
                         md = 1;
                 }
                 if(newkey == 2){
                        md = 2;
                 }
                 if(newkey == 4){
                         md = 3;
                 }
                oldkey = newkey;
                }
}


void ledshow(void){                                                //判斷KEY是否被按
        uchar ledbuff0[] = {0,0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF};
        if(md == 1){
                led = ls+1;
        }
        if(md == 2) led;
}


作者: jackyo04    時間: 2019-1-21 08:50 AM

按下1次 切換為一種模式 在按下在切換:你要先設定一個數值Count,每按下一次Count++,要確認有幾種模式、變化後,再來控制七段顯示器
作者: a1357422    時間: 2019-1-21 09:48 PM

本帖最後由 a1357422 於 2019-1-21 10:03 PM 編輯
jackyo04 發表於 2019-1-21 08:50 AM
按下1次 切換為一種模式 在按下在切換:你要先設定一個數值Count,每按下一次Count++,要確認有幾種模式、 ...

總共有4種模式 mode0->mode1->mode2->mode3->mode0
因為我現在程式是有三顆按鈕在控制
s1是控制模式
s2按下時要可以控制mode2的led依序亮滅s3是mode1跟mode2同時運行

[attach]126221951[/attach][attach]126221952[/attach] [url=]20190121_202714.jpg[/url]
[url=]20190121_202746.jpg[/url]
[attach]126221951[/attach]

[attach]126221952[/attach]


作者: jackyo04    時間: 2019-1-22 03:43 PM

a1357422 發表於 2019-1-21 09:48 PM
總共有4種模式 mode0->mode1->mode2->mode3->mode0
因為我現在程式是有三顆按鈕在控制
s1是控制模式

看了你的程式片段
  1.      for(int i = 0;i <= 9;i++){
  2.                 Buff[0] = seg;
  3.                 Buff[1] = seg;
  4.                 Buff[2] = seg[10];
  5.                 Buff[3] = seg[0];
  6.                 Buff[4] = seg[2];
  7.                 Buff[5] = seg[10];
  8.                 Buff[6] = seg[2];
  9.                 Buff[7] = seg[0];
  10.                 ledshow();
  11.                 }
  12. 這段似乎沒有意義,你迴圈內的i是要做什麼用的??
複製代碼

作者: a1357422    時間: 2019-1-22 07:41 PM

jackyo04 發表於 2019-1-22 03:43 PM
看了你的程式片段

喔! 那個i並沒有意義 我忘記刪除他了 不好意思
需要把整個程式給你看嗎?
作者: z1090128    時間: 2019-1-27 07:09 PM

如果要按一下跳下一個的話,md的部分應該要等數加一才對吧?
作者: a1357422    時間: 2019-1-28 03:59 PM

z1090128 發表於 2019-1-27 07:09 PM
如果要按一下跳下一個的話,md的部分應該要等數加一才對吧?

了解 謝謝解答 我會再修改




歡迎光臨 伊莉討論區 (http://www83.eyny.com/) Powered by Discuz!