簡體   English   中英

ATmega4808 32針-針PA0未被設置為高電平

[英]ATmega4808 32 Pin - Pin PA0 doesn't get set HIGH

我正在使用ATmega4808 32針。 我有2個LED分別連接到引腳PA0和PA1。 我想把兩者都設置得很高。 不幸的是,只有PA1 LED點亮。

我發現默認情況下,PA0引腳可以設置為EXTCLK。 如果這是問題,我找不到將端口更改為GPIO的解決方案。

int main(int argc, char** argv) {
    PORTA.DIRSET = PIN0_bm; // Config PA0 as output
    PORTA.DIRSET = PIN1_bm; // Config PA1 as output

    PORTA.OUTSET = PIN0_bm; // Set Pin PA0 to HIGH 
    PORTA.OUTSET = PIN1_bm; // Set Pin PA1 to HIGH 

    while(1){
    }


    return (EXIT_SUCCESS);
}

再次寫入寄存器PORTA.DIRSETPORTA.OUTSET將丟失PIN0的配置。

嘗試使用| (bitwise OR) | (bitwise OR)不放棄PIN0配置:

    PORTA.DIRSET  = PIN0_bm; // Config PA0 as output
    PORTA.DIRSET |= PIN1_bm; // Config PA1 as output

    PORTA.OUTSET  = PIN0_bm; // Set Pin PA0 to HIGH
    PORTA.OUTSET |= PIN1_bm; // Set Pin PA1 to HIGH

或者,要同時設置它們:

    PORTA.DIRSET = PIN0_bm | PIN1_bm; // Config PA0 and PA1 as output

    PORTA.OUTSET = PIN0_bm | PIN1_bm; // Set Pin PA0 and PA1 to HIGH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM