精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

CC2530(zigbee)入門(mén)開(kāi)發(fā): 外部中斷配置

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-05-28 13:33 ? 次閱讀

第一章 外部中斷與按鍵硬件原理圖分析

中斷在單片機(jī)里非常常用,專(zhuān)門(mén)來(lái)處理緊急事件。比如: 串口接收中斷可以實(shí)時(shí)知道有數(shù)據(jù)到達(dá),定時(shí)器超時(shí)中斷可以實(shí)時(shí)知道時(shí)間到達(dá),外部中斷可以實(shí)時(shí)知道外部設(shè)備產(chǎn)生了事件需要立即處理。

CC2530一個(gè)有18個(gè)中斷源,每個(gè)中斷源都由各自的一系列特殊功能寄存器來(lái)進(jìn)行控制。可以配置相關(guān)特殊功能寄存器,設(shè)置18個(gè)中斷源的優(yōu)先級(jí)以及使能中斷申請(qǐng)響應(yīng)。

CC2530的P0、P1和P2端口中的每個(gè)引腳都具有外部中斷輸入功能,要使某些引腳具有外部中斷功能,需要對(duì)IENx寄存器、PxIEN寄存器和PICTL寄存器進(jìn)行適當(dāng)?shù)脑O(shè)置。

除了各個(gè)中斷源都有自己的中斷使能開(kāi)關(guān)之外,中斷系統(tǒng)還有一個(gè)總開(kāi)關(guān),可以同"EA = 1;"來(lái)打開(kāi)總中斷。

P0、P1和P2端口分別使用P0IF、P1IF和P2IF作為中斷標(biāo)志位,任何一個(gè)端口組上的引腳產(chǎn)生外部中斷時(shí),都會(huì)將對(duì)應(yīng)端口組的中斷標(biāo)志自動(dòng)置位。注意,外部中斷標(biāo)志必須在中斷服務(wù)函數(shù)中手工清除,否則CPU會(huì)反復(fù)進(jìn)入中斷。 端口狀態(tài)標(biāo)志寄存器P0IFG、P1IGF和P2IFG,分別對(duì)應(yīng)3個(gè)端口中各引腳的中斷觸發(fā)狀態(tài),當(dāng)某引腳發(fā)生外部中斷觸發(fā)時(shí),對(duì)應(yīng)的標(biāo)志位會(huì)自動(dòng)置位,這個(gè)標(biāo)志同樣需要手工清除。

 中斷服務(wù)函數(shù)與一般自定義函數(shù)不同,有特定的書(shū)寫(xiě)格式:
<1> 在每一個(gè)中斷服務(wù)函數(shù)之前,都要加上一句起始語(yǔ)句:
        #pragma vector = <中斷向量>
        <中斷向量>表示接下來(lái)要寫(xiě)的中斷服務(wù)函數(shù)是為那個(gè)中斷源服務(wù)的,該 語(yǔ)句有兩種寫(xiě)法:
        #pragma  vector = 0x7B    或者    #pragma  vector = P1INT_VECTOR
        前者是中斷向量的入口地址,后者是頭文件“ioCC2530.h”中的宏定義。
<2> _ _interrupt關(guān)鍵字表示該函數(shù)是一個(gè)中斷服務(wù)函數(shù),<函數(shù)名稱(chēng)>可以 自定義,函數(shù)體不能帶有參數(shù),也不能有返回值。
復(fù)制代碼

一般在單片機(jī)里學(xué)習(xí)外部中斷時(shí),都采用獨(dú)立按鍵配置學(xué)習(xí),方便演示效果;

下面就介紹按鍵的外部中斷配置流程,并編寫(xiě)示例代碼。

image.png

第二章 配置按鍵中斷步驟

image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png

第三章 按鍵中斷代碼配置示例


#include 

//定義LED燈的端口
#define LED1 P1_2
#define LED2 P1_3

//定義KEY按鍵的端口
#define KEY1 P1_0       //定義按鍵為P1_0口控制
#define KEY2 P1_1       //定義按鍵為P1_1口控制

/*
函數(shù)功能:LED燈IO口初始化
硬件連接:LED1-->P1_2 , LED2-->P1_3
*/
void LED_Init(void)
{
    P1DIR |=0x3<<2;  //配置P1_2、P1_3為輸出模式
    LED1 = 1;
    LED2 = 1;
}

