0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IAR開(kāi)發(fā)環(huán)境使用注意事項(xiàng)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-18 10:50 ? 次閱讀

頭文件含義

avr_macros.h里面包含了讀寫(xiě)16位寄存器的簡(jiǎn)化書(shū)寫(xiě),和幾個(gè)位操作函數(shù)

comp_a90.h對(duì)大量的內(nèi)在函數(shù)做了簡(jiǎn)要書(shū)寫(xiě)

ina90.h包含"inavr.h""comp_A90.h"文件

intrinsics.h內(nèi)在函數(shù)提供最簡(jiǎn)單的操作處理器底層特征。休眠,看門(mén)狗,F(xiàn)LASH函數(shù)。

iomacro.HI/O寄存器定義文件樣本。

iom8.h包含I/O等寄存器定義

位操作

c語(yǔ)言里對(duì)位的操作如一般如下:

PORTB|=(1<<2); //置PORTB的第2位=1

PORTB&=~(1<<2); //置PORTB的第2位=0

PORTB^|=(1<<2); //取反PORTB的第2位

While(PORTB&(1<<2)); //判斷1

While(!(PORTB&(1<<2))); //判斷為0

IAR編譯器對(duì)位的支持更強(qiáng)大,除了上面的方法外還有以下更簡(jiǎn)單的操作方法:

PORTB_Bit2=1;//置PORTB的第2位=1

PORTB_Bit2=0;//置PORTB的第2位=0

PORTB_Bit2=~PORTB_Bit2;//取反PORTB的第2位

While(PORTB_Bit2);或者while(PORTB_Bit2==1);//判斷1

while(PORTB_Bit2==0);//判斷0

PORTC_Bit4=PORTB_Bit2;//把PORTB的第2位傳送到PORTC的第4位

位變量定義:

由于iar使用了擴(kuò)展語(yǔ)言,它對(duì)位域的支持變?yōu)樽钚閏har類型,我們可以很方便地用來(lái)定義位變量。

采用結(jié)構(gòu)體來(lái)定義位變量:

struct

{

unsignedcharbit0:1;

unsignedcharbit1:1;

unsignedcharbit2:1;

unsignedcharbit3:1;

unsignedcharbit4:1;

unsignedcharbit5:1;

unsignedcharbit6:1;

unsignedcharbit7:1;

}t;

然后就可以用以下位變量

t.bit0=1;

t.bit0=~t.bit0;

但是采用以上結(jié)構(gòu)體做出來(lái)的位變量只可以訪問(wèn)t的位,不能夠直接訪問(wèn)變量t,和標(biāo)準(zhǔn)的IAR位操作也不一樣,可以采用聯(lián)合體來(lái)定義。

#include

union

{

unsignedchart;

struct

{unsignedchart_bit0:1,

t_bit1:1,

t_bit2:1,

t_bit3:1,

t_bit4:1,

t_bit5:1,

t_bit6:1,

t_bit7:1;

};

};

voidmain(void)

{

t_bit0=1;//訪問(wèn)變量t的位

t_bit0=~t_bit0;

PORTB=t;//直接訪問(wèn)變量t

}

延時(shí)函數(shù)

__delay_cycles(unsignedlong);

如果處理器頻率為1M,延時(shí)100us,如下:

__delay_cycles(100);

延時(shí)任意時(shí)間

#define CPU_F 8000000

#define delay_us(x) __delay_cycles(CPU_F*x/1000000)

#define delay_ms(x) __delay_cycles(CPU_F*x/1000)

中斷函數(shù):

在IAR編譯器里用關(guān)鍵字來(lái)__interrupt來(lái)定義一個(gè)中斷函數(shù),用#pragmavector來(lái)提供中斷函數(shù)的入口地址

#pragmavector=0x12 //定時(shí)器0溢出中斷入口地址

__interruptvoidtime0(void)

{

;

}

上面的入口地址寫(xiě)成#pragmavector=TIMER0_OVF_vect更直觀,每種中斷的入口地址在頭文件里有描述。

中斷指令

__disable_interrupt(); //也可以用_CLI();也可以SREG_Bit7=0;

__enable_interrupt(); //也可以用_SEI();也可以SREG_Bit7=1;

MCU控制指令

__no_operation(); //空操作指令

_NOP();

__sleep(); //休眠指令

_SLEEP();

__watchdog_reset(); //看門(mén)狗清零

_WDR();

