新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > Linglong之AVR程例2 閃爍的LED

Linglong之AVR程例2 閃爍的LED

作者: 時間:2016-11-22 來源:網絡 收藏
因為,早期程序都比較簡單,所以更新的比較快呀。

這里我們讓LED閃爍起來。就是中間有延時,點亮LED,延時一會,滅了LED再延時一會。
這個過程循環(huán)起來了,就是我們要的結果。

看程序:
#include <avr/io.h> //io端口寄存器配置文件,必須包含
#include //系統自帶的延時函數很好用。

int main(void) //GCC中main文件必須為返回整形值的函數,沒有參數
{
DDRA = 0xff;
while(1)
{
PORTA = 0x01;
_delay_ms(1000); //延時一會
PORTA = 0;
_delay_ms(1000);
}
}

還有給大家說一個我寫這個程序時,犯過一個錯誤。
看下面的程序:
#include//io端口寄存器配置文件,必須包含


intmain(void)//GCC中main文件必須為返回整形值的函數,沒有參數
{
inti=0,j=0;
DDRB=0xff;
while(1)
{
PORTB=0xf0;
for(i=0;i<16000;i++) //這兩行是一個延時程序
for(j=0;j<10000;j++);
PORTB=0x0f;
for(i=0;i<16000;i++) //這兩行是一個延時程序
for(j=0;j<10000;j++);
}
}

這里我們不管他的端口問題。我們只看程序。
按我們正常的寫51的思維是沒有錯的,如果你用ICC,CVAVR都軟件編譯也不會有錯,但是如果用GCC就有問題。
因為GCC會幫我們優(yōu)化程序。大家要注意這點就好了。。


關鍵詞: AVR程例閃爍LE

評論


技術專區(qū)

關閉
×

Digikey let's do
· 2025年第1期限时报名开启,5月8日截止
· Digikey助力,提供一站式免费器件支持
· 跟大佬一起 【DIY 功率监测与控制系统】