/*
函數(shù)功能:初始化按鍵為中斷模式
硬件連接:KEY1-->P1_0  KEY2-->P1_1  
*/
void KEY_InterruptInit(void)
{
    P1DIR&=~(0x3<<0); //配置P1_0、P1_1為輸入模式
    P1INP|= 0x3<<0;   //上拉
    P1IEN|= 0x3<<0;   //中斷使能
    PICTL|= 0x1<<1;   //下降沿觸發(fā)(P1口所有端口都共用一個(gè)配置)
    IEN2 |= 0x1<<4;   //端口P1中斷使能
    P1IFG&= ~(0x3<<0);//清除中斷標(biāo)志位
    EA = 1;           //使能總中斷
}


void delay10ms(void)   //誤差 0us
{
    unsigned char a,b,c;
    for(c=193;c>0;c--)
        for(b=118;b>0;b--)
            for(a=2;a>0;a--);
}

/*
函數(shù)功能:P1端口中斷處理函數(shù)
*/
#pragma vector = P1INT_VECTOR   //聲明P1口中斷服務(wù)函數(shù)的位置
 __interrupt void P1_Interrupt(void)  //中斷服務(wù)函數(shù)的名字的可以隨意命名
{ 
        if(P1IFG&1<<0)         //判斷按鍵1中斷
        {
          delay10ms();  
          if(!KEY1)
          {
             LED1 = !LED1;   
          }
           P1IFG&=~(1<<0);     //清中斷狀態(tài)
        }
        
        if(P1IFG&1<<1)         //判斷按鍵2中斷
        {
          delay10ms();  
          if(!KEY2)
          {
             LED2 = !LED2;   
          }
          P1IFG&=~(1<<1);     //清中斷狀態(tài)
        } 
        P1IF = 0;             //清P1口中斷標(biāo)志
}


/*主函數(shù)*/
void main(void)
{
    LED_Init();//初始化LED燈控制IO口
    KEY_InterruptInit();//按鍵初始化
    while(1)          
    {  
            
    }
}

審核編輯:湯梓紅