來(lái)源:暢學(xué)電子
審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AVR單片機(jī)
    +關(guān)注

    關(guān)注

    22

    文章

    607

    瀏覽量

    55417
  • IAR
    IAR
    +關(guān)注

    關(guān)注

    5

    文章

    344

    瀏覽量

    36564
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    繞線電感定制的注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《繞線電感定制的注意事項(xiàng).docx》資料免費(fèi)下載
    發(fā)表于 09-20 11:24 ?0次下載

    共模電感定制的注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《共模電感定制的注意事項(xiàng).docx》資料免費(fèi)下載
    發(fā)表于 09-04 11:47 ?0次下載

    LiFePO4設(shè)計(jì)注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《LiFePO4設(shè)計(jì)注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 09-03 09:24 ?0次下載
    LiFePO4設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    FMD LINK 使用注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《FMD LINK 使用注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 05-06 10:11 ?0次下載

    浪涌抑制器的應(yīng)用及注意事項(xiàng)?

    浪涌抑制器的應(yīng)用及注意事項(xiàng)?|深圳比創(chuàng)達(dá)電子
    的頭像 發(fā)表于 01-19 09:55 ?629次閱讀
    浪涌抑制器的應(yīng)用及<b class='flag-5'>注意事項(xiàng)</b>?

    測(cè)速電機(jī): 常見(jiàn)6大注意事項(xiàng)

    測(cè)速電機(jī): 常見(jiàn)6大注意事項(xiàng)!測(cè)速電機(jī)是一種用于測(cè)量物體運(yùn)動(dòng)速度的設(shè)備,廣泛應(yīng)用于工業(yè)生產(chǎn)和科學(xué)研究中。測(cè)速電機(jī)常見(jiàn)的6大注意事項(xiàng)以確保安全和準(zhǔn)確性。
    的頭像 發(fā)表于 01-11 10:53 ?383次閱讀
    測(cè)速電機(jī): 常見(jiàn)6大<b class='flag-5'>注意事項(xiàng)</b>

    霍爾元件使用的注意事項(xiàng)

    霍爾元件使用的注意事項(xiàng)? 霍爾元件是一種常見(jiàn)的電子元件,主要用于測(cè)量和檢測(cè)磁場(chǎng)的變化。它具有靈敏度高、響應(yīng)速度快、耐磁場(chǎng)干擾等優(yōu)點(diǎn),在各種應(yīng)用中得到廣泛使用。然而,為了確?;魻栐恼9ぷ骱脱娱L(zhǎng)其
    的頭像 發(fā)表于 12-18 14:56 ?1128次閱讀

    電流互感器的使用注意事項(xiàng)

    當(dāng)談到電流互感器的使用時(shí),有一些重要的注意事項(xiàng)需要我們牢記。在本文中,我們將探討這些注意事項(xiàng),為您提供詳細(xì)和全面的信息。
    的頭像 發(fā)表于 12-15 10:34 ?1221次閱讀
    電流互感器的使用<b class='flag-5'>注意事項(xiàng)</b>

    輕負(fù)載時(shí)開(kāi)關(guān)元件工作相關(guān)的注意事項(xiàng)

    輕負(fù)載時(shí)開(kāi)關(guān)元件工作相關(guān)的注意事項(xiàng)
    的頭像 發(fā)表于 12-14 15:43 ?391次閱讀
    輕負(fù)載時(shí)開(kāi)關(guān)元件工作相關(guān)的<b class='flag-5'>注意事項(xiàng)</b>

    伺服電機(jī)常見(jiàn)故障維修及注意事項(xiàng)

    伺服電機(jī)常見(jiàn)故障維修及注意事項(xiàng)
    的頭像 發(fā)表于 11-28 13:29 ?1940次閱讀

    音頻接口電路的PCB設(shè)計(jì)注意事項(xiàng)

    音頻接口電路的PCB設(shè)計(jì)注意事項(xiàng)
    的頭像 發(fā)表于 11-23 17:42 ?1000次閱讀
    音頻接口電路的PCB設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    半導(dǎo)體器件擊穿機(jī)理分析及設(shè)計(jì)注意事項(xiàng)

    半導(dǎo)體器件擊穿機(jī)理分析及設(shè)計(jì)注意事項(xiàng)
    的頭像 發(fā)表于 11-23 17:38 ?1395次閱讀
    半導(dǎo)體器件擊穿機(jī)理分析及設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    VGA OUT 的PCB設(shè)計(jì)注意事項(xiàng)

    VGA OUT 的PCB設(shè)計(jì)注意事項(xiàng)
    的頭像 發(fā)表于 11-23 09:04 ?735次閱讀

    新版Hi3559AV100開(kāi)發(fā)注意事項(xiàng)

    新版Hi3559AV100開(kāi)發(fā)注意事項(xiàng)
    的頭像 發(fā)表于 11-13 09:17 ?660次閱讀
    新版Hi3559AV100<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>注意事項(xiàng)</b>

    使用IAR IDE仿真RL78內(nèi)置硬件乘法器和除法器注意事項(xiàng)

    使用IAR IDE仿真RL78內(nèi)置硬件乘法器和除法器注意事項(xiàng)
    的頭像 發(fā)表于 10-30 17:04 ?1001次閱讀
    使用<b class='flag-5'>IAR</b> IDE仿真RL78內(nèi)置硬件乘法器和除法器<b class='flag-5'>注意事項(xiàng)</b>