聲明:本文內(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6032

    文章

    44525

    瀏覽量

    633265
  • CC2530
    +關(guān)注

    關(guān)注

    19

    文章

    221

    瀏覽量

    57951
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    131

    瀏覽量

    15801
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CC2530 外部中斷配置步驟

    介紹CC2530 外部中斷配置步驟。
    的頭像 發(fā)表于 07-06 14:41 ?2893次閱讀
    <b class='flag-5'>CC2530</b> <b class='flag-5'>外部</b><b class='flag-5'>中斷</b><b class='flag-5'>配置</b>步驟

    ZigBee cc2530為什么要進(jìn)行中斷重映射?

    關(guān)于ZigBee cc2530中OAD中的interrupt_stubs.s51,為什么要進(jìn)行中斷重映射,關(guān)于cc2530中斷重映射的資料應(yīng)
    發(fā)表于 04-05 09:22

    ZigBee通信應(yīng)用CC2530外部中斷應(yīng)用

    ZigBee通信應(yīng)用CC2530外部中斷應(yīng)用-外部中斷控制LED亮滅
    發(fā)表于 12-07 06:57

    【技術(shù)精選】嵌入式STM32原創(chuàng)征文活動(dòng)精選文章

    CC2530(zigbee)入門(mén)開(kāi)發(fā): 串口收發(fā)配置CC2530(zigbee)
    發(fā)表于 07-27 18:26

    基于CC2530芯片_zigbee基礎(chǔ)實(shí)驗(yàn)

    zigbee基礎(chǔ)實(shí)驗(yàn),基于CC2530芯片
    發(fā)表于 12-11 10:48 ?49次下載

    cc2530 adc測(cè)外部電壓

    CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個(gè)真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。要在zigbee的組網(wǎng)中加入煙霧傳感器的模塊
    發(fā)表于 11-07 18:53 ?5603次閱讀
    <b class='flag-5'>cc2530</b> adc測(cè)<b class='flag-5'>外部</b>電壓

    如何使用ZigBee TI ZStack CC2530 2.5搭建開(kāi)發(fā)環(huán)境

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用ZigBee TI ZStack CC2530 2.5搭建開(kāi)發(fā)環(huán)境。
    發(fā)表于 05-10 18:14 ?25次下載
    如何使用<b class='flag-5'>ZigBee</b> TI ZStack <b class='flag-5'>CC2530</b> 2.5搭建<b class='flag-5'>開(kāi)發(fā)</b>環(huán)境

    CC2530授課筆記】⑥ 外部中斷中斷嵌套 (51內(nèi)核單片機(jī))

    摘要本文章主要介紹了CC2530外部中斷的使用,通過(guò)兩個(gè)按鍵P1.2和P0.1實(shí)現(xiàn)兩個(gè)中斷,打斷主函數(shù),實(shí)現(xiàn)嵌套的功能。
    發(fā)表于 11-22 12:51 ?3次下載
    【<b class='flag-5'>CC2530</b>授課筆記】⑥ <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>及<b class='flag-5'>中斷</b>嵌套 (51內(nèi)核單片機(jī))

    CC2530學(xué)習(xí)筆記:第二章:CC2530按鍵中斷控制

    聲明:文章內(nèi)容皆為學(xué)習(xí)過(guò)程所理解,多主觀,僅供自己參考,多有疏漏,或有不當(dāng)之處,多多包涵。這一章學(xué)習(xí)CC2530外部中斷,以按鍵中斷控制LED燈亮滅為例首先,
    發(fā)表于 11-23 17:51 ?3次下載
    <b class='flag-5'>CC2530</b>學(xué)習(xí)筆記:第二章:<b class='flag-5'>CC2530</b>按鍵<b class='flag-5'>中斷</b>控制

    CC2530外部中斷部分代碼

    ZigBee通信應(yīng)用CC2530外部中斷應(yīng)用-外部中斷控制LED亮滅
    發(fā)表于 11-24 16:36 ?0次下載
    <b class='flag-5'>CC2530</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>部分代碼

    基于CC2530ZigBee通信網(wǎng)的應(yīng)用設(shè)計(jì).pdf

    基于CC2530ZigBee通信網(wǎng)的應(yīng)用設(shè)計(jì).pdf
    發(fā)表于 12-15 18:17 ?23次下載

    CC2530外部中斷控制流水燈

      實(shí)驗(yàn)?zāi)康?   1)、通過(guò)實(shí)驗(yàn)掌握CC2530芯片GPIO的配置方法,帶你一步步走進(jìn)嵌入式大門(mén)   2)、握Led驅(qū)動(dòng)電路及開(kāi)關(guān)Led的原理   3)、過(guò)按鍵key1產(chǎn)生外部
    發(fā)表于 04-11 15:31 ?3次下載

    CC2530外部中斷控制LED開(kāi)關(guān)實(shí)驗(yàn)

      實(shí)驗(yàn)?zāi)康?   1)、通過(guò)實(shí)驗(yàn)掌握CC2530芯片GPIO的配置方法,帶你一步步走進(jìn)嵌入式大門(mén)   2)、握Led驅(qū)動(dòng)電路及開(kāi)關(guān)Led的原理   3)、過(guò)按鍵key1產(chǎn)生外部
    發(fā)表于 04-11 15:34 ?2次下載

    CC2530(zigbee)入門(mén)開(kāi)發(fā): 安裝IAR開(kāi)發(fā)環(huán)境

    CC2530本身是一個(gè)51單片機(jī)內(nèi)核,開(kāi)發(fā)過(guò)51的搞起來(lái)非常容易,也就是多了一個(gè)無(wú)線射頻部分;如果不使用無(wú)線射頻功能,那么就和一個(gè)正常的51單片機(jī)一樣。要進(jìn)行CC2530的軟件開(kāi)發(fā),需
    的頭像 發(fā)表于 05-28 13:38 ?1.2w次閱讀
    <b class='flag-5'>CC2530</b>(<b class='flag-5'>zigbee</b>)<b class='flag-5'>入門(mén)開(kāi)發(fā)</b>: 安裝IAR<b class='flag-5'>開(kāi)發(fā)</b>環(huán)境

    基于CC2530ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于CC2530ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-26 09:34 ?3次下載
    基于<b class='flag-5'>CC2530</b>的<b class='flag-5'>ZigBee</b>通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)